Channels ▼


Linux Developers Hit Undo (Software) To Go Forward

Dorm room start up company Undo Software's new debugging tool for Linux has reached its 3.5 iteration with a call to developers to try out its faster debugging offering. UndoDB v3.5 is described as being capable of recording everything that any Linux program does so that developers can virtually "wind the tape back and forth" in order to try and look for the root cause of a bug.

The 3.5 version release features an overhaul to the GUI to provide integration with development tools such as gdb 7, Eclipse, and Emacs; the suggestion is that this allows developers to incorporate UndoDB more easily into their existing workflow environments.

As well as the customary unspecified improvements to performance and scalability, UndoDB v3.5 now boasts the ability to debug applications and libraries that rely heavily on ioctl system calls such as CUDA and OpenGL applications.

Its makers have also included an autotracer feature to attach the debugger to applications in complex environments where applications are launched by several layers of nested scripts and other programs. Features such as reverse watchpoints allow the developer to go immediately to where data has been corrupted — and then to see exactly how that happened.

UndoDB's process, which essentially allows a developer to "step" or more fully "run" an application's entire program state backwards, is commonly known as "reversible debugging" — and is also sometimes known as "replay" or "historical" debugging.

According to a statement from Undo Software, reversible debugging has been a "holy grail" of software development tools research for decades. "Despite many implementations, including support built-in to the open-source gdb 7.0, UndoDB is the first and only tool with the required performance to make reversible debugging of practical use on demanding, real-world applications."

Brian Kernighan and Rob Pike (inventors of the C programming language and the UNIX operating system) write in their book, The Practice of Programming: "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."

Related Reading

More Insights

Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.