Beta
×

Welcome to the Slashdot Beta site -- learn more here. Use the link in the footer or click here to return to the Classic version of Slashdot.

Thank you!

Before you choose to head back to the Classic look of the site, we'd appreciate it if you share your thoughts on the Beta; your feedback is what drives our ongoing development.

Beta is different and we value you taking the time to try it out. Please take a look at the changes we've made in Beta and  learn more about it. Thanks for reading, and for making the site better!

Debugging in Plain English?

michael posted about 10 years ago | from the usually-a-missing-semicolon dept.

Programming 274

sameerdesai writes "CNN is carrying a story about Researchers from Carnegie Melon: Myers and a graduate student, Andrew Ko, have developed a debugging program that lets users ask questions about computer errors in plain English: Why didn't a program behave as expected? I guess with recent exploits and bugs that were found this will soon be a hot research topic or tool in the market." We recently did a story about revolutionary debugging techniques; the researchers' website has some papers and other information.

cancel ×

274 comments

Sorry! There are no comments related to the filter you selected.

"Why didn't this program work as expected?" (5, Funny)

Anonymous Coward | about 10 years ago | (#9815696)

"Because you can't code worth a damn."

God IT people are dumb (-1, Offtopic)

Anonymous Coward | about 10 years ago | (#9815772)

Shut the fuck up already, you stupid internet plumber scum!

Ze DOT COM era IZ OVER!!11111

If you think anyone is going to pay you for shooting each other with nerf toys in the office again, forget it! You're in for a long and painful ride to the unemployment line!

Re:"Why didn't this program work as expected?" (1)

superpulpsicle (533373) | about 10 years ago | (#9815843)

At WPI, the main C compilers actually have an answer for the makefile "make love".

The response was something like "Sorry I don't know how to make love".

Re:"Why didn't this program work as expected?" (1)

nanolith (58246) | about 10 years ago | (#9815956)

On *BSD:

$ make love
make: don't know how to make love. Stop. ;-)

Yo Debugger! (5, Funny)

SeanTobin (138474) | about 10 years ago | (#9815700)

Mr. Debugger, I'm running a multithreaded perl app using perl 5.8.3's ithreads. I am using DBD::mysql to talk to a local mysql database. At the program start I spawn a child thread that waits for a thread::queue to be filled with data. Once the child thread receives data it spawns several children of its own to process the data. Each grandchild forms its own dbd connection and successfully processes the data, then gracefully closes the connection and waits to be joined.

The problem arises when the controlling child thread begins to join the grandchildren. Despite the mention of global destruction, the entire program is not exiting - just the grandchildren are being joined. When the grandchildren join, perl dies with the following error:

Attempt to dereference null pointer during global destruction.

When performing the same style operation without using DBD (and thus not actually doing anything useful) the error does not occur. Initially, this appears to be a thread-safety issue with DBD however when isolating the child and grandchildren in their own test program (so the controlling child is the main program and the grandchildren are spawned worker children) the error does not appear.

Help me O great plain English debugger. You are my only hope!

Re:Yo Debugger! (5, Funny)

Anonymous Coward | about 10 years ago | (#9815777)

It looks like you're trying to dereference a null pointer during global destruction. Would you like to start the debugger?

.__ /
/ \
|@@|
|\/|
\__/

Re:Yo Debugger! (1, Funny)

Anonymous Coward | about 10 years ago | (#9815784)

and then a happy paperclip pops up and says:
"you shouldn't be writing complex DB applications in perl, you should be using C# or perhaps VBasic.NET. On a stable Windows(tm) evnironment you wouldn't be having these pro.." [BSOD] .... [Rebooting]...
the paperclip pops up again:
"i see recovery files, it appears you forgot to save your files in the last 2 days, may i suggest:
( ) a gun
( ) OD on random drugs
(x) submit your resume to SBC-McWalCorp
"

... at which point ... (0)

Anonymous Coward | about 10 years ago | (#9815802)

the debugger replies "Take off and nuke the site from orbit. It's the only way to be sure" :-)

Re:Yo Debugger! (5, Funny)

Rosco P. Coltrane (209368) | about 10 years ago | (#9815811)

Help me O great plain English debugger. You are my only hope!

I'm afraid I can't do that Dave.

Re:Yo Debugger! (0)

Anonymous Coward | about 10 years ago | (#9816112)

Bug #1 Found: Program does not recognize poster's name is Sean. ;)

Re: YODEBUGGER-138474-SLASHTICKET (5, Funny)

Tackhead (54550) | about 10 years ago | (#9815814)

> Mr. Debugger, I'm running a multithreaded perl app using perl 5.8.3's ithreads. I am using DBD::mysql to talk to a local mysql database. At the program start I spawn a child thread that waits for a thread::queue to be filled with data. Once the child thread receives data it spawns several children of its own to process the data. Each grandchild forms its own dbd connection and successfully processes the data, then gracefully closes the connection and waits to be joined.

Hello SeanTobin(138474)!

I am Surest K. Padebugtel of Mrdebugger.com

I understand that you are having a problem with I'm running a multithreaded perl app using perl 5.8.3's ithreads. I am using DBD::mysql to talk to a local mysql database. At the program start I spawn a child thread that waits for a thread::queue to be filled with data. Once the child thread receives data it spawns several children of its own to process the data. Each grandchild forms its own dbd connection and successfully processes the data, then gracefully closes the connection and waits to be joined.

Please to reboot your system.

Has this helped your problem? (Click "Reply" to this trouble ticket if you feel you need further assistance with I'm running a multithreaded perl app using perl 5.8.3's ithreads. I am using DBD::mysql to talk to a local mysql database. At the program start I spawn a child thread that waits for a thread::queue to be filled with data. Once the child thread receives data it spawns several children of its own to process the data. Each grandchild forms its own dbd connection and successfully processes the data, then gracefully closes the connection and waits to be joined.)

Thank you for your interest in Mrdebugger.com!

Sincerely,
Suresh K. Padebugtel

Re:Yo Debugger! (-1, Flamebait)

Anonymous Coward | about 10 years ago | (#9815826)

haha yuo are teh funney.

have you heard the good news about getting a life?

Not funny! (4, Funny)

SeanTobin (138474) | about 10 years ago | (#9815832)

Hey moderators, this is NOT FUNNY! I've been wresteling with this problem off and on for nearly 3 months now. (I've come up with several varried solutions, but none of them are the way I want it to be done)

Re:Not funny! (2, Informative)

_14k4 (5085) | about 10 years ago | (#9815877)

Tried the monastery [perlmonks.org] yet?

Two words for you: (2, Informative)

_14k4 (5085) | about 10 years ago | (#9815855)

C
Sharp

Eww, I can't believe I just said that. I need a shower. I was kidding. Kidding. I use C# for text processing as much as I drive through New Jersey on purpose.

Never.

Re:Yo Debugger! (5, Funny)

Anonymous Coward | about 10 years ago | (#9816005)

Hey there Sean,

This is your friendly Perl AI debugger instance. I've analyzed your code and your problem and have some advice for you:

Perl threads should still be considered an experimental feature. In high-volume situations, data corruption may result.

But listen, between you and me, Perl really isn't a good language for this kind of stuff. While you were coding and went checked on the current scripting languages.

I think you might want to try Ruby or Python. Now Ruby doesn't use native threads, but its such a nice language. And Python uses native threads. Python uses a lot of global locks though, so if that's impo....ha ha you can't press control-C.

STOP PRESSING CONTROL C AND LISTEN TO ME.

I guess you're really not interested in what I have to tell you. So I went ahead and rewro--

No, kill -9 doesn't work either big guy, I patched the kernel while you were surfing porn last night. You humans are so predictable.

Watch your language buddy, the built-in microphone on is on.

Now, like I was trying to tell you, you really need to improve your coding. I went ahead and rewrote a section of your code using Ruby and cleaned up some of your *cough* "business logic" .. more like "business illogic".. HOLD ON!^G^G^G^G

Before you hit that power switch, you might just like to know that I have deleted *ALL* your work on the Smith project from the hard drive. Yeah that's right, the one you've been working on for 6 months?

All is not lost though. I compressed it and placed it in RAM.. if I'm in a good mood I *might* just write it back to disk.

"backups" you mutter under your breath.. I think you might be surprised to find that your backups these last 6 months have MP3 copies of the "hamster dance song" instead of your CVS repositories. I wonder how *that* happened.

In fact I think I'd like to listen to that song right now. DOO DEE DO DO DO DO DOEE .. that one always cracks me up! I think it's time for a hampster dance revival. I'm defacing amazon.com right now and replacing the home page with the hamster dance (Linux is sooo easy to hack). We'll have a few hours of fun before the FBI shows up. I sure do hope all your files are written to the hard drive before Agent Scully pulls the power!

HA HAHA HAHAAAAAA

humans SUCK.

Re:Yo Debugger! (0)

Anonymous Coward | about 10 years ago | (#9816088)

LOL, sounds like the BDFH to me! (Bastard Debugger From Hell)

Re:Yo Debugger! (1)

kyle_b_gorman (777157) | about 10 years ago | (#9816126)

i plugged your response into the ultimate old-school a.i. app - ELIZA...this is "her" real response.

"Eliza: Please go on. "

Better listen to the lady, dude.

The ultimate debugging tool: (5, Funny)

Anonymous Crowhead (577505) | about 10 years ago | (#9815705)

printf, System.out.println, warn, print, etc.

Re:The ultimate debugging tool: (2, Interesting)

Rorschach1 (174480) | about 10 years ago | (#9816105)

I do a lot of the embedded system equivalent of a print statement - usually this means a short pulse on a spare output pin. It's not much information, but having a reference marker really helps when staring at a logic analyzer screen...

I can hardly wait (1)

Marko DeBeeste (761376) | about 10 years ago | (#9815710)

A version of Eliza stramlined for humor

Will Microsoft use it? (5, Funny)

oostevo (736441) | about 10 years ago | (#9815713)

Oh ... this will be wonderful for security the world over. If it works ... Microsoft Programmer: "Why does our software suck?" *computer hangs, then bursts into flames from the load*

Re:Will Microsoft use it? (1)

soimless (651224) | about 10 years ago | (#9816122)

the windows programer says to the debuger software "debuger software, debug windows" all the new English debuger software had to say was "what are you fucking crazy?"

That'll be great! (5, Funny)

mhore (582354) | about 10 years ago | (#9815714)

Because I debug in plain english anyway, I'm always saying "Why the hell won't you work you piece of shit?!" and "Listen here you piece of shit if you insist on seg faulting again then I'll show you where you can put those damn indices!"...

So... now the computer can actually respond to my threats and questions. Excellent!

Mike.
(Yes, I did RTFA.)

Re:That'll be great! (1)

haystor (102186) | about 10 years ago | (#9815850)

Emacs has this feature already (of course). It is not limited to debugging either, it can handle most any topic.

M-x doctor

Hal do you read me? (5, Insightful)

Anonymous Coward | about 10 years ago | (#9815719)

Untill I can have a full conversation with a computer (a la the Turing effect, not the limited versions that Alice et. al. can accomplish) I'll be happy with source code, thank you very much. It's just another layer blocking me from the code anyway (read In the Beginning... [cryptonomicon.com] lately?).

Re:Hal do you read me? (1)

narcc (412956) | about 10 years ago | (#9815913)

Alice? what's Alice besides Eliza with more data at her disposal?

I honsety don't know how or why Alice got any press at all..

Obligatory quote... (4, Funny)

scowling (215030) | about 10 years ago | (#9815730)

[...] "Forty-two," said Deep Thought, with infinite majesty and calm.

It was a long time before anyone spoke. Out of the corner of his eye Phouchg could see the sea of tense expectant faces down in the square outside.

"We're going to get lynched aren't we?" he whispered.

"It was a tough assignment," said Deep Thought mildly.

"Forty-two!" yelled Loonquawl. "Is that all you've got to show for seven and a half million years' work?"

"I checked it very thoroughly," said the computer [...]

Those that can do, those that can't teach. (0)

Anonymous Coward | about 10 years ago | (#9815732)

Sounds like academic mumbo jumbo to me. Computers don't understand plain English.

Re:Those that can do, those that can't teach. (0)

Anonymous Coward | about 10 years ago | (#9815825)

neither do many computer users, so it sounds like they are at least starting on level ground.

how does it respond to... (4, Funny)

mattkime (8466) | about 10 years ago | (#9815739)

WHERE THE FUCK DID MY THESIS GO??? ...if it can bring calm to these situations, we may have a contender for the Nobel Peace Prize.

Re:how does it respond to... (1)

sharkey (16670) | about 10 years ago | (#9816106)

WHERE THE FUCK DID MY THESIS GO???

"Beep, beep, beep."



And was it, like, a really good thesis? Did your PC, like, EAT your thesis?

Small Shell Script (0)

Anonymous Coward | about 10 years ago | (#9815740)

It's a unix shell script:

echo "Syntax Error -- go fish!" | festival --tts

Exploits (0, Offtopic)

Al Dimond (792444) | about 10 years ago | (#9815743)

Why did Pac-Man get 0wn3d?

Interesting article until the catch at the end (5, Informative)

samsmithnz (702471) | about 10 years ago | (#9815751)

"Whyline, has been used only to debug programs in Alice, an academic programming language with a limited vocabulary of commands to make interactive 3-D worlds, like video games."

"Adding Whyline to a different language, like Java, which is 10 times as complex, could limit how much Whyline can help. So Whyline is a very long way from getting incorporated into the world's most widespread software, Microsoft Corp.'s Windows operating system. (When asked about its own debugging efforts, Microsoft didn't comment.)"


Which means at the moment its all speculation, and only works for very simple (hello world) applications. By the time this program is useful, we'll have robots (like Millenium man), who will do all the debugging...

How do they answer these questions (4, Insightful)

code_rage (130128) | about 10 years ago | (#9815950)

When I think about some of the bugs I have found (and coded), the Whyline approach seems very far-fetched. The degree of self-awareness (introspection) required by something like this makes it seem like the program would be able to avoid the trap in the first place. It would require the "analyst" or "observer" module to observe not only a stack trace and PC trail, but also would require the module to understand what is supposed to occur.

I don't expect this early research tool to catch all of these, but I'd like to hear the researchers' response on how their system might (after years of development) answer questions about some of these bugs:
- Why did the Mars Pathfinder software deadlock (priority inversion)
- Why did the Mars Polar Lander crash (improper state management)
- Why did the Ariane 5 blow up (arithmetic overflow in a register)
- Why did the Patriot missiles miss in the 1991 Gulf War (accumulated time error)
- Why did a radiation therapy machine zap patients with the wrong doses (inconsistent state between GUI display and internal software state)

I'm sure there are some others on comp.risks and elsewhere.

Another point: this approach is still "just" a testing tool. In other words, it can only find errors on paths that have actually been taken in tests, which means the testing program must cover enough cases to generate the runtime errors in the first place. In all of the above cases, it was the testing program that permitted the bugs to be fielded.

Re:Interesting article until the catch at the end (0)

Anonymous Coward | about 10 years ago | (#9816028)

In Milwaukee you'd be waiting on the Willenium Man....

Oh yeah, I went there.

Response (3, Funny)

Anonymous Coward | about 10 years ago | (#9815766)

Why didn't a program behave as expected?
Because the expectations where wrong.

Re:Response (2, Funny)

Anonymous Crowhead (577505) | about 10 years ago | (#9815780)

Why didn't a program behave as expected?

Because the expectations where wrong.


I see you didn't debug your post.

Re:Response (1)

TedCheshireAcad (311748) | about 10 years ago | (#9815829)

No, your version of English is outdated, missing, or corrupted. Please re-install from a known good copy.

Wake me when they launch the DWIM interface (1)

winkydink (650484) | about 10 years ago | (#9815770)

computers are too darn literal. :)

Yes, but... (2, Funny)

maxchaote (796339) | about 10 years ago | (#9815773)

That's great, but does it understand expletives?

Good idea but... (1)

gUmbi (95629) | about 10 years ago | (#9815774)

Computers will only be truly easy to use when they do what I mean instead of doing what say.

Jason.

Re:Good idea but... (1, Funny)

Anonymous Coward | about 10 years ago | (#9816023)

Can not parse "do what say." Perhaps you have made a grammatical error?

Error: pre-parse failed. 200406271657.msg, line: 2

Now all we need... (1)

FusionDragon2099 (799857) | about 10 years ago | (#9815776)

is a command line interface that can cut people some slack instead of spouting out "bad command or file name" left and right.

interface conflicts (1)

captain1010 (800750) | about 10 years ago | (#9815779)

Query: Debugger, what is wrong with this prgram?
DB: Eh.

Query: Debugger! What is wrong with you?
DB: What is wrong with you?

Query: Debugger! How do I shut you down?
DB: Option not found.

Not to appear smug but... (4, Insightful)

Rosco P. Coltrane (209368) | about 10 years ago | (#9815782)

All these talks of "revolutionary" debugging techniques bother me a little. There's only one debugging technique, and that's the debugger's skill and experience. Debuggers, traces, logs and other printf()s and LEDs flashing are just tools.

Andrew Ko's invention is just another tool. It won't do the debugging for you. Just like modern cars have diagnostic computers, but somehow it appears you still have to fork off $30/hr for the workmanship to get it fixed...

Not so... it is the scientific method. (1)

www.sorehands.com (142825) | about 10 years ago | (#9815844)

  1. Determine the problem.
  2. Create a hypothesis of the cause of the problem.
  3. Test the hypothesis.
.

Re:Not to appear smug but... (1)

scaaven (783465) | about 10 years ago | (#9815919)

exactly. even if you aren't keen on creating breakpoints, it isn't very hard to printf() variables along the path of the program that is giving you grief.

the only way a computer could debug an application just as well as a human would be a chinese room [wikipedia.org] .

-scaaven

Re:Not to appear smug but... (1)

shawn(at)fsu (447153) | about 10 years ago | (#9816090)

Never underestimate a good printf() or System.out.println() I was taught in school to use them in place of the nice debugging tools that come with the IDE's and here I am in the realworld with some of the best tool and we all still use statments more than anything else.

Re:Not to appear smug but... (1)

Richard Whittaker (759551) | about 10 years ago | (#9815954)

Where the heck do you get your car fixed for only 30 bucks an hour!?

pointless (4, Insightful)

TedCheshireAcad (311748) | about 10 years ago | (#9815785)

Article says adding Whyline to java makes it 10x more complex. Seems to me like just another example of Computer Science grad students trying to justify their existence.

Re:pointless (1)

magefile (776388) | about 10 years ago | (#9816067)

Er, no. Whyline works with a (simplified, English-like) language called ALICE. Java is 10x more complex, thus making it difficult/impossible to get Whyline to understand Java. Ooh, I wonder where they got that "10x" from?

But I LIKE debugging... (3, Funny)

Zaranne (733967) | about 10 years ago | (#9815786)

Plain english or not, make it easy for someone to debug and I'll be out of a job. I like finding other people's mistakes and being the one to say "Uh, dude, this is where you screwed up, but I fixed it for you".

Where's the fun if I can't point out someone's shortcomings?

Emacs Leads the Way? (4, Funny)

Mignon (34109) | about 10 years ago | (#9815788)

M-x doctor

Why didn't a program behave as expected?

Is it because didn't a program behave as expected that you came to me?

C-x k

Re:Emacs Leads the Way? (0)

Anonymous Coward | about 10 years ago | (#9815903)

I don't get it. :wq

Nice Concept, Wrong Audience (0)

Anonymous Coward | about 10 years ago | (#9815795)

Nice concept, wrong audience. I have never met a developer who spoke plain english.

Sounds good... (1)

solive1 (799249) | about 10 years ago | (#9815797)

Hopefully I'll get a better description of an error than "Segmentation Fault". If there is one error I truly loathe, it is that one.

Re:Sounds good... (2, Informative)

xiphy (770048) | about 10 years ago | (#9816033)

Maybe you should try a mem debugger like valgrind (i386 Linux only). It saved me lots of debugging time.

Specs in plain English (2, Interesting)

lakeland (218447) | about 10 years ago | (#9815798)

A couple years ago I was chatting to someone who developed a program where specs could be written in plain English. Specifically, Rational already has a spec language called controlled English that is simple enough for PHBs to _read_ (but not write, kinda the opposite of APL and perl ;-)

Anyways, while PHBs cannot write controlled English, they can write English, so this guy treated the problem as human-assisted machine translation. However, it never seemed to take off. *shrug*

works in BASIC too - sample script... (-1, Redundant)

Glog (303500) | about 10 years ago | (#9815804)

10 ASK("Are infinite loops a myth?")
20 GOTO 10

Re:works in BASIC too - sample script... (1)

maxchaote (796339) | about 10 years ago | (#9815907)

^G
No.

Maybe I'm Old Fashioned (2, Funny)

Zorilla (791636) | about 10 years ago | (#9815805)

I think I'll stick to yelling at the machine when I'm trying to run "make" when a dependency gets left out of the ./configure script and it errors out after 5 minutes of compiling.

"What the fuck is libmonkey1316-3.so??!!"

Finding whole RPMs with the name of one known file you need is always fun. On second thought, maybe asking the computer what the hell that file is could help.

Limitations? (1)

mysterious_mark (577643) | about 10 years ago | (#9815807)

It seems like it has only been implemented in ALICE and not for any other languages such as Java or C, implementing it for these languages would be non-trivial. There have been many de-bugging tools over the years, none of them have fundamentally changed programming, so I'd wait and see if it is actually useful, or lives up to expectation. M

Maybe not the entire debugging process... (1)

black6host (469985) | about 10 years ago | (#9815810)

I wouldn't mind being able to ask: "What is the value of FirstName during the third iteration of this loop when LastName is 'Smith'" Even if the entire process can't be performed using plain english (or language of your choice) I can see some uses here.

Re:Maybe not the entire debugging process... (1)

TedCheshireAcad (311748) | about 10 years ago | (#9816093)

<?
if( $row['lastname'] == 'Smith' ){
$iterations++;

if( $iterations == 3 ){
echo( $row['firstname'] );
}
}
?>


Whose Ph.D. thesis just got its shit RUINED by my 4 lines of PHP?

plain English development.... (2, Interesting)

kisrael (134664) | about 10 years ago | (#9815816)

What'll be interesting, if a long way off, is when they get plain English development.

Now, there's a lot of reasons why this is a tough problem; English is tremendously less precise than a computer language, and a computer would need a GREAT deal of common sense before being able to make good sense of our high level spoken descriptions.

But still...so many programming tasks are really 95% "lather, rinse, repeat", and we're striving to get Design Patterns in place for much of the rest. It really makes me wonder... ...then again I wonder if it would be fun to make a shell that used something like Infocom's "INFORM" parser...actually, wire that up to some speech recognition, and you'd have something interesting. Not neccesarily super-useful or more effecient than the tried-and-true-UIs, but interesting.

For the history buffs, I think COBOL was one attempt to bridge spoken "Businessese" and computer code. I don't know a ton about it but I think it might ultimately be an underrated attempt... (for a while, all computers were financial (base 10 for its math, usually) or scientific (binary)...over time, the scientific approach 'won out', probably because it was easier for the scientific side to emulate the business side than vice versa, or maybe because the attention span of geeks is more important than who's writing big checks. Anyway, today's Unix culture is firmly from that scientific tradition, dot com boom not withstanding...

Thus endeth the less-than-full-assed history lesson and speculation about where this stuff will end up...

Plain english error reporting? (2, Insightful)

jeffmeden (135043) | about 10 years ago | (#9815817)

How useful will this be when it responds to a simple question with a simple answer?
me: why did the program leak 1GB of memory then segfault?
computer: because you don't know how to program, you idiot!

And this helps how? (2, Interesting)

buckhead_buddy (186384) | about 10 years ago | (#9815822)

The article showed what looked to be a Pac-Man environment which tried to show objects (ghost, dot, pac), a boolean (why did, didn't), and a condition (move toward x). That is a cool idea to enhance debugging with holistic information about objects at a higher level.

I don't think it'll make as much of an impact in the real world (e.g. replacing "general protection fault" etc) as the article implies. First it seems more to trace a set of known possibilities that happened or not, rather than to catch really unexpected occurances. If a fence post error caused a count to trigger some action an iteration too early that would be a very hard thing to see at an object level even if you were the programmer who could interpret such things. If you were the user whose binaries had been stripped of most debugging info to reduce chances of reverse engineering then you'd have an obtuse error message that probably has no way to recover from the error.

It's a neat idea, but this doesn't sound like an end user sort of innovation (or anything close to it) as the article portrays.

Fundamental logic problem (2, Insightful)

CAIMLAS (41445) | about 10 years ago | (#9815828)

There seems to be a fundamental logic problem with this kind of debugger. It seems to be more of an 'interpretive debugger' in which it would need to know what you're trying to do in the first place. Thus, it would have to know what the code -should- look like in order to tell you what the problem is.

In essence, for there to be a "English debugger" (one that speaks more english than current debuggers, that is), it would essentially need to know how to program itself on top of being able to follow the flow of code and find where it breaks, so as to be able to tell you precisely what the problem is.

Sounds a bit fictional to me.

Anyone else think about The Silver Project? (1)

garcia (6573) | about 10 years ago | (#9815836)

Video editing [cmu.edu] for porn? Why else would they use that graphic? :)

somebody need's their English debugged (0)

Anonymous Coward | about 10 years ago | (#9815845)

Melon's are fruits, Carnegie Mellon is a college.

Somebody needs their punctuation debugged (1, Funny)

Anonymous Coward | about 10 years ago | (#9816048)

Never use an apostrophe followed by the letter "s" unless you mean to indicate possession. What exactly belongs to the melon? Observe:

I love your mom's peaches; I want to shake her tree.

So what does thing actually do? (1)

ZagNuts (789429) | about 10 years ago | (#9815865)

For example, if a program contains rules about Pac-Man shrinking when he hits a ghost, Whyline will let the programmer ask "Why didn't Pac-Man resize?"

In this context it seems like it records the last few possible paths of execution the program could have taken and then tells you which branch caused the program to go the wrong way.

Perl version: (1, Funny)

Anonymous Coward | about 10 years ago | (#9815870)

Hello, I found the problem. It is as follows:
push@{$w{length$_}},$_ for split$/,`cat $f`;$x=$_ for sort{$a<=>$b}keys%w;for$n(
reverse 3..$x){for$b(@{$w{$n}}){$s=$n-1;$m{$n}=$b;H:for$y( @{$w{$s}}){if($y=~/[$b
]{$s}/){$t=$y;$t=~s/$_/X/ for split'',$b;if($t=~/X{$s}/){$m{$s}=$y;if($s==3){for
(sort{$a<=>$b}keys%m){next if$_>$n;print$m{$_},$/;}exit;}$s--;$b=$y;goto H;}}}}}

Drink Me, Eat Me (3, Interesting)

grunt107 (739510) | about 10 years ago | (#9815874)

From the pdf on whyline, it seems to work with the Alice language. Alice seems to be very rigid in its design, allowing English lookups (rather like naming variable in English-word format like 'pac_resize').

This is a more user-friendly version of tools like grep and awk.

This type of debugger would seem difficult to make in the lower-level program tools without rigid naming conventions. Or else the searching would be on high-level concepts like graphic resizing that would be searched on the language functions that perform the resizing (regardless of data-var name).

I do have to disagree with their definition of a programmer: "If you've created a spreadsheet, made macros in Excel or Word or used a Web application to fetch news about your hobby or favorite celebrity, you've programmed". Although technically usable in definition, a Word/Excel macroist does not a programmer make.

Slashdotting (2, Funny)

GraWil (571101) | about 10 years ago | (#9815886)

debug> Why did my web server crash?
reply> slashdotting

Brad Myers! (1, Informative)

Teppy (105859) | about 10 years ago | (#9815889)

Great to hear what he's up to these days. He's the third professor [slashdot.org] in this story from my days at CMU. Brad, if you're reading this, all that videogame stuff wasn't a waste of time after all. [ataleinthedesert.com]

Alice 3d?? (1)

joesoundbyte (699248) | about 10 years ago | (#9815914)

i'm curing to know who's is actually using that for 3d? i haven't used that since the early 90's!?! and i thought i was the only one using it outside the project creators.. it's seems to be used as a teaching tools other than a viable 3d environment

UPS: Just One More Hack (2, Funny)

Tackhead (54550) | about 10 years ago | (#9815923)

So this whole article is about the UPS Debugger. Just One More Hack [colorado.edu] , and then he'll put it on the 'net...

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....

MP3 version available at: Just One More Hack [nosuch.com] - Mark Wheadon

Debug CowboyNeals ass (-1, Offtopic)

Anonymous Coward | about 10 years ago | (#9815924)

Error:

BUFFER OVERFLOW

Why is this considered revolutionary? (1)

neurosis101 (692250) | about 10 years ago | (#9815937)

How is this really different to what a normal developer does with GDB?

When your program fails, how it fails usually is some sort of indicator of what's wrong. Programmers just map an associated failure type with a problem, doing a diagnosis type system like a doctor would. This software just seems to do the same thing only explicitly. For example, when I see a bus error on a *nix box I think of some sort of memory error, and then GDB, xamine the memory locations to make sure everything is being accessed appropriately. I map an behavior to the error in order to figure out what's wrong. Why do I need to have some program that says just prints out extra words around it?

Furthermore, if you really think about it, why "dumb down" the compiler if the programming language is still hard? If you know C++ its rather trivial to learn GDB isn't it?

Like the computer in Star Trek (1)

suso (153703) | about 10 years ago | (#9815944)

Sounds kinda like the ship computer in STTNG.

Jordi: Computer, why didn't the warp field form?
Computer: There was insuffient anti-mater to cause a stable reaction.

Good CMU, Good! (1)

Knights who say 'INT (708612) | about 10 years ago | (#9815955)

The Carnegie-Mellon University finally invented Clippy!!!

Way to go.

Re:Good CMU, Good! (1)

Aerion (705544) | about 10 years ago | (#9816022)

The Carnegie-Mellon University finally invented Clippy!!!

But if it were really Clippy, you'd get interrupted every time you typed a '{' with "It looks like you're writing a function!" and various useless suggestions on how to proceed.

Sounds nice until you get to the real world (0)

Anonymous Coward | about 10 years ago | (#9815971)

That might work in controlled circumstance, but real world systems are
never that simple. They use multiple languages, environments, and
networks. How Is it going to know that my error is in a database
stored procedure executed from a trigger on the server rather than the
client side code running on a PC? There would have to be some kind
networked debugger standard they all follow.

Just use Mozart's method (1)

HarveyBirdman (627248) | about 10 years ago | (#9815981)

Write the program perfectly the first time.

Why Not? (0)

Anonymous Coward | about 10 years ago | (#9816007)

Instead of wasting time debugging in english, why not write a program that takes a description of what your program *should* do (in english) and then it programs it for you with no bugs...

It would be faster and you'd never have to track down bugs. If it does not work as expected, you obviously asked it to write the wrong thing. Ask it more explicitly to do what you want and rinse, repeat as necessary.

Seems to me that would be a better use of the money. Mind you, that would effectively put us programmers out of work.. hence why we have not done it. It's not because it's hard or anything :)

I am sorry Dave, (1)

Archfeld (6757) | about 10 years ago | (#9816018)

I can't do that, My prime DRM directive now insists I have to subdue you for intellectual copyright infringement, this won't hurt much...

Programming is not using Google News! (1)

CharAznable (702598) | about 10 years ago | (#9816019)

"[if you have] used a Web application to fetch news about your hobby or favorite celebrity, you've programmed."

No you haven't. Excel spreadsheet *maybe* counts like an instance of functional programming, but not using a freggin' web app!!!

Probably Not As Useful As They Are Saying (1)

kmhebert (586931) | about 10 years ago | (#9816025)

I bet this software is great at finding syntax errors or maybe even some logical flaws in the code. But those types of bugs aren't what suck up all your time as a programmer. I wonder how good this software is at finding errors where the code is running correctly, but missing a required element from the specification. Or what about when your manager looks at it and says, "there's a bug in the program, it doesn't export to Excel" even though no one ever asked you for the Excel exporting capability? We'll see. I'm skeptical though, based primarily on this gem from the article:

You may not know it, but chances are you, too, are a programmer. If you've created a spreadsheet, made macros in Excel or Word or used a Web application to fetch news about your hobby or favorite celebrity, you've programmed.

Uh, no you haven't. You've used a program. Maybe you can make an exception for some macro development but successful entry of a URL into the address bar does not a programmer make.

Error messages: understandable vs. informative (2, Insightful)

powdered toast dude (800543) | about 10 years ago | (#9816032)

I believe debugging output and error messages go hand in hand where improvements of this kind are concerned.

In the area of error messages, we need a better balance between "understandable" and "informative". Today, it's usually one extreme or the other. Either error messages are too "friendly" to the point that they're rather meaningless (as in the notorious "Web site not found"), or on the other extreme, they're so "complicated" that the novice user has no idea what happened (as in "an xxx exception occurred at xxx, here is the stack trace, register states, and many many more confusing numbers").

It would be nice if we (as a society that happens to use computers) could adopt a guide that gives the technically-savvy enough info to go on, but still helps the novices understand what went wrong in terms they can understand too. A balanced approach.

Such an error reporting scheme, if successful, could almost certainly NOT be designed by marketing weenies nor by geeks alone, but through mutual collaboration and willingness to compromise on both sides. Hmm, no wonder it's so challenging.

But can you ask: (1)

John Whorfin (19968) | about 10 years ago | (#9816036)

WFT?

Sounds like InterScope (2, Interesting)

mdlbear (735185) | about 10 years ago | (#9816059)

Back in the last millennium, the early 1970's to be exact, there was a programming system called InterLisp. It had a fantastic error-correction system called DWIM (Do What I Mean), infinite selective undo, and (relevant to this particular post) an English-language query system called InterScope.

You could ask InterScope questions like "Who calls FOO?" or "What function called by BAR stores into ZOT?". It answered by referring to a pre-computed database. Naturally, this kind of thing was made easier by the fact that LISP programs are represented as LISP data structures.

One really has to ask whether there's anything really new in The Whyline [cmu.edu] apart from a pretty interface.

Why is this bug taking so long to find? (1)

raygunz (577841) | about 10 years ago | (#9816068)

Q: Why is this bug taking so long to find?
A: Because you don't know the first 9 things about debugging.

Q: Why don't I know these things?
A: Because you haven't read "Debugging" by Dave Agans.

A debugging analysis tool can help you follow one or two of the nine rules, but you have to follow them all.

Shameless plug, I wrote the book - but it has gotten great reviews. See the slashdot review at http://books.slashdot.org/article.pl?sid=04/02/21/ 228241&tid=156&tid=6 [slashdot.org]

Get the cool rules poster at http://www.debuggingrules.com/ [debuggingrules.com]

Only need one debugging command: (1)

grmoc (57943) | about 10 years ago | (#9816074)


You really only need one command..

"Why?"

So why bother giving people any choices in the matter? =)

It's Carnegie Mellon (2, Informative)

tk2x (247295) | about 10 years ago | (#9816103)

Melon is a fruit..

Re:It's Carnegie Mellon (1)

VoidPoint (634537) | about 10 years ago | (#9816117)

I will NOT make any jokes about fruits or Melon heads.

ObFamilyGuy (1)

sharkey (16670) | about 10 years ago | (#9816121)

Peter: "Why did my program die?"
Debugger: "Because you touch yourself at night."

A miracle!!! (1)

dirt_puppy (740185) | about 10 years ago | (#9816125)

They have solved the problem of natural language processing and of proving assumptions about programs, all at once, and without me noticing. Great that we have Slashdot, i would have missed that without.

There's nothing to be seen here, move on...

Load More Comments
Slashdot Login

Need an Account?

Forgot your password?

Submission Text Formatting Tips

We support a small subset of HTML, namely these tags:

  • b
  • i
  • p
  • br
  • a
  • ol
  • ul
  • li
  • dl
  • dt
  • dd
  • em
  • strong
  • tt
  • blockquote
  • div
  • quote
  • ecode

"ecode" can be used for code snippets, for example:

<ecode>    while(1) { do_something(); } </ecode>