Slashdot Mirror


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

53 of 219 comments (clear)

  1. Let me get this straight... by Theatetus · · Score: 4, Funny

    ...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
    1. Re:Let me get this straight... by Hentai · · Score: 4, Insightful

      Let no good deed go unpunished.

      Hopefully they've thought of this and won't let it screw them up too badly. A shame that human nature is such that the first thing people think about when they see a nifty new service is how to shit in it and ruin it for everyone else. (witness /.)

      --
      -Hentai [in vita non pacem est]
    2. Re:Let me get this straight... by Space+cowboy · · Score: 4, Informative

      It mentions that the whole thing runs in debian 'woody' sandboxes when the code is run. Presumably you can only 'rootkit' the sandbox ...

      Simon

      --
      Physicists get Hadrons!
    3. Re:Let me get this straight... by TedCheshireAcad · · Score: 2, Insightful
      Oh man these guys are gonna get pummeled.

      Most web servers cant handle the http requests associated with the Slashdot effect, and these guys are accepting uploads and running executables .

      perl -e 'while(true){ fork; }'
  2. One down, one to go by Space+cowboy · · Score: 4, Funny

    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!
    1. Re:One down, one to go by fitten · · Score: 3, Funny

      So... we finally know what the 2. ???? is...

  3. Why... by O2n · · Score: 4, Funny

    Why ask Igor when you can ask slashdot? :-)

  4. Why is there a need for this? by Amsterdam+Vallon · · Score: 2, Funny

    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.
    1. Re:Why is there a need for this? by SSpade · · Score: 2, Interesting

      I mean, honestly -- have YOU ever seen a function or class or subroutine in Linux that WASN'T damn near perfectly coded?

      Yes, most of it. The majority of recent open-source software is badly-written, non-portable dreck that'll build, sometimes, on a short list of Linux platforms.

      All the worlds a RedHat box is as bad an assumption as all the world's a Sun or all the world's a VAX.

      The redeeming factor is that a major reason for this is that there's so much open source code. So while the fraction that is well written, stable and portable isn't that high the absolute amount is pretty large and climbing.

  5. If I only had it two weeks ago.. by Kadagan+AU · · Score: 3, Interesting

    ...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.
    1. Re:If I only had it two weeks ago.. by iabervon · · Score: 2, Informative

      Between valgrind and ddd, I haven't had any bugs which I couldn't identify in a half hour, and only ones where there is something that the tools are bad at take more than a few minutes. Of course, that doesn't include programs that run fine but produce results which are simply not what I wanted and actually coming up with a way to fix the bug.

      Valgrind, in particular, is really promising; the core architecture is now being used to identify potential race conditions (cases where different threads access the same memory without having the same lock), as well as identifying memory errors (including leaks).

  6. poor admin... by Dreadlord · · Score: 3, Interesting

    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.
    1. Re:poor admin... by Andreas+Zeller · · Score: 5, Informative

      Most people coming from /. just have a look at the main site. By redirecting, we reduce traffic by about 50% and Apache load by 75%. If you want to go beyond (and maybe submit some buggy program), you're welcome!

      --

      www.askigor.org - automated debugging service

  7. So... by Jooly+Rodney · · Score: 2, Insightful

    If you have a working version, why do you need the debugger?

    1. Re:So... by bogado · · Score: 2, Informative

      Read again, it is two diferent runs, one that will work and the other that will segfault. For instance, if program is called "foo" and you call it with the line "foo bar" and all goes fine, but then you call it "foo baar" and it goes boink. The site can magicly tell what's wrong.

      --
      []'s Victor Bogado da Silva Lins

      ^[:wq

    2. Re:So... by bmorris · · Score: 5, Funny

      FYI, your problem is the extra "a" in "baar".

  8. wellsir by SweetAndSourJesus · · Score: 2, Insightful

    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"
  9. This is cool but by Safiire+Arrowny · · Score: 5, Insightful

    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.

    1. Re:This is cool but by GigsVT · · Score: 3, Funny

      Easy answer: So he can steal your programs!

      (OK, maybe not steal, but you know what I mean)

      --
      I've had enough abrasive sigs. Kittens are cute and fuzzy.
    2. Re:This is cool but by Vaevictis666 · · Score: 3, Interesting

      They actually might be ready - somewhere on the site it says that they'll release a standalone version (for local runs) once Igor debugs 1000 programs. This way the get a decent-sized test so they can squish more bugs. And yes, they use Igor to delta debug itself :)

    3. Re:This is cool but by Andreas+Zeller · · Score: 5, Informative
      We're running AskIgor as a Web service (instead of a standalone program) for two reasons:
      • We get a set of programs for regression testing.
      • We get some ratings about the quality of our work.
      Although we did our best to give AskIgor a decent interface, it's still a research prototype, and there's many possible ways to go. Your submissions help us making these decisions, and guide our future development.
      --

      www.askigor.org - automated debugging service

    4. Re:This is cool but by ThisIsFred · · Score: 3, Funny

      If you find this service useful...

      I'm going to set-up a new MP3-checking site. It inspects the MP3s you upload and tells you whether or not they are protected by copyright. If the MP3s contain copyrighted material, the server informs the user, then saves a copy of the file for, uh, ahem, closer long-term inspection by the site administrator. Contacting the RIAA won't be necessary since it's already been established that the content is copyrighted, and the user warned. It's like RIAA copyright infringer amnesty, but without the legal gotchas!

      Why take chances? Do a batch upload of all your MP3s and save yourself from a lot of legal hassles!

      p.s. Please upload only MP3s encoded at 160Kbps/high quality or better. Quality is very important to the copyright determination process.

      --
      Fred

      "A fool and his freedom are soon parted"
      -RMS
    5. Re:This is cool but by Krellan · · Score: 2, Informative

      Funny that you should mention MP3's. I looked at AskIgor's site, and a key patent for their technology is owned by... Fraunhofer!

      http://www.st.cs.uni-sb.de/askigor/faq.php#paten t

      I'd look at their technology and admire it, but keep a good distance away, unless you want to get shaken down for huge sums of money at a later date!

  10. Ok igor... by retro128 · · Score: 2, Funny

    The program I'm trying to run that is causing my computer to fail is "rm -rf". What's wrong?

    --
    -R
    1. Re:Ok igor... by Andreas+Zeller · · Score: 5, Informative

      No problem. Igor runs your program in a sandbox whose contents get restored with each new submission.

      --

      www.askigor.org - automated debugging service

    2. Re:Ok igor... by retro128 · · Score: 2, Interesting

      Well that fine for the file system, but does it have protected memory space for each session? If so, wouldn't that get kind of demanding on the system? If not, how do you stop people from messing with the core OS?

      --
      -R
  11. Quick, someone upload Sendmail by SpaceCadetTrav · · Score: 4, Funny

    Find out what's wrong with that crap.

  12. Open-Source Community: Beta=Flaky, Mature=Stable by phorm · · Score: 5, Insightful

    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.

  13. It's a bit more complex than just "diff" by mbessey · · Score: 3, Informative

    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

    1. Re:It's a bit more complex than just "diff" by mbessey · · Score: 2, Informative

      That depends on the bug, and on the application. If you have any kind of complexity at all, it's hard to know where to start looking for the problem.

      This program basically spins away, then gives you a list of places in the source to inspect to find the error. You might still have to break out gdb, but you're saved the first stage of debugging - figuring out where the problem is.

      That's the theory, anyway.

      -Mark

  14. Question by pavon · · Score: 2, Interesting

    I presume igor had some bugs when you were writing it. Was it able to find it's own problems? :)

    1. Re:Question by Andreas+Zeller · · Score: 5, Informative
      The core technology behind Igor is delta debugging, a general method to determine the difference between a working and a failing scenario.

      While not applying AskIgor (being a huge mix of Python, PHP, and SQL) on itself, we have applied delta debugging on various parts of AskIgor to detect failure-inducing code changes, and especially failure-inducing GDB commands.

      We're currently working on Eclipse plugins written in Java, and working on Java - and these will work 100% on themselves.

      --

      www.askigor.org - automated debugging service

  15. Google-like... wait a second... by Elwood+P+Dowd · · Score: 4, Interesting

    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.
    1. Re:Google-like... wait a second... by Andreas+Zeller · · Score: 5, Informative

      We're redirecting only if you come from /.

      --

      www.askigor.org - automated debugging service

    2. Re:Google-like... wait a second... by kasperd · · Score: 2, Informative

      Do you get a google cache within a google cache?

      Google like any decent web crawler respects the robot exclusion protocol. Google have a robots.txt file, and the cached pages are included in that listning. That means no crawler is allowed to download pages from the google cache. You would expect google to respects their own robots.txt listning, so a google cache page will never turn up as a search result or a cached page on google.

      Other search engines have been less smart and on one I actually have seen cases where the top hit for some keyword was their own search page for that exact keyword. Unfortunately I don't remember which searchengine it was.

      --

      Do you care about the security of your wireless mouse?
    3. Re:Google-like... wait a second... by Andreas+Zeller · · Score: 2

      I just removed the Google redirection. It turns out our server still easily handles the /. load while running the Igor daemons and its Amanda backup at the same time. I can happily sleep now.

      --

      www.askigor.org - automated debugging service

  16. Very Clever by MonkeyCookie · · Score: 3, Interesting

    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

  17. Re:Why "Igor"? Why? Why? by tarquin_fim_bim · · Score: 2, Informative

    Actually the characters name was Ygor, a role made famous by Bela Lugosi in Son of Frankenstein and The Ghost of Frankenstein, late 30's early 40's. Hope this helps.

  18. Problems with upload.... by Anonymous Coward · · Score: 3, Funny

    I notice that Fedora Linux is full of bugs, however this site won't let me upload the entire first cd.

  19. algorithmic and automatic debugging by penguin7of9 · · Score: 3, Interesting

    This fields has decades of history. A good starting point, should you like to explore it, is here.

  20. Hmm... by AlXtreme · · Score: 2, Informative
    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.
    AskIgor FAQ

    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
    1. Re:Hmm... by Andreas+Zeller · · Score: 2, Informative

      We are well-aware that this is a conflict, and we're currently working on this. Sorry, no further comment on this matter.

      --

      www.askigor.org - automated debugging service

  21. Re:Doesn't seem that useful. by Andreas+Zeller · · Score: 3, Insightful
    We're talking about two different issues here - reproducing the bug and actually understanding how it came to be. Most bugs are easy to reproduce and easy to understand, just by re-invoking them and looking at the stack trace.

    Some bugs, though, are hard to reproduce, which means that you should set up appropriate isolation and monitoring layers in your program. The recent issue of Communications of the ACM, for instance, has a nice article on record/replay of program executions, which solves all problems of reproducing runs - in principle, that is, because such tools are not readily available yet.

    Now there's some bugs that are hard to understand, especially those where there's a long delay between the defect being executed and the experienced failure. Think about a compiler that generates bad code. This is not an issue of reproduction; nor can the problem be solved by examining the stack trace. You have to work your way backwards all through the execution to understand the cause-effect chain. This is where AskIgor can really help you.

    And, yeah, I got 12 years of C/C++ programming and debugging experience, too :-)

    --

    www.askigor.org - automated debugging service

  22. google-like interface? by 3Suns · · Score: 4, Funny

    Nice google-like interface...

    What, you mean like a textbox?

    --

    -3Suns

    ~~~~
    The Revolution will be Slashdotted
  23. Re:Doesn't seem that useful. by Andreas+Zeller · · Score: 2, Informative

    I totally agree with your observation. But the program doesn't have to crash for Igor to work. If the program simply outputs, say, "fail" instead of "pass" (as in the working run), AskIgor will narrow down the cause-effect chain that leads to the "fail".

    --

    www.askigor.org - automated debugging service

  24. Such a program replay tool exists by Convergence · · Score: 3, Interesting

    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.

  25. That's a segmentation fault. by pr0ntab · · Score: 2, Informative

    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
  26. That's good, but how about by DraconPern · · Score: 2, Interesting

    multithreaded programs? Does it catch race conditions and such?

  27. Patents by Quelain · · Score: 2, Insightful

    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.
  28. Re:Why "Igor"? Why? Why? by PReDiToR · · Score: 2, Funny

    Read some Terry Pratchett Discworld books.

    Yeth Mathter.

    eBooks available on eMule, but Hardcopy are worth the currency.

    --

    Do not meddle in the affairs of geeks for they are subtle and quick to anger
  29. Replay under linux--or how to single step backward by Convergence · · Score: 2, Interesting

    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.

  30. Our sandbox crashed - sorry! by Andreas+Zeller · · Score: 2, Informative
    Our sandbox crashed around 4AM, while all maintainers were sleeping. Thus, all 45 later submissions got these "internal errors". I have restarted Igor to recompute all failed submissions, including the one above; just try again later.

    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

  31. Were you thinking of jwz? by Sits · · Score: 2, Interesting

    In January, Jamie Zawinski made a post about the possibility of running a debugger backwards...