| First C/C++ binaries bidirectional debugger targets Linux |
May 22, 2006
A U.K.-based start-up founded by two Ph.D's is shipping a bidirectional debugger for arbitrary Linux binary programs, including those written in C or C++. Undo Software says its UndoDB lets developers "reason backwards" from the point of failure, a technique said to greatly simplify debugging.
Bidirectional debuggers have long been available for interpreted languages, such as Java. However, UndoDB is the first bidirectional debugger available for C and C++ binaries, according too Undo.
Co-founder Julian Smith says Undo chose to release its bidirectional debugger on Linux first because, "Today's Linux market is pretty exciting, not least due to its rapid expansion into consumer electronics and other embedded systems. We believe that the somewhat fragmented nature of the Linux market makes it more accessible for small but innovative companies such as ourselves. There were also technical considerations -- for example, UndoDB's technology requires a precise and complete specification of the application/kernel interface, and you can't get a more precise and complete specification than the kernel's source code!"
Undo notes that computing pioneers Brian Kernighan and Rob Pike, on the first page of their book, The Practice of Programming, offer the following debugging advice:Reason back from the state of the crashed program to determine what could have caused this. Debugging involves backwards reasoning, like solving murder mysteries. Something impossible occurred, and the only solid information is that it really did occur. So we must think backwards from the result to discover the reasons.
UndoDB requires no recompilation or other modifications, nor specialized hardware, kernel patches, or kernel drivers, Undo says. It lets developers play programs forwards and backwards in "a totally repeatable fashion," in order to "home in" on the cause of bugs. Bidirectional debugging is most useful for delayed-reaction and intermittent bugs, according to the company.
UndoDB uses the GNU debugger (gdb) as its front-end, for the sake of user familiarity. GDB's next, until, finish, stepi, and nexti commands are available, along with their respective backwards counterparts: bnext, buntil, bfinish, bstepi, and bnexti. UndoDB also adds commands that have no parallel in gdb, such as bgoto and bgoton, which can be used to jump to an arbitrary point in the program's history. When the program is paused at any point in its history, the programmer can inspect the full state of their program using the usual gdb commands (e.g. print, backtrace, and display).
Smith boasts, "UndoDB makes even the nastiest bugs trivial to uncover. This is hugely significant, because the unfortunate reality is that most programmers spend most of their time hunting a few nasty bugs. A tool that could reduce the debugging burden by even a few percent would save the software industry a staggering amount of time and money; and UndoDB can do much, much better than that."
Availability
UndoDB is available now, free for non-commercial use. Professional use costs $495 per seat, with an introductory special of $295, including an upgrade to version 2, expected in Q4. A 30-day evaluation version is also available.
Related Stories:
(Click here for further information)
|
|
|
7 Advantages of D2D Backup
For decades, tape has been the backup medium of choice. But, now, disk-to-disk (D2D) backup is gaining in favor. Learn why you should make the move in this whitepaper.
4 Legal Reasons to Control Internet Access
The Internet is obviously a valuable resource for many organizations. However, many are exposed to legal liability concerns because they fail to control Internet access. Learn if you're safe in this white paper.
Rapidly Resolve J2EE Application Problems
Whether you are in the process of building J2EE applications or have J2EE applications already running in production, you must ensure that they deliver the expected ROI. Learn how in this white paper.
Load Testing 2.0 for Web 2.0
There are many unknowns in stress testing Web 2.0 applications. Find out how to test the performance of Web 2.0 in this white paper.
Build Better Games Online
For the game infrastructure providers, life is complex. Making money from games has become more complicated. Why? Find out in this white paper.
Building a Virtual Infrastructure from Servers to Storage
This white paper discusses the virtual storage solutions that reduce cost, increase storage utilization, and address the challenges of backing up and restoring Server environments.
Gaining Faster Wireless Connections with WiMAX
Welcome to what is quickly becoming the hyperconnected world where anything that would benefit from being connected to the network will be connected. Learn more in this white paper.
Is Your Desktop a Security Threat?
The new wave of sophisticated crimeware not only targets specific companies, but also targets desktops and laptops as backdoor entryways into those business’ operations and resources. Learn how to stay safe in this white paper.
Increasing SAN Reliability by 100 Percent
Storage area networks (SAN) are a strong part of storage plans. Learn how to increase your reliability and uptime by 100 percent in this case study.
|
|
|
|
|