Article View: comp.unix.programmer
Article #3807The Data Display Debugger (DDD) 2.1 is available
From: Andreas Zeller
Date: Mon, 12 May 1997 00:00
Date: Mon, 12 May 1997 00:00
534 lines
23769 bytes
23769 bytes
DDD 2.1 is available
====================
Release 2.1 of the Data Display Debugger (DDD), a common graphical
front-end for GDB, DBX, and XDB debuggers, is now available at
ftp://ftp.ips.cs.tu-bs.de/pub/local/softech/ddd/ddd-2.1.tar.gz
Diffs from earlier versions are in
ftp://ftp.ips.cs.tu-bs.de/pub/local/softech/ddd/diffs/
Contributed DDD binaries for various architectures are in
ftp://ftp.ips.cs.tu-bs.de/pub/local/softech/ddd/bin/
The DDD WWW page is at
http://www.cs.tu-bs.de/softech/ddd/
Please try a closer FTP site first; see below for a list.
What's new in DDD?
==================
DDD 2.1 brings alias detection, local variable displays, button
and value tips as well as several new features and bug fixes.
User-visible changes to DDD 2.0:
- Alias detection. DDD now recognizes that multiple displays
reference the same object. This allows the examination of
shared data structures (circular lists, DAGs, and so on). Alias
detection slows down DDD a bit, so it is turned off by default.
- Local variable displays. You can display all local variables
and arguments in the data display. The display is automatically
updated to reflect the list of variables and their values.
- Status displays. You can now view the output of a debugger
command in the data window, using "graph display `COMMAND`".
For instance, local variable displays are realized via
"graph display `info locals`".
- Button tips. Moving the mouse pointer over a button causes a
small hint window (aka `balloon help') to raise. (optional)
- Value tips. Moving the mouse pointer over a variable causes a
small window to raise showing the current value. (optional)
- The status line has been reworked and extended:
+ It displays information about the selected item.
+ It has moved to the bottom, such that menu entries can be
described. (can be restored)
+ It contains a debugger status indicator, blinking whenever
the inferior debugger is busy. (can be turned off)
+ You can re-display the most recent messages.
- The register window can display floating-point registers.
- Thread support. You can inquire existing threads and switch
among them. (requires GDB and operating system thread support)
- In `one single window' mode (now default), you can disable
specific window parts (e.g. data displays, debugger console,
etc.) through the `Windows' menu.
- The `Preferences' panel has been extended and reworked:
+ Button tips and value tips can be enabled and disabled.
+ Tab width and graph grid size can now be changed at run time.
+ You can choose at run time whether command buttons should
be placed in the command tool (as in DDD 2.0) or in the
source window (as in DDD 1.x).
+ You can reset the DDD preferences to the least recently saved
settings.
- Some items have been renamed for clarity:
+ The `Stack' menu is now named `Status', as it hosts other
status-related items besides backtrace and registers.
+ The `Break' button is now named `Interrupt' (as in DDD 1.x),
to avoid confusion with the `Break At' button.
+ The `Quit' menu item is now named `Abort', to avoid confusion
with the `Exit' menu item (which issues a `quit' command).
- Some key bindings have been re-assigned. Generally, `Ctrl'
invokes debugger or editing commands, and `Alt' changes debugger
settings. Hence, Ctrl+M invokes `make' and Ctrl+Q invokes
`quit', while Alt+M enables or disables the machine code window.
`Run' is now on Ctrl+X (for eXecute).
- DBX settings can now be viewed and changed at run time, using
the `Settings' panel.
- In GDB, there is a `status displays' panel for displaying
various things about the program being debugged.
- Reading the VSL library is now realized as a background job,
reducing startup time drastically.
- In the data window, the middle mouse button now toggles
the display selection instead of simply extending it.
- The most important data window operations can now also be
invoked via the debugger console. For instance, the command
`graph display *next at (50, 50) dependent on 1' creates a new
dependent display at (50, 50). In the long term, this feature
will be used to save and restore display state.
- In the debugger console, the right mouse button invokes a small
popup menu which you can use to clear the line or the window.
- Ever suffered from a frozen display while debugging a modal
application? If the debugged program is interrupted in some
modal state, DDD will automatically make it ungrab the pointer.
- You can now clear all argument fields `()' by clicking on the
prompt `():'.
- In the source argument field `()', pressing RETURN activates
the `Lookup ()' button.
- `Save Options' saves window sizes for later DDD sessions, as
well as the relative position of the command tool.
- Unnecessary redisplays have been significantly reduced, causing
much less flickering.
- If you specify some overloaded or ambiguous identifier, DDD now
lets you select from all alternatives.
- Buttons not supported on certain debuggers (for instance,
`Finish' on DBX) are now made insensitive. (optional)
- You can now invoke `make' from DDD, reusing old `make' arguments
from the command history if desired.
- There is a new integrated manual browser showing manual pages
and info files for DDD as well as for the inferior debugger.
A simple search facility is also included.
Documentation:
- The PostScript copy of the manual has been enriched with more
than 30 color screen shots showing DDD usage.
- A `sample.dddinit' file is included in the distribution
containing several examples for further customization.
Changes in configuration and building:
- DDD 2.1 uses improved configuration checks from Autoconf 2.12.
- DDD no longer installs in the `gcc' location by default, but in
an existing DDD location; otherwise, in `/usr/local/bin'.
- Improved means of determining builder's e-mail address.
- DDD beta releases and DDD snapshots expire after a few weeks.
Bug fixes:
- Using DBX, comments were stripped from source code under certain
circumstances. Fixed.
- The sash to resize the assembler window is back again.
- With XDB, sources are found in alternate directories, too.
- With DBX, the current source line was omitted from the listing
under certain circumstances. Fixed.
- With Sun DBX, DDD uses the DBX display numbers instead of
generating own numbers.
- `Help on Version' no longer includes the entire DDD
configuration.
- Several single-letter options like `-d DIR' are now properly
passed down to the inferior debugger.
- `Select All' followed by `Delete' no more causes DDD to crash.
- Problems with button specs ending in `...' have been fixed.
- Line continuations (i.e. lines ending in `\') are properly handled.
- Problems in building the `vsl' and `test-graph' programs are fixed.
- On Linux, drag-and-drop of pixmaps has been disabled explicitly.
(Several Linux Motif configurations are broken in this aspect.)
- DDD now sets the WM_COMMAND resource such that X session
managers can save and restore DDD state.
- The data window now uses a command queue for operations on data
displays. No more `The debugger is busy' messages.
- Improved handling of template-generated class names and
optimized-out structs.
- And again, dozens of minor bug fixes and improvements.
Release policy:
- Due to the large amount of testing, we make new DDD releases
only every six months or so. If you found a bug and fixed it
for us or just reported it to us so we could fix it, then this
release scheme may not be good enough for you. Therefore, we
now also have a daily snapshot of our CVS repository. See the
DDD WWW page `http://www.cs.tu-bs.de/softech/ddd/' for details.
What is DDD, anyway?
====================
The Data Display Debugger (DDD) is a common graphical user
interface to GDB, DBX, and XDB, the popular UNIX debuggers.
Besides ``usual'' features such as viewing source texts and
breakpoints, DDD provides a graphical data display, where data
structures are displayed as graphs. A simple mouse click
dereferences pointers or reveals structure contents, updated each
time the program stops. Using DDD, you can reason about your
application by viewing its data, not just by viewing it execute
lines of source code.
Other DDD features include: debugging of programs written in C,
C++, Ada, Fortran, Pascal, Modula-2, or Modula-3; machine-level
debugging; hypertext source navigation and lookup; breakpoint,
backtrace, and history editors; preferences and settings editors;
program execution in terminal emulator window; debugging on remote
host; on-line manual; interactive help on the Motif user
interface; GDB/DBX/XDB command-line interface with full editing,
history, and completion capabilities. DDD has been designed to
compete with well-known commercial debuggers.
Of course, there are also features of DDD you may not like.
First, DDD is quite huge. If you have a simple debugging task on
a system with few resources, DDD may not be the system of choice.
There is a FAQ entry on how to configure DDD for minimal resources
and maximum speed. Second, DDD uses Motif. This is a problem for
free software purists, but will disappear in a few months when
free Motif implementations such as LessTif become generally
usable. For those who lack Motif, we distribute contributed DDD
binaries for all important platforms.
Speaking of platforms: DDD configures, compiles and runs
out-of-the-box on every major UNIX platform, including AIX
(powerpc-ibm-aix3, rs6000-ibm-aix3), FreeBSD
(i386-intel-freebsd1), HP-UX (hppa1.1-hp-hpux9, m68k-hp-hpux9),
IRIX (mips-sgi-irix5), Linux (i[345]86-unknown-linux,
i[345]86-unknown-linuxaout), Alpha OSF (alpha-osf3), Solaris
(i386-sun-solaris2, sparc-sun-solaris2), SunOS (sparc-sun-sunos4),
and ULTRIX (mips-dec-ultrix4).
DDD is free software, protected by the GNU general public license.
It is actively maintained by its authors, Dorothea Luetkehaus and
Andreas Zeller at the Technische Universitaet Braunschweig,
Germany.
What do I need to build DDD?
============================
To build a complete DDD from sources, you need:
* The GNU C++ compiler (GCC/G++), preferably version 2.6.3 or
later, and a matching C++ I/O library (libstdc++ or libg++).
Some other C++ compilers have been reported to compile DDD as
well, such as Sun CC 4.0, AIX xlC and SGI CC. Cfront 3.0
does not compile DDD. Prefer GCC if you can - for example,
DDD has been reported to fail when compiled with SGI CC.
* The X window library (Xlib) and X toolkit library (Xt),
X11R4 or later.
* The Motif Widget library (release 1.1 or later). Best
results are achieved using OSF/Motif 2.0 in conjunction with the
Athena Widget library.
DDD also compiles and runs with LessTif, a free OSF/Motif clone.
As of LessTif 0.75a, the resulting DDD executable is already
quite usable. See the file `PROBLEMS' for a recent list of
problems and fixes.
* Optionally, in addition to the Motif widget library, the
Athena Widget library (release 5 or later). Having the
Athena Widget library is convenient for supporting
two-dimensional scrollbars and the `editres' protocol.
* Lots of virtual memory.
To run DDD, you need an inferior command-line debugger. Best
results are achieved with GDB, the GNU debugger. (GDB 4.x is
required; best results are achieved with GDB 4.13 or later.)
Using GDB, you can debug programs written in C and C++; GNU Ada
(`gnat'), GNU Fortran (`g77') and GNU Modula-2 have been reported
to work as well.
As an alternative to GDB, DDD also supports the DBX debugger as
found on SUN, DEC, AIX, and IRIX systems. Using DBX, you can
debug programs written in C, C++, Pascal, Fortran, and Modula-2.
DDD adapts automatically to a wide range of other DBX variants.
As another alternative, DDD also supports the XDB debugger as
found on HP-UX systems. XDB usage has been tested for C programs
only, but may work for other languages as well.
Where do I get more information?
================================
The DDD WWW page (including screen shots) is installed at
http://www.cs.tu-bs.de/softech/ddd/
A short DDD survey with several screen shots is available at
ftp://ftp.ips.cs.tu-bs.de/pub/local/softech/ddd/ddd-paper.ps.gz
The six-page paper gives a short introduction to the look-and-feel
of DDD and highlights some internal aspects.
The DDD manual is the official, up-to-date DDD reference. It now
includes more than 30 screen shots. Available at
ftp://ftp.ips.cs.tu-bs.de/pub/local/softech/ddd/doc/
The DDD users mailing list,
ddd-users@ips.cs.tu-bs.de
is the right place to contact other DDD users for assistance and
hints. New DDD releases are also announced here. For more
information on this list, and for subscription, send a mail to
ddd-users-request@ips.cs.tu-bs.de
Please send suggestions and bug reports for DDD to
ddd-bugs@ips.cs.tu-bs.de
As the DDD developers are often busy with other projects, don't
expect an immediate personal answer. We try to resolve and fix
all reported bugs as soon as possible.
Getting DDD
===========
DDD is available from a number of FTP sites. Sites are marked as
follows:
(1) Site carries DDD sources (src/), patches (patches/), diffs
(diffs/), snapshots (current/), documentation (doc/), and
various binaries (bin/). Original site: `ftp.ips.cs.tu-bs.de'.
(2) Site carries DDD sources (ddd-2.1.tar.gz) and Linux binaries
(ddd-2.1.bin*). Original site: `sunsite.unc.edu'.
(3) Site carries DDD sources (ddd-2.1.tar.gz). Original
site: `ftp.x.org'.
Please select a site that is geographically close to you.
Africa
------
South Africa
(2) ftp://ftp.sun.ac.za/pub/linux/sunsite/devel/debuggers/ddd/
(2) ftp://ftp.is.co.za/linux/sunsite/devel/debuggers/ddd/
Asia
----
Hong Kong
(3) ftp://ftp.cs.cuhk.hk/pub/Xcontrib/utilities/
(2) ftp://ftp.cs.cuhk.hk/pub/Linux/devel/debuggers/ddd/
(2) ftp://sunsite.ust.hk/pub/Linux/devel/debuggers/ddd/
Japan
(2) ftp://ftp.spin.ad.jp/pub/linux/sunsite.unc.edu/devel/debuggers/ddd/
(3) ftp://ftp.iij.ad.jp/pub/X/contrib/utilities/
Korea
(2) ftp://ftp.nuri.net/pub/Linux/devel/debuggers/ddd/
Malaysia
(2) ftp://ftp.jaring.my/pub/Linux/devel/debuggers/ddd/
Singapore
(2) ftp://ftp.nus.sg/pub/unix/Linux/devel/debuggers/ddd/
Thailand
(2) ftp://ftp.nectec.or.th/pub/mirrors/linux/devel/debuggers/ddd/
Taiwan
(2) ftp://nctuccca.edu.tw/X/contrib/utilities/
Australia
---------
Misc
(3) ftp://archie.au/X11/contrib/utilities/
(2) ftp://ftp.dstc.edu.au/pub/linux/devel/debuggers/ddd/
(2) ftp://sunsite.anu.edu.au/pub/linux/devel/debuggers/ddd/
(2) ftp://ftp.monash.edu.au/pub/linux/devel/debuggers/ddd/
(2) ftp://ftp.sydutech.usyd.edu.au/pub/linux/devel/debuggers/ddd/
Europe
------
Austria
(2) ftp://ftp.univie.ac.at/systems/linux/sunsite/devel/debuggers/ddd/
Czech Republic
(2) ftp://ftp.fi.muni.cz/pub/UNIX/linux/devel/debuggers/ddd/
Denmark
(3) ftp://ftp.denet.dk/pub/X11/contrib/utilities/
Finland
(2) ftp://ftp.funet.fi/pub/Linux/sunsite/devel/debuggers/ddd/
(3) ftp://nic.funet.fi/pub/X11/contrib/utilities/
France
(2) ftp://ftp.univ-angers.fr/pub/Linux/devel/debuggers/ddd/
(2) ftp://ftp.iut-bm.univ-fcomte.fr/devel/debuggers/ddd/
(2) ftp://ftp.ibp.fr/pub/linux/sunsite/devel/debuggers/ddd/
(3) ftp://ftp.ibp.fr/pub/X11/contrib/utilities/
(2) ftp://ftp.loria.fr/pub/linux/sunsite/devel/debuggers/ddd/
Germany
(2) ftp://ftp.dfv.rwth-aachen.de/pub/linux/sunsite/devel/debuggers/ddd/
(2) ftp://ftp.germany.eu.net/pub/os/Linux/Mirror.SunSITE/devel/debuggers/ddd/
(2) ftp://ftp.tu-dresden.de/pub/Linux/sunsite/devel/debuggers/ddd/
(2) ftp://ftp.uni-erlangen.de/pub/Linux/MIRROR.sunsite/devel/debuggers/ddd/
(2) ftp://ftp.gwdg.de/pub/linux/mirrors/sunsite/devel/debuggers/ddd/
(2) ftp://ftp.rz.uni-karlsruhe.de/pub/linux/mirror.sunsite/devel/debuggers/ddd/
(2) ftp://ftp.ba-mannheim.de/pub/linux/mirror.sunsite/devel/debuggers/ddd/
(2) ftp://ftp.uni-paderborn.de/pub/Mirrors/sunsite.unc.edu/devel/debuggers/ddd/
(3) ftp://ftp.uni-paderborn.de/pub/X11/contrib/utilities/
(2) ftp://ftp.uni-rostock.de/Linux/sunsite/devel/debuggers/ddd/
(2) ftp://ftp.rus.uni-stuttgart.de/pub/unix/systems/linux/MIRROR.sunsite/devel/debuggers/ddd/
(2) ftp://ftp.uni-tuebingen.de/pub/linux/Mirror.sunsite/devel/debuggers/ddd/
(2) ftp://ftp.rz.uni-ulm.de/pub/mirrors/linux/sunsite/devel/debuggers/ddd/
(1) ftp://ftp.ips.cs.tu-bs.de/pub/local/softech/ddd/
(1) ftp://ftp.th-darmstadt.de/pub/programming/tools/ddd/
Hungary
(2) ftp://ftp.kfki.hu/pub/linux/devel/debuggers/ddd/
Italy
(2) ftp://linux.italnet.it/pub/Linux/devel/debuggers/ddd/
(2) ftp://ftp.unina.it/pub/linux/sunsite/devel/debuggers/ddd/
(2) ftp://giotto.unipd.it/pub/unix/Linux/devel/debuggers/ddd/
(2) ftp://cnuce-arch.cnr.it/pub/Linux/devel/debuggers/ddd/
(2) ftp://ftp.flashnet.it/mirror2/sunsite.unc.edu/devel/debuggers/ddd/
Netherlands
(2) ftp://ftp.nijenrode.nl/pub/linux/sunsite.unc-mirror/devel/debuggers/ddd/
(2) ftp://ftp.LeidenUniv.nl/pub/linux/sunsite/devel/debuggers/ddd/
(3) ftp://ftp.NL.net/pub/windows/X/contrib/utilities/
Norway
(2) ftp://ftp.nvg.unit.no/pub/linux/sunsite/devel/debuggers/ddd/
Poland
(2) ftp://sunsite.icm.edu.pl/pub/Linux/sunsite.unc.edu/devel/debuggers/ddd/
Spain
(2) ftp://ftp.rediris.es/software/os/linux/sunsite/devel/debuggers/ddd/
(2) ftp://sunsite.rediris.es/software/linux/devel/debuggers/ddd/
(2) ftp://ftp.cs.us.es/pub/Linux/sunsite-mirror/devel/debuggers/ddd/
(2) ftp://ftp.etse.urv.es/pub/mirror/linux/devel/debuggers/ddd/
(2) ftp://ftp.etsimo.uniovi.es/pub/linux/devel/debuggers/ddd/
(2) ftp://ftp.luna.gui.es/pub/linux.new/devel/debuggers/ddd/
Sweden
(3) ftp://ftp.luth.se/pub/X11/contrib/utilities/
(3) ftp://ftp.sunet.se/pub/X11/contrib/utilities/
Switzerland
(2) ftp://ftp.switch.ch/mirror/linux/devel/debuggers/ddd/
(3) ftp://ftp.eunet.ch/archive/software/X/utilities/
Turkey
(2) ftp://ftp.metu.edu.tr/pub/linux/sunsite/devel/debuggers/
United Kingdom
(2) ftp://unix.hensa.ac.uk/mirrors/sunsite/pub/Linux/devel/debuggers/ddd/
(2) ftp://ftp.maths.warwick.ac.uk/mirrors/linux/sunsite.unc-mirror/devel/debuggers/ddd/
(2) ftp://ftp.idiscover.co.uk/pub/Linux/sunsite.unc-mirror/devel/debuggers/ddd/
(2) ftp://sunsite.doc.ic.ac.uk/packages/linux/sunsite.unc-mirror/devel/debuggers/ddd/
(2) ftp://ftp.dungeon.com/pub/linux/sunsite-mirror/devel/debuggers/ddd/
(1) ftp://ftp.gre.ac.uk/pub/tools/debuggers/ddd/
(3) ftp://src.doc.ic.ac.uk/packages/X11-contrib/utilities/
North America
-------------
Canada
(2) ftp://ftp.io.org/pub/mirrors/linux/sunsite/devel/debuggers/ddd/
Atlanta, GA
(2) ftp://ftp.cc.gatech.edu/pub/linux/devel/debuggers/
Chapel Hill, NC
(2) ftp://sunsite.unc.edu/pub/Linux/devel/debuggers/ddd/
Concord, CA
(2) ftp://ftp.cdrom.com/pub/linux/sunsite/devel/debuggers/ddd/
Dallas, TX
(2) ftp://ftp.siriuscc.com/pub/Linux/Sunsite/devel/debuggers/
Fayetteville, AR
(2) ftp://ftp.engr.uark.edu/pub/linux/sunsite/devel/debuggers/ddd/
Flagstaff, AZ
(2) ftp://ftp.infomagic.com/pub/mirrors/linux/sunsite/devel/debuggers/ddd/
Laurel, MD
(2) ftp://ftp.linux.org/pub/mirrors/sunsite/devel/debuggers/ddd/
Minneapolis, MN
(2) ftp://ftp.cs.umn.edu/pub/Linux/sunsite/devel/debuggers/ddd/
Norman, OK
(2) ftp://ftp.uoknor.edu/linux/sunsite/devel/debuggers/ddd/
Pasadena, CA
(2) ftp://ftp.fuller.edu/mirror/sunsite/devel/debuggers/ddd/
Raleigh, NC
(2) ftp://ftp.redhat.com/pub/mirrors/sunsite.unc.edu/devel/debuggers/ddd/
Rochester, NY
(2) ftp://ftp.rge.com/pub/systems/linux/sunsite/devel/debuggers/ddd/
Salt Lake City, UT
(2) ftp://ftp.pht.com/mirrors/linux/sunsite/devel/debuggers/ddd/
San Jose, CA
(2) ftp://ftp.yggdrasil.com/mirrors/sunsite/devel/debuggers/ddd/
Sunnyvale, CA
(2) ftp://ftp.drcdrom.com/pub/linux/sunsite/devel/debuggers/ddd/
Waukesha, WI
(2) ftp://ftp.wit.com/unix/linux/devel/debuggers/ddd/
Urbana, IL
(2) ftp://uiarchive.cso.uiuc.edu/pub/systems/linux/sunsite/devel/debuggers/ddd/
(1) ftp://uiarchive.cso.uiuc.edu/pub/packages/ddd/
Misc
(3) ftp://ftp.crl.research.digital.com/pub/X11/contrib/utilities/
(3) ftp://ftp.x.org/contrib/utilities/
(3) ftp://ftp.cs.columbia.edu/archives/X11/contrib/utilities/
(3) ftp://ftp.uu.net/systems/window-sys/X/contrib/utilities/
(1) ftp://richb-pc.acc.qc.edu/pub/ddd/
South America
-------------
Brazil
(2) ftp://ftp.fee.unicamp.br/pub/Linux/mirrors/sunsite.unc.edu/devel/debuggers/ddd/
(2) ftp://ftp.iis.com.br/pub/Linux/devel/debuggers/ddd/
(2) ftp://linux.if.usp.br/pub/mirror/sunsite.unc.edu/pub/Linux/devel/debuggers/ddd/
(2) ftp://farofa.ime.usp.br/pub/linux/devel/debuggers/ddd/
Have fun with DDD!
--
Andreas Zeller Technische Universitaet Braunschweig (Germany)
DDD Maintainer ddd@ips.cs.tu-bs.de http://www.cs.tu-bs.de/softech/ddd/
Technical Details
Message-ID:
<33770A2D.41C67EA6@ips.cs.tu-bs.de>Path:
arc1-ca.pugleaf.net!unknown!not-for-mailShow Full Headers
Complete Article Headers
X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 109f73,ad81852e77acc289,start X-Google-Attributes: gid109f73,public X-Google-Thread: fc89c,ad81852e77acc289,start X-Google-Attributes: gidfc89c,public X-Google-Thread: 1025b4,ad81852e77acc289,start X-Google-Attributes: gid1025b4,public From: Andreas Zeller <zeller@ips.cs.tu-bs.de> Subject: The Data Display Debugger (DDD) 2.1 is available Date: 1997/05/12 Message-ID: <33770A2D.41C67EA6@ips.cs.tu-bs.de> X-Deja-AN: 241061366 Distribution: world Organization: Technische Universitaet Braunschweig, Germany Newsgroups: comp.unix.programmer,gnu.misc.discuss,gnu.utils.help