Forgot your password?
typodupeerror
Programming Software IT Technology Linux

Webservice Debugs Linux Binaries While-U-Wait 219

Posted by michael
from the laziness-and-impatience dept.
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."
This discussion has been archived. No new comments can be posted.

Webservice Debugs Linux Binaries While-U-Wait

Comments Filter:
  • by Space cowboy (13680) on Friday November 21, 2003 @06:19PM (#7532622) Journal
    It mentions that the whole thing runs in debian 'woody' sandboxes when the code is run. Presumably you can only 'rootkit' the sandbox ...

    Simon
  • SFW (Score:0, Informative)

    by Anonymous Coward on Friday November 21, 2003 @06:21PM (#7532645)

    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.

  • Re:So... (Score:3, Informative)

    by bogado (25959) <bogado@bogad[ ]et ['o.n' in gap]> on Friday November 21, 2003 @06:32PM (#7532748) Homepage Journal
    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.
  • Re:Ok igor... (Score:5, Informative)

    by Andreas Zeller (726074) on Friday November 21, 2003 @06:48PM (#7532869) Homepage
    No problem. Igor runs your program in a sandbox whose contents get restored with each new submission.
  • Re:poor admin... (Score:5, Informative)

    by Andreas Zeller (726074) on Friday November 21, 2003 @06:53PM (#7532907) Homepage
    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!
  • Re:This is cool but (Score:5, Informative)

    by Andreas Zeller (726074) on Friday November 21, 2003 @07:07PM (#7533004) Homepage
    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.
  • by mbessey (304651) on Friday November 21, 2003 @07:13PM (#7533038) Homepage Journal
    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

  • by Andreas Zeller (726074) on Friday November 21, 2003 @07:29PM (#7533161) Homepage
    We're redirecting only if you come from /.
  • by tarquin_fim_bim (649994) on Friday November 21, 2003 @07:39PM (#7533231)
    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.
  • Re:Question (Score:5, Informative)

    by Andreas Zeller (726074) on Friday November 21, 2003 @07:50PM (#7533300) Homepage
    The core technology behind Igor is delta debugging [uni-sb.de], 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 [uni-sb.de] written in Java, and working on Java - and these will work 100% on themselves.

  • by kasperd (592156) on Friday November 21, 2003 @07:52PM (#7533317) Homepage Journal
    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.
  • by Anonymous Coward on Friday November 21, 2003 @07:56PM (#7533350)
    Yeah, because Linux sandboxes are SO hard to break out of. *groan*
  • Hmm... (Score:3, Informative)

    by AlXtreme (223728) on Friday November 21, 2003 @08:33PM (#7533544) Homepage Journal
    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 [uni-sb.de]

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

  • by iabervon (1971) on Friday November 21, 2003 @08:38PM (#7533565) Homepage Journal
    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).
  • Re:Hmm... (Score:2, Informative)

    by Andreas Zeller (726074) on Friday November 21, 2003 @08:51PM (#7533612) Homepage
    We are well-aware that this is a conflict, and we're currently working on this. Sorry, no further comment on this matter.
  • by Andreas Zeller (726074) on Friday November 21, 2003 @09:20PM (#7533751) Homepage
    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".
  • by mbessey (304651) on Friday November 21, 2003 @09:22PM (#7533762) Homepage Journal
    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
  • by pr0ntab (632466) <pr0ntab&gmail,com> on Friday November 21, 2003 @09:30PM (#7533792) Journal
    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.
  • by Andreas Zeller (726074) on Saturday November 22, 2003 @06:31AM (#7535506) Homepage
    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.

  • Re:This is cool but (Score:3, Informative)

    by Krellan (107440) <(moc.nallerk) (ta) (nallerk)> on Saturday November 22, 2003 @07:00AM (#7535544) Homepage Journal
    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!

The superior man understands what is right; the inferior man understands what will sell. -- Confucius

Working...