Follow Slashdot stories on Twitter

 



Forgot your password?
typodupeerror
Programming IT Technology

Does Your Debugger Sing to You? 242

ZahrGnosis writes "TRN Mag Online is carrying an article titled Programming tool makes bugs sing. '[The researchers] set up software that mapped pitch and melodic contour information to structural elements in the programming language Pascal. "[We] aimed to see if information about the structure of Pascal programs could be communicated using such musical phrases".' They even found a practical application for software debugging."
This discussion has been archived. No new comments can be posted.

Does Your Debugger Sing to You?

Comments Filter:
  • I'm curious to know what kind of code sounds the nicest when played back over a system like this.
  • Now (Score:4, Funny)

    by SpanishInquisition ( 127269 ) on Friday August 09, 2002 @12:24PM (#4040420) Homepage Journal
    I'll program so badly it'll end up sounding like Aphex Twin
  • by CaffeineAddict2001 ( 518485 ) on Friday August 09, 2002 @12:26PM (#4040430)
    Bug in the program - P.U.!
    Somebody wrote it - THATS YOU!
  • I keep hearing a funeral march from my C code...
  • hmmm (Score:4, Funny)

    by citroidSD ( 517889 ) <citroidsd@NETBSDyahoo.com minus bsd> on Friday August 09, 2002 @12:27PM (#4040445)
    Yes, my debugger _does_ sing as it smites bugs!

    namely:
    "Another one bytes the dust. Another one bytes the dust. And another and and another bug bytes the dust."

    For those of you who need the background music, think Queen, or uh, I guess Weird Al Yankovic
  • It'll sound like BONO!! WOOHOO!!
  • But for some reason it all just sounded like Sublime.... No not really, but I do wonder what this would sound like. I guess it's possible to find a pattern in just about anything.. And this is definitive proof.
  • by PDHoss ( 141657 ) on Friday August 09, 2002 @12:29PM (#4040462)
    ... the debugger would sing for every language but c#. That would be funny.

    PDHoss

  • by Jupiter9 ( 366355 )
    So that's why I get that song every time I boot into windows.
  • by Beryllium Sphere(tm) ( 193358 ) on Friday August 09, 2002 @12:29PM (#4040465) Homepage Journal
    >They even found a practical application for software debugging

    It's good to know that software debugging has a practical application.
  • by drjoe1e6 ( 461358 ) on Friday August 09, 2002 @12:29PM (#4040467)
    Ninety-nine off-by-one bugs in the code,
    Ninety-nine off-by-one bugs,
    Take one down,
    Fix it up,
    One hundred off-by-one bugs in the code!

    -Joe

    • ninety-nine little bugs in the code,
      ninety-nine little bu-u-u-gs,
      fix a bug,
      compile again,
      one hundred and one little bugs in the code!

      The next verse went from 101 to 105, then from 105 to 113, then from 113 to 129, and so forth, adding a new power of two on each loop.

  • Dancing? (Score:5, Funny)

    by si1k ( 38767 ) on Friday August 09, 2002 @12:29PM (#4040470) Homepage
    I wonder if they could create an interface that would allow you to fix bugs by dancing?

    Gnu Debugger, the real Dance Dance Revolution?

    Haha, only parlty serious. Just as we need new ways to "view" information, it could also be helpful to be able to respond in a way that goes beyond the keyboard and mouse.
    • If someone actually does this there will be hoardes of pissed nerds out to eliminate them from the face of this planet....
    • I think you mean Debug Debug Revolution.

      Kinda a cross between DDR, Whack-a-mole, and coding.

      Somehow I don't see this being popular :)
    • I wonder if they could create an interface that would allow you to fix bugs by dancing?

      ...then white people wouldn't be able to program.

      :)

    • I wonder if they could create an interface that would allow you to fix bugs by dancing?

      So that's what this guy [watchmedance.com] is doing....
    • You must be thinking of DDDR, which lets you navigate the heap of a program as it's running by steeping up, down, left, and right.

      But I hear they're working on DDDRM, which kills your program unless you only look at the data that the arrows say you can...
  • A generalize form of this application was applied to the source for Windows XP (tm) with no startling results. However, when the resulting tune was played backwards, the listener could plainly hear "bill is god" and "linus is satan" over and over.
  • Have the program hooked up to a heartbeat monitor

    beep beep beep beep beeeeeeeeeee.....
  • Of course, knowing my lug, my code would come out sounding like a fucking Britney Spears song. Arghhh...
  • such as:

    C/C++ == classical sounding music
    perl == heavy metal
    php == rap
    vb == boy band

    and so on..
  • if i ran this kind of debugger, it would go thru the effort to say "stop programming!!"
  • I can only imagine what for(;;); sounds like...

    AAARGGHH... MAKE IT STOP!!!!
  • I can re-factor my code just by re-mixing the tunes????
  • by Wintermancer ( 134128 ) on Friday August 09, 2002 @12:31PM (#4040489)
    The musical sound of Windows blue-screening.

    You could even have a nice menu:

    Select your musical preference:

    1) Death-metal guitars

    2) Funeral dirge

    3) Cat-in-heat-at-12:00-am

    Ohhh, the possibilities....

    It would be better than the anguished "NOOOOOO!" frequently heard around the office.

  • by Tackhead ( 54550 ) on Friday August 09, 2002 @12:33PM (#4040501)
    My debugger doesn't sing to me, but I know a guy who sang about a debugger I once used.

    The UPS Debugger Song: "Just One More Hack (and then I'll put it on the 'net) [mp3.com]

    Lyrics: Just One More Hack

    Well, I've written a debugger and it suits me just fine
    it'll chase away your problems, turn your water into wine
    it's got so many features, in fact it's bloody clever
    if it can't solve your problem then your problem probably never
    can be solved
    so you might as well pack it on in,
    coz it's the best debugger that there's ever been.

    It's got everything you wanted, everything you desire
    it'll handle fancy structures, set your soul on fire
    it'll indirect through pointers, and catch a falling star
    and if you ask it nicely it'll pop off to the bar
    and tell your friends
    how to solve the problems they're in,
    coz it's the best debugger that there's ever been.

    If you've got a nasty problem and your data structure's bent
    and your pointer's in a tangle with your structure elements
    if you're losing all your memory coz your allocator leaks
    and your girl's getting nasty coz she's not seen you for weeks
    then stoke up Mark's debugger
    you know it'll win,
    coz it's the best debugger that there's ever been....

    - Burt MC Weadon (Mark Wheadon), from MUSENET '92

    (Ah, thank you Google, for the historical reference to first puclication!) UPS - The Song!" [google.com]

    • Boot It! (Score:3, Funny)

      by AJWM ( 19027 )
      Well, if you're going to go posting lyrics...

      This came out years ago, I found a printout of it a couple of days back while going through some papers. Picture Weird Al Yankovich singing this to Michael Jackson's "Beat It" (this isn't a Weird Al though, he did "Eat It"):

      Boot It

      You're processing some words when your keyboard goes dead,
      Ten pages in the buffer, should have gone to bed,
      The system just crashed, but don't lose your head,
      Just BOOT IT, just BOOT IT.

      Better think fast, better do what you can,
      Read the manual or call your system man,
      Don't want to fall behind in the race with Japan,
      So BOOT IT,

      Get the sys admin to

      BOOT IT, BOOT IT,
      Even though you'd rather shoot it.
      Don't be upset, it's only some glitch.
      All that you do is flip a little switch.

      BOOT IT, BOOT IT,
      Get right down and restitute it.
      Don't get excited, all is not lost.
      CP/M, UNIX or MS-DOS
      Just BOOT IT, boot it, boot it, boot it...

      You gotta have your printout for the meeting at two,
      The system says your jobs at the head of the queue,
      Right then the thing dies but you know what to do,
      BOOT IT.

      You always get so worried when the system runs slow,
      And when it finally crashes, man you feel so low,
      But computers make mistakes (they're only human you know)
      So BOOT IT,

      Call the local guru to

      BOOT IT, BOOT IT,
      Go ahead re-institute it.
      If you're not lucky, get the book off the shelf,
      But if you are, it'll do itself.
      BOOT IT, BOOT IT,

      Then go find the guy who screwed it! Operating systems are built to bounce back,
      Whether it's a Cray or a Radio Shack.

      BOOT IT, BOOT IT, ....

      Sorry I don't know who deserves the attributes for that.
      • Sorry I don't know who deserves the attributes for that.

        Judging by this line:


        Don't want to fall behind in the race with Japan, /blockquote

        probably a sysadmin in the automotive industry. (Which mind you was just a couple of years ago exclusively Unix, and before that was a micture of DOS and UNIX, hence the line about CP/M, UNIX, or MS-DOS)

        Of course this is entirely conjecture...

  • I installed it on Visual Studio and now my computer keeps singing Unforgiven by Metallica, what do I do?
    • I installed it on Visual Studio and now my computer keeps singing Unforgiven by Metallica, what do I do?

      Probably get sued by Metallica for copyright infringement. ;-)
  • Sure. (Score:5, Funny)

    by Kenja ( 541830 ) on Friday August 09, 2002 @12:34PM (#4040513)
    My debuger sings and my IDE tells me to kill people.


    But wait..... I've said to much.
  • by CrazyBrett ( 233858 ) on Friday August 09, 2002 @12:35PM (#4040520)
    Back when I first started experimenting with full-screen graphics programming, I went through a phase where I could switch screen modes, but not get anything to show up. This meant that I had no way to print diagnostic messages to the screen to figure out when something went wrong. The solution was to play sounds to track the progress of the program and report error conditions.

    "Oh, the program went Boink-Ding and Bloop, but not Clunk... that must mean that palette creation failed!"
    • heh, yeah, we were just lamenting the loss of good beep codes in programs the other day. there's an unofficial Linux patch that adds a pc speaker driver with full OSS compatibility. I was thinking it'd be cool to remap ASCII 7 over to some wav like "D'oh" or something. :)

      -l
  • "Microsoft - Windows 98 (feat Billy G) (Blue Screen Remix).mp3"
    • What was the last bug free OS you've written? I'll make it easier, what's the last bug free OS you've used?

      I'm not saying Win98 was great, but I've had it installed on machines and had it never crash. And I've never had it trash the file system on me like I've had happen to me twice with Linux 2.4.x.
  • You know... (Score:3, Funny)

    by Your_Mom ( 94238 ) <slashdot@innism[ ]net ['ir.' in gap]> on Friday August 09, 2002 @12:37PM (#4040532) Homepage
    If I combine this with the morse code panic [slashdot.org] patch, I could have my own techno dance studio! Flashing lights and all!
  • ... to download the output from the debugging of Office XP. Take a listen to this. [fazed.net]

  • by senfman ( 207535 ) on Friday August 09, 2002 @12:43PM (#4040586)
    A singing debugger can't be worse than Britney spears.
    • Except Britney is going to have way better tits.
    • Oh baby baby, how was I supposed to know...
      That something wasn't right?

      Oh baby baby, I hacked on that blasted code...
      Till the morning's early light!

      Tell me, how to fix it, soothe me,
      Tell me, baby, cuz I need to know now, oh because,

      This bloody LISP, is killing me ---
      Though I test-regress, it still goes bleep!
      (Still goes bleep!)

      If it's the closures, I'll lose my mind,
      And rewrite the damned thing one more time!

      (Repeat until 3 minutes and 50 seconds is achieved.)
  • actually, this sounds like an excellent idea, and this should without doubt be a basic feature of gdb [redhat.com] for example. This also reminds me of my Spectravideo SVI-318 and lousy green, year was 1984, the combination worked at so low frequency that was able to hear and understand what I typed through radio. And it really was very helpful.
  • ... if there is a bug in your music routine in your game, I guess this will be useless debugging tool.
  • The Past Revisited (Score:2, Interesting)

    by rawdot ( 68408 )

    I don't have a reference to it, but I thought that Admiral Grace Hopper and her crowd had done something just like this generations ago simply by hooking up the accumulator of a Univac to a D/A converter, which in those days resulted in audible frequencies! A quick search on Google found something similar was done on a CDC 3300 (search for CDC 3300 in this page [chac.org]).

    Cheers,
    Richard
  • And they used continuous tones, or drones similar to those used by bagpipes, to indicate continuous states like loops where many nested operations may take place. "The use of a continuous tone can indicate that the program is inside the loop," said Vickers.

    Interesting. Back when I first got into computing I used a BBC Micro [gondolin.org.uk]. This was a primitive machine by today's standards, with no fan (the 2MHz 6502 CPU didn't get hot), no disk drive of any sort, basically nothing to make any noise except the CPU. In a quiet room you could hear the processor humming. It would change pitch as a program ran - you could tell when you hit an infinite loop because the pitch would change to a continuous whine. It was actually useful - and used - for debugging. Fun days,
  • by (trb001) ( 224998 ) on Friday August 09, 2002 @12:51PM (#4040660) Homepage
    In the news, the VC++ debugger has come under fire from the RIAA for producing melodic tunes that sound very similar to several copyrighted materials.

    "Whoever wrote the code that produced these tunes, we want to find them and bring them to justice." said Hillary Rosen, of the RIAA. "Neither Microsoft, nor the developer in question, has paid royalties to the artists whose songs they have violated. Renegade debuggers must be stopped, for they pose the greatest threat to the artists' intellectual property we've ever seen!"

    <sigh> Fact is often stranger than fiction
  • Close Encounters (Score:2, Insightful)

    by Winterblink ( 575267 )
    Sound based debugging + gesture based computing = a future where we work with computers like that cooky french guy from Close Encounters of the Third Kind.
  • Britney, the BS boys, and nSync have already been doing this for years. How else can they come up with that crap they call music. The language they use is C# though, not Pascal.
  • by tunabomber ( 259585 ) on Friday August 09, 2002 @12:57PM (#4040701) Homepage
    "Buffer Overflow in C#" [slashdot.org]

  • I've been looking through my gnu emacs sources, there's some interesting things in here already that people don't know about, like the strokes package where supposedly you just wiggle your mouse around and that will execute your command.

    Now I think gnu emacs supports sound, so who knows elisp and is curious enough to set this kind of thing up? :)
  • by ewanrg ( 446949 ) <ewan...grantham@@@gmail...com> on Friday August 09, 2002 @01:01PM (#4040743) Homepage
    I've noticed several folks who seem to think this is silly, dumb, etc. I don't think it is. Think back to the days (if you're old enough) of monochrome displays. Even the addition of a few colors made it easier to process information by taking advantage of human sensitivity to color in our environment. To say that music, or at least sound, could be incorporated makes sense to me.

    Particularly in applications where you're trying to track status over time, having some background that varies with changes can be very helpful (I seem to recall the game Populous using this to good effect to help you get a quick idea of how you were doing overall). In the context of a debugger, having clashing noises that become more melodious as the program gets closer to completion and perhaps also asit comes closer to defined standards seems to bea good motivator.

    Just my .0001 share of Berkshire Hathaway's Class B worth...
  • by jea6 ( 117959 ) on Friday August 09, 2002 @01:04PM (#4040772)
    Could you run a melody through and have programming structures returned? Metaphors are sunny days.
  • Man, just 3 more days and we could have had Coda Statement Considered Harmful.

  • by msheppard ( 150231 ) on Friday August 09, 2002 @01:16PM (#4040883) Homepage Journal
    I sometimes sing to my debugger:
    ---
    Hello bluescreen my old friend,
    You are my program's bitter end.
    All my random poke and peeking,
    Didn't stop the memory leaking.
    And the Interrupt, I set so long a go,
    did never throw...

    My only option... is viloence.

    Slam the mouse in to the desk.
    Pound the keys and beat my chest.
    Do what I say not what I mean,
    Open the window, thow out this machine.
    And as it falls, and crashes on the street
    Debugging complete

    my only option... was violence.
  • ...windows makes a sound everytime you start it up, click on something, shut it down etc..?
  • by sharkey ( 16670 )
    "The worms crawl in,
    The worms crawl out.
    The bugs play pinochle
    On my shout."

  • R2D2's voice may be due such a bug-to-tone translator. That is probably how my code would sound under the Bug-A-Phone.

    Better fix that bot.
  • "Memory, you have used up all your Memory"
  • Researchers from the University of Northumbria in England are tapping the auditory sense by allowing programmers to listen, rather than simply look, for software bugs....

    Techie unemployement pressue seems to be doing to computer scientists what cyclitron shut-downs did to those "Higgs Boson discoverers".

  • Yes, my debugger sings, but Simon belittled its abilities as 'third-rate COBOL', so it went into a tizzy and crashed my system.
  • by dfung ( 68701 )
    Hmmm...

    Well the first computer I ever had free reign of was one of those Commodore Pet computers with the little tiny calculator keyboard. Little memory, little keyboard, no disk, and I still managed to learn a little assembler to pep up my BASIC programs.

    When I came out to the Silicon Valley to go to college in 1978, I left the PET behind, but still checked out the computer shops when I had free time (anybody remember The Byte Shop in Palo Alto? Computerland in Los Altos?). One of the things that I found pretty entertaining at a Commodore shop was a guy that was debugging by putting a little AM radio next to the computer. If you tuned to the right frequency (and I'm embarassed that I don't remember it), you'd hear the sound of your code executing as static. If you had the right loop coded, you would hear a burst of static when it executed, and this guy would drop in the little flag routine as a debugging aid. By putting in a marker like that in the different long-running repetious sections,you could actually tell where your code was running, or if you were stuck in an infinite loop.

    Kind of cool back then, although I have to admit that I don't remember writing anything that ever took 2 minutes to execute. Well, intentionally anyway...

    David Fung
    • I used to do this with my old Sound Blaster cards - the things were so poorly shielded and picked up so much noise from the processor (and hard drive and bus and I don't know what else) that I could tell when the program had crashed just by listening to the noise. If it was quiet, that usually meant something was very wrong. :-)
  • Strangely enough, I developed a similar application and ran some Open Source code through it.

    The resulting melody was "Please, release me... let me go...."
  • They could get network traffic to produce musical tones? Imagine the sounds made of a server getting Slashdotted....
  • This puts a new meaning to using DevStudio to put together a program composed in C#.
  • by Viadd ( 173388 ) on Friday August 09, 2002 @02:33PM (#4041525)
    Back in the Apple II/Commodore/Altair days, programmers (who else was there?) used to tune a radio to a dead band and place it by the computer as a debugging aid. You can tell a lot by listening to the EMI that a computer put out. Infinite loops caused a continuous tone, different stages of processing produced different characteristics in the static, etc.

    There were also programs designed just to place music on the radio with their EMI.

    • Hey Viadd, very interesting.

      Well that is not a dead practice. A few years ago I discovered that my TI calculator disrupted my FM radio, specially when I was plotting graphs or time-consuming fractals. The ENTER key produced short interference sounds as well. All this is somewhere in the 90Mhz bands. Funny because the fastest a TI processor goes is like 10Mhz, yet some interference always manages to defy logic, to us non-engineer ppl.

      CPUs used to have this same interference effect when the interference equivalent of "overtones" came out of my Pentium 1's and Pentium 2's to keep me from listening to decent homework-side music. Insightful
    • I once saw an amazing demonstration on an Apple II: two 8 bit D/A converters were connected to the low and high bits of the address bus and fed to an oscilloscope in X/Y mode.

      It was easy to see loops, interrupts and other program patterns and most importantly, deviations from these patterns.
  • This is not as strange as it sounds. (pun intended) I've seen precursors to this, and have actually experienced something similar about 25 years ago.

    • Modem speed negotiation: Here's a more recent example with which many /.'ers are familiar. I generally get the same speed over my modem, so I've grown accustomed to a certain series of boops and beeps as it is negotiating the connection. Once in a while, though, I detect a change in how sequence sounds. Sure enough, I've connected at a different speed. I'm not even trying to tell if there's a difference, it's just that I've grown so failiar with that "melody" that any deviation sticks out like a sour note.
    • Visual Precedent: The first computer I ever used (back in the early 1970's) was a Digital Equipment Corp. PDP-8. It had a front panel with two sets of lights to display the current value of the accumulator and, IIRC, the current program address. When running at normal speed, the lights flashed much too quickly to make out specific values or addresses, but overall patterns did exist. It had certain normal "rhythms". It was especially easy to detect when my program entered an infinite loop - the lights lit up almost solid and stayed that way!
    • Personal Audio Precedent: back in the late 1970's, I had a Texas Instruments programmable calculator (TI-55, IIRC). One day, I discovered that the LEDs cast out a lot of RF noise (I'd accidentally tuned my radio to the AM band instead of FM). I had a friend who also had the same model. We spent many, many hours programming those calculators to generate different "melodies".
    • Windows Sound Events: I discovered I could associate different sounds with different events in Windows. There's the "normal" alert, warning, windows start, etc. sounds. I added a sound for the "Open program" event and another sound for the "Close program" event. When my system is booting up, I can hear several background tasks launch and end. What had previously been a long stare at an unchanging screen suddenly became much more informative.

    I see this research as an interesting step that continues along that path.

    As for me, I'm much more a visual person than auditory. I'd find it much more valuable if I could "see" my program execute. Once in a while, I've messed things up with my postscript printer and the listing came out at what appeared to be 1 point sized text; at 300 DPI, that worked out to being about 5 dots high. At times it was almost possible to make out the words, but realiistically, it was too small to be legible. But it WAS sufficient to show the structure of the program, especially since I consistently use indentation. If different colors were used to denote different structural items (conditional, loop, assignment, key words, etc.) AND there was an indicator that would highlight each statement as it was executed, then I'd be able to see the actual flow of the program. I could tell what functions and subroutines were executed most often. Hmmm, this seems like such an obvious idea... does anyone know if such a tool already exists?

    On another note, It would be interesting to combine visual profiling of a program with a touch screen -- I could use different gestures to debug my program! Double-tap to zoom in/out on text; single tap to set a breakpoint on entrance/exit of a subroutine, etc.

  • by lars ( 72 )
    I shudder at the thought of hearing Richard Stallman sing [gnu.org] every time I load up gdb.

    And to whoever mentioned dancing, I've seen Richard Stallman dance too. Thanks for the image. Really.

  • You'd better hope your debugger doesn't start singing this ditty [netins.net].

  • I hooked up the innards of the DEC Ultrix C++ debugger (then called "Ladebug" internally)to a homebrew FM synthesis toolkit to do exactly this. The debugger allowed tracepoints to be hooked to particular instruments and note values. It was cool.

A motion to adjourn is always in order.

Working...