DDD 2.1 is available					-*- text -*-
====================

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


Where do I get DDD sources?
===========================

    The DDD source package `ddd-2.1.tar.gz' will soon be at these FTP
    sites as well.  Please try them before `ftp.ips.cs.tu-bs.de' since
    ftp.ips has a slow network connection.


North America
-------------

    ftp://ftp.crl.research.digital.com/pub/X11/contrib/utilities/
    ftp://ftp.x.org/contrib/utilities/
    ftp://ftp.cs.columbia.edu/archives/X11/contrib/utilities/
    ftp://ftp.uu.net/systems/window-sys/X/contrib/utilities/


Europe
------

    ftp://ftp.denet.dk/pub/X11/contrib/utilities/
    ftp://nic.funet.fi/pub/X11/contrib/utilities/
    ftp://ftp.ibp.fr/pub/X11/contrib/utilities/
    ftp://ftp.uni-paderborn.de/pub/X11/contrib/utilities/
    ftp://ftp.luth.se/pub/X11/contrib/utilities/
    ftp://ftp.sunet.se/pub/X11/contrib/utilities/
    ftp://ftp.eunet.ch/archive/software/X/utilities/
    ftp://ftp.NL.net/pub/windows/X/contrib/utilities/
    ftp://src.doc.ic.ac.uk/packages/X11-contrib/utilities/


East Asia
---------

    ftp://ftp.cs.cuhk.hk/pub/Xcontrib/utilities/
    ftp://ftp.iij.ad.jp/pub/X/contrib/utilities/
    ftp://nctuccca.edu.tw/X/contrib/utilities/


Australia
---------

    ftp://archie.au/X11/contrib/utilities/



Where do I get DDD binaries?
============================

    Besides DDD source packages, the sites listed here also carry DDD
    binaries and patches as well as formatted DDD documentation and
    DDD-related papers.

    DDD pre-compiled binaries have been contributed for a variety of
    architectures.  This may be useful for people who lack GCC or
    Motif.  However, compiling DDD on your machine is strongly
    preferred.  Use binaries as a last resort only.

    The `bin/README' file contains a list of available binaries.
    Additional contributions are very welcome.


North America
-------------

    ftp://uiarchive.cso.uiuc.edu/pub/packages/ddd/
    ftp://richb-pc.acc.qc.edu/pub/ddd/


Europe
------

    ftp://ftp.ips.cs.tu-bs.de/pub/local/softech/ddd/
    ftp://ftp.th-darmstadt.de/pub/programming/tools/ddd/
    ftp://ftp.gre.ac.uk/pub/tools/debuggers/ddd/


Have fun with DDD!
--
Andreas Zeller (ddd@ips.cs.tu-bs.de)
Technische Universitaet Braunschweig, Germany
