Webservice Debugs Linux Binaries While-U-Wait
null-und-eins writes "A new webservice offers automatic
debugging of Linux binaries. It takes a (with "-g" compiled) binary and two invocations where one fails and the other doesn't. The service repeatedly runs the two programs and tries to find the smallest difference between the two that causes the failure. Nice google-like interface with statistics about its own performance."
...these guys allow me to upload any linux executable, which they will then execute in a gdb context?
Alfred, prepare the rootkit!
All's true that is mistrusted
Now we've got it debugging the code, we only need to get it started writing the code, and we're sorted :-)
Simon
Physicists get Hadrons!
Why ask Igor when you can ask slashdot? :-)
... or does it seem that many of the recent Slashdot posts are not very newsworthy? Read "Stuff that matters" lest you forget.
Linux Resources
One thing I've learned from working on and encouraging students to use GPL programs is that they are largely much higher in quality than other standard programming code deliverables.
Therefore, I challenge the author of this article to state why Linux code would need to be debugged.
I mean, honestly -- have YOU ever seen a function or class or subroutine in Linux that WASN'T damn near perfectly coded?
Reply or e-mail; don't vaguely moderate. Ex-O'Reilly/MIT employee, now a full-time Google employee.
what are you, fucking retarded?
[img]?
what the fucking hell is that?
Igor is the lab assistant in several Frankenstein movies. He does the dumb and ugly work, while being absolutely loyal to his master. For us, Igor was just the perfect name for an automated debugging gofer. "Igor! Go for bugs!" Actually, Igor (pronounced EE'gore) is a common russian first name, originating from ancient Scandinavian "Ivor", meaning "bow warrior". You might also think of Igor as a hero who hits even the most difficult target.
sign(c14n(envelop(this)), x509)
...When I was trying to figure out what the hell was making my program crash! I figured it out, and got it fixed, but it took me 6 hours to pin point it! Something like this can (hopefully) be very useful next time I have a program that unexpectedly seg faults! =)
This space for rent, inquire within.
Please leave the country immediately, you are no longer welcome here. Please take the beaners and chinks with you.
Thank you.
[ and now, the ebonics version ]
Yall bes be steppin les you wan ussa poppa cap in yo black ass. Get up on out ahere and bring dem messicans and china mans wichall.
Word.
It takes a (with "-g" compiled) binary and two invocations where one fails and the other doesn't. The service repeatedly runs the two programs and tries to find the smallest difference between the two that causes the failure.
Wow! Diff.
Yeah yeah, this works on binaries. If you don't have the source, who cares what the problem is, anyway. It's not like you're going to fix it.
I site's admin configured the site to forward visitors to the google cache of the site, but if you actually try to debug something, you get back to the real site, poor admin, he thought he could get away from /.ing!
The IT section color scheme sucks.
If you have a working version, why do you need the debugger?
I am the original author of that little number, and it makes me really happy to see it's still around.
Thanks a bunch, AC.
Linux developers and soap....
back to the drawing board guys!
Your program may fail if invoked one way and work if you invoke it some other way.
Hence this.
--
the strongest word is still the word "free"
You bastard!
I guess I should just give up on my dream of ever finding some prurient Jessica Lynch slash fiction here on slashdot, huh?
/. is messed up, this happened to me today too. just for BSD and YRO though, not the apple headlines. looks like something is messed up. everything else works though.
I think this is a neat idea, but I wonder why it isn't a standalone program you can run yourself as well as/instead of a web interface.
This is because I wonder why he wants to run the risk of running foreign binaries (sandbox or not) when he could have just not done that. There doesn't seem to be any advertising on the page, so that isn't it.
Oh well, maybe he just thinks it's cooler this way, actually it kinda is, so long as it's safe for him I guess.
I'd even settle for a copy/paste job on "Old Ike" by now!
with so many different Linux distros, and versions how is this thing going to be really effective???
like if i am running Slackware-9, or Redhat, or Mandrake, and this debugger is using Debian Woody wont it only debug it from a Debian Woody point of view??? and not consider the other distros that are out there
The program I'm trying to run that is causing my computer to fail is "rm -rf". What's wrong?
-R
wtf?? and it's still at +1, mod down, who the hell cares that you'll try it anyway??
They prefer Dom/Sub in LA.
Even worse, the color coding on the IDE Master/Slave cable is backwards - The MASTER is Black, while the SLAVE is grey/white. why not just call them "Honky" and "Nigger", respectively?
I have this problem too. But I suspect it is because my proxy bangs on the server much more often than every 30mins. But thats what happens when you work at a very large company.
One day Jessica Lynch was maiming her clit with a horseshoe when suddenly Saddam Hussein ran up to her and shoved his pointy ear up her butt. "What is this for!" the fag soldier said. "FAGS FOR YOU AALL!L!!!" the ancient despot howled as suddenly he farted and Jessica Lynch twirled around in a daze and her nipples twisted and his kidney stones turned into wooden beads. He pulled out his pistol and shot lasers at his chastity belt and suddenly he hurdled his dick into Jessica Lynch"s bellybutton and it tore her flesh while Saddam fucked her stomach. Jessica hollered out loud and Saddam Hussein threw his shoes to the floor and wrinkled his penis until Jessica bellowed out to make it stop. A maelstom of shit whizzed around the HUMVEE and suddenly a giant fag appeared out side and the HUMMVEE went up her butt. "Oh what the hell have you gotten us into NOW!" Jessica Lynch said as she oozed a condom back out of her ass and put her panties back on. "OOH!H!!!!!!" Saddam Hussein started fucking her again and shoved his phazer up her butt. He dissolved her glands and exploded her turds and finally a queer Saudi hurdled through the door and smashed Jessica with his butt hairs. A maniac sucked her tits and suddenly Saddam Hussein fagged Jessica so hard that her intestines burst open and she died.
Find out what's wrong with that crap.
Life in Orange County
You must be joking. While some of the more "mature" projects are definately solidly coded, some of the others are nightmares. Try mixing several different coding styles, nights coding on only caffeine, starting, stopping, and losing your place...leaving debug to-fix-later code in by accident...
Open source suffers the same problems as closed. In some projects moreso, as the variance of different coding styles/standards-adherance can lead to very interesting things happening. Even some mature projects have this problem, I've heard of some common ones where a rewrite was considered, because as the code evolved and was added to, the author(s) learned much better coding as it progressed but left the core a bit flaky.
This site wouldn't happen to also, uh... keep a copy of the working code?
"Freedom means freedom for everybody" -- Dick Cheney
Is this trying to replace the cardboard cutout dog as everyone's favorite debugging tool?
means one where the drop shadows and antialiasing are so fuzzy you can tell it was made by The Gimp.
Please read the article.
The tool executes your program multiple times, and examines the internal state of the program (variable values and memory contents) at various stages in the execution.
It then automatically isolates the root cause of the failure. This is pretty cool stuff, and ought to save a lot of time tracking down complex bugs.
-Mark
I would like to know what those "several movies" are. Igor is certainly not in the book. In the 1930's clasic movie the lab assistant is "Fritz", not Igor. The only "Frankenstein movie" that I know that used Igor was the spoof by Mel Brooks. Perhaps this website is trying to associate it's debugging with a spoof!
I'm an American. I love this country and the freedoms that we used to have.
I presume igor had some bugs when you were writing it. Was it able to find it's own problems? :)
Smart kids. Redirecting to their google cache.
I wonder what happens on google's next cache update, if you're doing something like that. Do you get a google cache within a google cache? Or does google just forget about you?
There are no trails. There are no trees out here.
We're redirecting only if you come from /.
That's very clever! Smart cookies.
It certainly mitigates the awesome server-melting power of the slashdot effect
int pid;
pid = fork(); .. }
..
if (pid == 0) {
}
$ gcc -g -o my_prog my_prog.c
$ gdb my_prog
(gdb) b fork
(gdb) r
(gdb) n
HA HA HA HA, half for you and another half for me.
open4free
Please do look through his comment history...
I just wrote a small program to test. One thing I don't get from your documentation--how pass/fail is determined and, as a corollary, how segfaults are handled.
Your docs are highly confusing on this point. It looks like I should return 0 if I succeed *or* fail.
I notice that Fedora Linux is full of bugs, however this site won't let me upload the entire first cd.
This fields has decades of history. A good starting point, should you like to explore it, is here.
I keep thinking of Marty Feldman's protrayal of Igor (that's EE-Gore) from "Young Frankenstein"...
The REAL problem bugs are the ones where the same input on different machines will give different results, or the same input on the same machine will give different results during different runs.
Kinda cool technology, I guess, but speaking as someone who has programmed in C/C++ professionally for about 9 years now, I just don't see this as being useful in 99.99% of debugging cases, and the ones where it might be useful are pretty easy to solve just by tracing the stack once you know what the 'problem' input is.
Arg, I thought us Euro's didn't have to worry about software patents anymore. Then again, isn't it a bit weird to have AskIgor licensed under the GPL and filing patents on it at the same time? IANAL, but is this possible? You file a patent to make cash from it by licensing it to others (or using the technique yourself), or you make it opensource and give it away freely. They say that "Delta Debugging" isn't patented, but when it's applied to program states it is (will be).
Gotta love IP...
This sig is intentionally left blank
Nice google-like interface...
What, you mean like a textbox?
-3Suns
~~~~
The Revolution will be Slashdotted
I remember reading a rant about a year ago. Someone wrote a replay tool for program executions for under linux, I think 2.0 or 2.2. They dropped it because nobody cared about it (probably because nobody knew about it), and they got sick of updating it constantly for new IOCTL's as the kernel constantly changed.
I think it was Carmack lamenting its loss.
Good old SIGSEGV. That's what happens when you deference null pointers, write to memory that's not yours, etc. It's the most common crash-n-burn error an application will experience. Windows calls these "Program Errors" or something now in XP. I forget. It use to call them "Access Violations". IIRC only Windows ME->98->95 had the "feature" that you could destroy other program's memory if you didn't follow all the rules.
Fuck Beta. Fuck Dice
...and launch the premptive strike?
I am very small, utmostly microscopic.
1) invoke command like this:
$ your binary input
2) upload input in the "files" section
3) wait...
The restriction is your program must be capable of running in a demand based mode by the contents of a file.
Fuck Beta. Fuck Dice
You could also write emails to it about your girlfriend problems (by writing something like, "my girlfriend is mad at me"), and it'll send back a list, compiled for your particular situation, of things to say and do, down to the finest detail, designed to appeal to all levels of the conscious, subconscious, and unconscious mind of the female in question.
How does it work? All matter and energy in the universe comes in the form of waves at various frequencies and whatnot. The vibration of these waves is actually what produces everything we know. Even the fabric of space is part of this cosmic symphony. Every vibration has an effect on everything around it. So all they have to do is make up a piece of hardware, which I'll describe presently, and some drivers to support it under Linux. The hardware will include two sensors. In one, there's a single atom of hydrogen. Its vibrations are measured. The other is a gravitational sensor that senses where all the stars are in the universe. The information from these sensors goes into a simple mathematical formula that figures out exactly what is going on everywhere in the universe at any given moment in the past, present, or future. That information is then indexed like a lookup table to find the exact problem you're talking about in your email to the thing, and, knowing that this server will produce the correct answer, all it has to do is look into its own future to see whta that answer is. Essentially, the information comes from nowhere. Building the two sensors and the mathematical formula I described is elementary and left as an exercise for the reader.
Artificial Intelligence. It's what's for dinner.
multithreaded programs? Does it catch race conditions and such?
I KNEW that I had to step up my efforts to DDOS, erm slashdot, that website. Whatever you do, please don't block all the IP's submitting random chunks of massive code, OK? I'm ... uh... trying to study the slashdot effect here, m'kay?
"73% of quotes on the Internet are made up" -Ben Franklin
Igor FAQ:
...
"The Eclipse plug-ins are licensed under the GNU public license."
"The basic Delta Debugging technique (narrowing down relevant circumstances by experiments) is not covered by any patent (as far as we know); in fact, we have released Delta Debugging plug-ins for Eclipse under a GNU license.
However, Passau University has filed international patents for the automatic isolation of cause-effect chains from computer programs--that is, Delta Debugging applied to program states. This is the core technology of AskIgor. This means that if you want to make money out of AskIgor technologies, you'll have to license the patent. (That's how Passau University attempts to get some revenue from its research.) Patent licenses are handled by the Fraunhofer Society in the BayernPatent initiative. "
GPL:
"For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program."
WTF?
Maybe there is some difference between what the Eclipse plugins do and what AskIgor does, but it's not very clear from the FAQ if that is the case.
Cthulhu loves you.
I want some of that weed man, its hard core. ;)
http://securityportal.com.ar
So, it comes out! This is what happens when you toy with your system ;)
Open Source Java Web Forum with LDAP authentication
This gives me:
Igor could not debug your program. While debugging, Igor encountered an internal error during execution.
The AskIgor maintainers have been notified. This is an urgent problem which will be fixed soon. Any new diagnosis will be shown on this page.
This program (which needs updating to more recent kernels) allows one to replay a binary execution.
http://old.lwn.net/1999/0121/kernel.php3
http://lwn.net/1999/0121/a/mec.html
Apparently its been out for *8* years, and has had exactly 3 people download it. Horrible -- its a feature I'd kill to have, and a feature linux should have.
I'm sorry for the inconvenience, and have made sure this problem won't happen again. But remember that this is a research project, and we can't sit besides the machine 24/7.
www.askigor.org - automated debugging service
Why the hell isn't this modded +1000 hilarious?
Does this assume that the program is deterministic? By this I mean that the program always follows the same code path for the same inputs, or, put another way, that no randomness is involved.
-c"If you are an idealist it doesn't matter what you do or what goes on around you, because it isn't real anyway."-R.P.W.
In January, Jamie Zawinski made a post about the possibility of running a debugger backwards...
Ask Igor seems to be an implementation of delta debugging. You can use the delta program to implement this on your own system. You choose a test program (or 'harness') and an input that causes the harness to exit with success; for example your harness might run some executable and test to see if it segfaults - if so success. Then you give an initial input that passes the test (eg causes the segfault). Delta chops out lines of text to find a minimal (or at least 1-minimal, see the website) test case that passes the test (causes the segfault).
This is slightly different to Ask Igor, which takes two different files and finds the important difference between them. But similar in spirit (if much simpler). Apparently the Ask Igor code will be made available for download after it has been used 1000 times from the website.
-- Ed Avis ed@membled.com