How to install and use


UndoDB is a seamless replacement for GDB on Linux

Downloading and running

Each license is associated with a unique URL that will always link to the latest version of UndoDB for that license. For example, to download, simply:

$ wget http://undo-software.com/cgi-bin/undodb.tgz?p=57d1dc6b3f5d4503e6708cf0
$ tar -xzf undodb.tgz?p=57d1dc6b3f5d4503e6708cf0
$ cd undodb-3.5.89/
$ ./undodb-gdb -q ./a.out
undodb-gdb: Reversible debugging system. Copyright 2006 – 2012 Undo Ltd.
undodb-gdb: undodb-3.5.89
undodb-gdb: By running this software you agree to the terms in:
undodb-gdb: /downloads/undodb-3.5.89/demo_license.html
Reading symbols from /downloads/undodb-3.5.89/a.out…done.
(undodb-gdb)

Installing

A makefile is provided with an `install’ rule that will install undodb-gdb in /usr/local/bin. e.g.

$ cd ~/downloads/undodb-3.5.89/
$ sudo make install

installing undodb-3.5.89 to lib=/usr/local/lib bin=/usr/local/bin man=/usr/local/man
mkdir -p /usr/local/lib/undodb-3.5.89 /usr/local/bin /usr/local/man/man1
cp -pr * /usr/local/lib/undodb-3.5.89/
cd /usr/local/bin && ln -f -s /usr/local/lib/undodb-3.5.89/undodb-gdb
cd /usr/local/man/man1 && ln -f -s /usr/local/lib/undodb-3.5.89/undodb-gdb.1
cd /usr/local/man/man1 && ln -f -s /usr/local/lib/undodb-3.5.89/undodb-limits.1

have created:
lrwxrwxrwx 1 root root 45 May 23 10:48 /usr/local/bin/undodb-gdb -> /usr/local/lib/undodb-3.5.89/undodb-gdb
drwxr-xr-x 3 root root 4096 May 23 10:48 /usr/local/lib/undodb-3.5.892/
lrwxrwxrwx 1 root root 47 May 23 10:48 /usr/local/man/man1/undodb-gdb.1 -> /usr/local/lib/undodb-3.5.89/undodb-gdb.1
lrwxrwxrwx 1 root root 50 May 23 10:48 /usr/local/man/man1/undodb-limits.1 -> /usr/local/lib/undodb-3.5.89/undodb-limits.1

undodb is now installed.

$ undodb-gdb -q
undodb-gdb: Reversible debugging system. Copyright 2006, 2007, 2008, 2009, 2010, 2011, 2012 Undo Ltd.
undodb-gdb: undodb-3.5.89
undodb-gdb: By running this software you agree to the terms in:
undodb-gdb: /usr/local/lib/undodb-3.5.89/demo_license.html
(undodb-gdb)

Using undodb-gdb at the command-line

undodb-gdb is a drop-in replacement for gdb. There are some differences though:

    • Recording is enabled by default (to start with recording disabled, pass the –undodb-defer-recording command line option).
    • The speed and space performance impact of enabling recording is many orders of magnitude reduced.
    • The gdb record prefixed commands are unavailable, generally replaced by the superset UndoDB commands that start undodb- (hit undodb-[TAB] at the command-line to see a list of undodb- commands).

Apart from the above difference, undodb-gdb can be used exactly as one would use gdb.

Using undodb-gdb from graphical frontends

Because undodb-gdb is a drop-in replacement for gdb, it can be used from graphical debugger frontends to gdb, such as DDD, Eclipse and Emacs. (See here for more details).

Try it for free