Old DDD News (up to 3.1.7) -*- text -*- ************************** DDD 3.1.7 ========= DDD 3.1.7 fixes a number of minor bugs. - Auto-raised menus work much better (enabled by default). - The `floating' command tool now correctly follows movements of the main window under KDE and other window managers. - The register window is updated when the current frame changes. - Value tips of strings containing ` = ' are displayed correctly. - In file names, `//' is no longer normalized to `/'. This is useful for special file systems, where '//c/foo' is an alias for `c:\foo`. - Improved session management: `checkpoint sessions' not needed for shutdown (as initiated by GNOME) are automatically deleted after exiting DDD. - Improved auto-command recognition (includes saving displays across sessions) - Click-to-select in the source window works with the CDE window manager. - [DBX] The array syntax `graph display [A..B]' works again for DBX. - [DBX] Redirection to the execution window with Sun DBX 4.0 no longer clutters program arguments. - [Perl] Selecting identifiers that represent large data structures no longer blocks DDD. - [JDB] Thread names with dashes are handled correctly. - [HP-UX] Renaming the `~/.ddd/init' file during saving options works. - [Build] New `libiberty' and `configure' packages from GDB 4.18. - [Build] If supported, `-isystem' is used for including system headers. - [Build] If supported and required, `-fpermissive' is used for old X headers. There are no new features in DDD 3.1.7. You don't need to upgrade unless you suffer from one of these problems. DDD 3.1.6 ========= DDD 3.1.6 brings support for recent tools and components. - DDD passes all options after `--' to the inferior debugger. - [Build] DDD supports EGCS 1.1.2 as well as GCC 2.95 and later - [Build] DDD supports LessTif 0.88.9 and later. There are no new features in DDD 3.1.6. You don't need to upgrade unless you suffer from one of these problems. DDD 3.1.5 ========= DDD 3.1.5 brings support for recent tools and components. - [Linux] DDD supports TTYs on Linux with GNU libc 2.1. - [Solaris] DDD supports Motif 2.1 on Sun Solaris 7. - [XEmacs] DDD supports gud-mode in XEmacs 21.0. - [Build] DDD supports Bison 1.27 and Automake 1.4a. There are no new features in DDD 3.1.5. You don't need to upgrade unless you use one of the listed tools and/or components. DDD 3.1.4 ========= DDD 3.1.4 brings improved LessTif support and fixes more minor problems in DDD 3.1. - Changing the GDB display radix automatically refreshes displayed values. - Searching Java classes visits each file exactly once. - [LessTif] LessTif 0.88 is supported. See `PROBLEMS' for a discussion. - [LessTif] Worked around X error when scrolling breakpoint glyphs. - [Linux] Improved GNU libc 2.1 support (TTYs). - [HP-UX] Improved aCC support. - [Solaris] Improved Motif 2.1 support (Pixmaps). There are no new features in DDD 3.1.4. You don't need to upgrade unless you suffer from one of these problems. DDD 3.1.3 ========= DDD 3.1.3 fixes more minor bugs in DDD 3.1. - Invoking DDD with a non-existing file name works. - Displays disabled by GDB are created and refreshed properly. - [HP-UX, SGI] Perl no longer exits upon start-up. - [LessTif] Worked around a LessTif bug that made DDD insensitive to input. - [Build] New configuration files from Autoconf 2.13. There are no new features in DDD 3.1.3. You don't need to upgrade unless you suffer from one of these bugs. DDD 3.1.2 ========= DDD 3.1.2 fixes more minor bugs in DDD 3.1, most of them related to Perl: - Show/Hide works properly with deeply nested substructures. - Struct members whose name starts with 'END' are properly handled. - Starting DDD with `no command tool' set in `~/.ddd/init' works. - Console input after `print FUNCTION()' is passed to FUNCTION. - [Perl] Arguments of `Program->Run' are processed correctly. - [Perl] You can redirect I/O in arguments of `Program->Run'. - [Perl] The separate execution window can now be used with Perl. - [Perl] DDD handles class prefixes when displaying variables. - [Perl] The backtrace window is updated after each command. - [Perl] The `Convert to Hex' and `Convert to Oct' conversions work. - [Perl] Refreshing the graph via `Data->Refresh Graph' works. - [Perl] Changing, saving and restoring various Perl settings works. - [Java] DDD uses $CLASSPATH to lookup Java classes on start-up. - [DBX] DDD supports execution positions as reported by AIX DBX. - [DBX] The registers window is updated after each command. - [Build] The splash screen works with C++ compilers other than GCC. There are no new features in DDD 3.1.2. You don't need to upgrade unless you use Perl or suffer from one of these bugs. DDD 3.1.1 ========= DDD 3.1.1 fixes a number of minor bugs in DDD 3.1: - Empty status displays are handled properly. - Using a remote GDB, only one execution window is launched. - [DBX] DDD handles incomplete DBX output, such as prompts of the debugged program. See the new `positionTimeout' and `displayTimeout' resources. - [DBX] Using DBX and the execution window, `Program->Run Again' and the `Run' command tool button no longer clear all arguments. - [Perl] DDD handles multiple breakpoints with Perl 5.005 and later. - [Java] DDD no longer hangs searching for a Java class. - [Build] EGCS 1.1 on Linux properly compiles DDD. - [Build] ostrstream::pcount() is no longer considered `broken' when using `gcc' (instead of `c++' or `g++') as C++ compiler. There are no new features in DDD 3.1.1. Unless you suffer from one of the bugs listed above, feel free to upgrade at some later time. DDD 3.1 ======= DDD 3.1 brings Perl support, Python support, data plotting, Undo/Redo, and advanced data exploration. Debuggers and Languages ----------------------- - Perl support. DDD supports debugging Perl programs, using the Perl debugger. Requires Perl 5.003 or later. - Python support. DDD supports debugging Python programs, using the PYDB command-line debugger. See the `pydb' sub-directory for PYDB source and details. Python support was contributed by Richard Wolff . - By default, DDD will automatically select the most appropriate debugger for the given arguments (i.e. Perl for perl files, JDB for Java classes, etc.). - Improved JDB class search. Using JDB, `File->Open Class' no longer searches the class path for .java source files; instead, it searches for `.class' files and returns all classes with accessible `.java' sources. Subdirectories are also searched. - Further improved FORTRAN support. When looking up FORTRAN functions and variables, DDD also tries to append two trailing underscores `__', as generated by g77 on several architectures. Plotting -------- - Array plots. You can plot one- and two-dimensional numeric arrays via the `Plot' button. This gives a totally new meaning to `data display debugger'. Requires Gnuplot 3.5 or later. - History plots. You can plot the history of a numerical variable, i.e. the sequence of previous values. - Plots can be animated, visualizing algorithm effects. Undo/Redo --------- - All commands affecting debugger state (breakpoint settings, displays, debugger settings) can be undone and redone, using `Edit->Undo' and `Edit->Redo' or the shortcuts on the command tool. - Program execution commands can be `undone', too. This means that a previously recorded state (execution position, display values, backtrace, registers) is shown again. Using undo/redo, you can easily determine how some variable changed in the last steps. - `Undo' and `Redo' supersede the old `Back' and `Forward' functions. Data exploration ---------------- - Edge annotations. Edges are now annotated with the relation between the connected displays - i.e. the member name, array index or likewise. - Titles on dependent displays are now disabled by default, as they can be inferred from edge annotations. Saves screen space. - Clusters. You can join several data displays into a cluster display, showing data like local variables. Saves screen space. - When displaying a list of displays A -> B -> C, the offset between items remains constant. - Several improvements in processing data output of the inferior debugger: * Many more data formats are recognized. * Trailing data is no longer ignored. * C++ base classes as reported by AIX DBX are interpreted correctly. * Value changes in status displays are flagged more precisely. * Creating and updating displays uses a common code base. - `Set ()' dialog improvements: * You can now set structs as a whole. * A drop down selection of previously set values is available. * Invalid values cause the dialog to remain open. - Typed aliases. DDD now requires structural equivalence for aliases. This means that two displays are only considered aliases if they are at the same address _and_ have the same type. See the `typedAliases' resource for a discussion. - When DDD creates a new dependent display, it copies the selection state from the originating display. This way, you can easily unfold linked elements simply by clicking `Disp *' again and again. - The `New Display' menu is maintained separately for each debugger type. That is, you can have different menus for GDB, DBX, Perl, etc. There are also suitable defaults for each of these. - Ctrl+Double Click dereferences a pointer `in place' - the original display is replaced by the dereferenced display. - Anonymous unions are no longer prefixed by `='. - `Examine Memory' also works for Solaris DBX. Source exploration ------------------ - Double-clicking on a function call (that is, an identifier followed by a `(' character) will lead you to the function definition. - The GDB `Open Source' dialog has a filter. - You can easily toggle line numbers via the `Source' menu or the `Source' preferences. - Dragging breakpoints works much better with scrolling. - Ctrl+Double Click in the breakpoint area sets a temporary breakpoint. - Ctrl+Double Click on a breakpoint deletes the breakpoint. - Ctrl+Double Click on a variable looks up the variable definition. Printing -------- - Arc edges are printed as such. - Graphs can be printed in color. - You can select a file to print to via a file selection browser. File Access ----------- - The `filterFiles' resource allows you to turn off filtering files when opening executables, core dumps, or sources. This is useful in environments with slow file access. User Interface -------------- - DDD has a new splash screen by Stefan "snowcrash" Stiasny . - Insensitive items have a 3-D `emboss' look, making them more legible. - `Flat' toolbar buttons keep their border after having been activated. - Toolbar buttons appear in color when entered. See the `activeButtonColorKey' resource for details. - Using Motif 2.0, the `Insert' key toggles text insertion mode. - The function keys F2-F9 are bound to frequently used commands: F2 Run F3 Run Again F4 Kill F5 Step Shift+F5 Step Instruction F6 Next Shift+F6 Next Instruction F7 Until F8 Finish F9 Continue Shift+F9 Continue Without Signal The bindings from DDD 3.0 and earlier (Ctrl+E for Run, Ctrl+I for Step, etc.) are still available. - Ctrl+Double Click is bound to some extra functions. See `Source exploration' and `Data exploration', above. - You can configure the Ctrl+C (`Interrupt' vs. `Copy') and Ctrl+A (`Select All' vs. `Beginning of Line') key bindings via Preferences. - You can configure the tool bar to appear at the bottom of the window, as in DDD 2.x and earlier. Settings -------- - You can safely run multiple DDD instances at the same time. * DDD detects when option files have been changed (e.g. by saving options in another DDD instance) and offers reloading option files. * Likewise, when saving options, DDD warns against overwriting option files that have been changed by another DDD instance. * The initial warning about running multiple DDD instances is disabled by default. Use `Edit->Preferences->General->Warn if Multiple DDD Instances are Running' to re-enable it. See also the `checkOptions' and `warnIfLocked' resources. - User-defined commands can accept a symbolic argument. See the `()' toggle button in `Commands->Define Command'. - History customization. You can customize the number of items in pop-down value histories as well as the way they are sorted. See the `popdownHistorySize' and `sortPopdownHistory' resources. - Using `Status->Signals->All Signals', you can modify signal handling for all signals at once. - Signal settings are saved with the current session. - Opening a session restores button definitions, display shortcuts, and tab width. This way, you can manage different configurations for different projects. - DBX breakpoints are saved referring to the function name, if possible. This is useful when working with derived sources. Building DDD ------------ - EGCS 1.1 is supported. - LessTif 0.87 is supported (and recommended). - Cygwin is supported. - On AIX, `configure' prevents linker TOC overflows via the linker flag `-Wl,-bbigtoc' or the compiler flag `-mminimal-toc'. - On SGI, `configure' works around a bug in the CC C++ I/O library that causes `ostrstream::pcount()' to increase by 1 after `ostrstream::str()' has been called. - On Solaris, `configure' adds the CC `-xs' flag to executables, such that they can be debugged by GDB. - `configure' also warns about configurations known to be `risky' - that is, where DDD may not run as expected. Bug fixes --------- - This release brings major performance improvements, especially when processing large chunks of data. In fact, the time complexity of data processing algorithms has been improved from O(n^2) to O(n). - On DBX (except Sun DBX), the `Run' button is now bound to the `rerun' command, re-using program arguments. - Recognition of DBX positions (especially DEC DBX) has again improved. - Value tips for large arrays no longer cause significant delays. - Improved redirection handling. You can redirect stderr away from the execution window, using `run 2> FILE'. The debugger command `run 2> /dev/tty' will redirect stderr to the debugger console. On inferior debuggers without stderr redirection support (such as most DBXes), invoke DDD with `--debugger "dbx 2> FILE"' instead. - Sun DBX warnings like `warning: -r option only recognized for C++' are properly suppressed. - Significant memory leaks in the data window have been plugged. - DDD handles unbuffered echoing TTY modes as set by some DBX flavours. - Promptless input from the debugger console is handled correctly. - The `Disp *' button dereferences pointers as it should. - Using separate DDD windows, data buttons are properly placed. - Several hard-coded limits have been raised, such as the length of GDB commands. - The `Home' and `End' keys work in all text fields. Maintenance ----------- - All remaining German comments in DDD source have been translated into English. - When DDD crashes, all information required for maintenance (such as a stack trace) is automatically included into the DDD log. - The DDD `--maintenance' option enables a top-level `Maintenance' menu with additional options for maintaining DDD. DDD 3.0 ======= DDD 3.0 brings a new, `clean' look, Java support, and JDB support. User Interface -------------- - New, `clean' look. One single tool bar at the top provides all actions. - Low screen space requirements. In the default configuration, DDD requires less than 600x600 pixels. - Configurable fonts. You can easily customize DDD font settings via `Edit->Preferences->Fonts'. - Tear-off menus are supported (and enabled by default). - New key bindings. * All key bindings are conformant with the KDE style guide: Ctrl+O opens a file, Ctrl+S saves the session, etc. * ESC is the canonical `Interrupt' key. Ctrl+C still interrupts, too, but can be assigned to Copy for full KDE style compliance. - Edit->Cut/Copy/Paste/... now apply to the current destination text field (i.e. the one that has the selection, or the least recently used). This way, you can cut/copy/paste across all text fields. - History mania. Several text fields, including the `()' argument field, now have drop down history selections. Debuggers and Languages ----------------------- - JDB support. DDD now also supports JDB as inferior debugger. All important JDB features are available via the GUI. - Java support. Requires GDB 4.17 or later (or JDB, of course). All data display features are available in Java. - Basic Ada support. Rick Flower provided a set of patches for basic GDB/Ada (GNAT) support. - Further improved FORTRAN support. DDD refers to FORTRAN functions and variables by converting them to uppercase with trailing underscore `_', as generated by f77 on several architectures. - GDB 4.17 is supported. - WDB (HP's Wildebeest debugger) is supported. - SGI DBX (especially `DBX Settings') is supported. - DBX on Solaris 2.5 (prompting with `(dbx N)') is supported. Source exploration ------------------ - Breakpoint properties. There is an editor panel to set and change all properties for a breakpoint at once. For details, see `Source->Edit Breakpoints->Properties'. - You can easily set and edit breakpoints by double-clicking on the left of the source. - Breakpoint commands. Using GDB, you can record and edit commands to be executed when a breakpoint is reached. - Conditional breakpoints, temporary breakpoints, and breakpoints with ignore counts now have their special symbols on their own. - Disabling and enabling breakpoints is now supported on all inferior debuggers except JDB. - Regexp Breakpoints. Using GDB, you can set breakpoints at all functions matching a regular expression: * `^Date::' sets a breakpoint on every member of class `Date' * `_fun' sets a breakpoint on every function whose name contains `_fun' See `Break At ()->Set Breakpoints at Regexp ()'. - Value tips and selections work for struct members, too: you can point at `A.B', `A->B', or `A::B' and get the current value. - Entering `list X' at the debugger prompt shows X in the source window. - Using GDB, `File->Open Source' now lists the available source files for the debuggee, rather than scanning the file system for sources. - DDD no longer indents the source code, leaving more horizontal space. See `Edit->Preferences->Source->Source indentation'. - The maximum number of glyphs is now configurable at startup time. See the `maxGlyphs' resource for details. - On popular demand, the command tool has two new buttons: * `until' runs the program until a line greater than the current is reached or the current stack frame is exited. Requires GDB. * `make' invokes the `make' program. Data exploration ---------------- - Watchpoints. You can have the debugged program stop automatically whenever a particular variable is read or written. - Memory dumps. Using GDB, `Data->Examine Memory' lets you examine memory in any of several formats, independently of your program's data types. - In `stacked window' configuration, the data window automatically pops up as soon as some value is displayed, and it pops down as soon as the last visible display is deleted. - You can easily display variable values in the data window by double-clicking on an occurrence. - The `Undisplay ()' button also deletes all aliases of the selected display. See the `deleteAliasDisplays' resource for details. - Deleting all displays at once requires confirmation from GDB. - Using GDB, VALUEs that are repeated N times are now displayed as `VALUE ', saving space in the data display; see `Edit->GDB Settings->Threshold for repeated print elements'. Setting the `expandRepeatedValues' resource to `on' turns this off. - Displays are persistent across recompilation. This is achieved via `deferred' displays, whose creation is deferred until a particular scope is entered. In the same veine, displays are also persistent across debugging sessions, even if no core dump was included. Program Execution ----------------- - Signal handling. Using GDB, you can control whether signals are passed to your program and whether they interrupt execution. See `Status->Signals' for details. - Frozen X display detection. When detecting a grabbed mouse pointer after reaching a breakpoint, DDD now automatically continues execution, rather than attempting to ungrab the pointer. Help and Assistance ------------------- - Improved help system. In accordance with the Motif style guide, F1 invokes help on the item pointed at; Shift+F1 lets you choose an item. - Tips of the day. Upon startup, DDD gives a hint on DDD usage. Miscellaneous ------------- - User-defined commands. Using GDB, you can record and edit new commands and assign them to buttons; see `Commands->Define Command'. All commands are saved across DDD sessions. - The Reference, License, and News windows now come with a menu bar and a find facility. They can be easily resized. - `File->Open Recent' allows you to re-open the nine most recently debugged programs. - All selection dialogs can be properly resized. - You can have the most important dialogs be realized as non-transient windows, allowing the DDD main window to obscure them. See the `transientDialogs' resource for details. - Moving the wheel of a wheel mouse will scroll the text windows. - Save Options improvements. * DDD saves whether a window is open or closed. * DDD only saves resources that differ from the default setting. * Saving options is also much, much faster. Bug fixes --------- - Data displays are no longer cluttered by Sun DBX 3.0 warnings. - Paned window management has been improved a lot. - DDD works around a Motif 2.1/XFree86 bug that caused glyphs to disappear. See the `cacheGlyphImages' resource for details. (This bug could be fixed thanks to Trond Eivind Glomsrød who donated a copy of Motif 2.1 for Linux) - The `endless scrolling' problem may be prevented by delaying glyph updates. See the `glyphUpdateDelay' resource for details. - DDD no longer terminates the inferior debugger when receiving an EOF on input. See the `terminateOnEOF' resource for details. - The new grab detection mechanism no longer interferes with grabs on Motif popup and pull down menus. - One-letter options like `-b BPS' or `-x FILE' work again. - Trailing CRs in debuggee output are properly handled. - GDB in annotation mode is properly handled. - The data window with Motif scrollbars no longer ignores resizes. - In X11R5 and later, DDD uses the `baseTranslations' resource instead of `translations'. This allows users to provide their own translations without having to copy existing translations. - The DDD splash screen (and all other XPM stuff, too) now also accepts `close' colors. Once more, there are several more minor improvements and bug fixes; see the `ChangeLog' file for details. Changes in configuration and building ------------------------------------- - The DDD `configure' script includes new checks for a sane build environment. - LessTif 0.85 is supported (and a standard test environment of the DDD developers). See `patches/' for useful patches. - GCC 2.8.1 with enabled optimization is supported. - You can configure DDD such that the `Ddd' application defaults file and the DDD manual will not be compiled into the DDD executable, reducing the executable size by about 400k. See the `INSTALL' file for details and drawbacks. Compatibility notes ------------------- - Several key bindings have been re-assigned for compliance with the KDE style guide (`http://www.kde.org/standard-keys.html'). Action Old key New key Rationale ------------ ------------ ------------ ---------- Attach Ctrl+Z -/- Ctrl+Z is Undo in KDE Backward Ctrl+B Left Ctrl+B is now Rev Search Close Alt+W Ctrl+W KDE standard Continue Ctrl+O Ctrl+T Ctrl+O is now Open Delete Word Ctrl+W Ctrl+Backspc Ctrl+W is now Close Detach Shift+Ctrl+Z -/- Ctrl+Z is Undo in KDE Edit Shift+Ctrl+E Shift+Ctrl+V Ctrl+E is now Run Forward Ctrl+F Right Ctrl+F is now Search Interrupt Ctrl+C (*) Esc Ctrl+C is Copy in KDE Open File Alt+O Ctrl+O KDE standard Open Session Shift+Alt+O Ctrl+N KDE standard Page Down Ctrl+V Page Down Ctrl+V is Paste in KDE Print -/- Ctrl+P KDE standard Rev Search Ctrl+R (*) Ctrl+B Ctrl+R is Replace in KDE Run Ctrl+X Ctrl+E Ctrl+X is Cut in KDE Run Again Shift+Ctrl+X Shift+Ctrl+E Ctrl+X is Cut in KDE Save Session -/- Ctrl+S KDE standard Search Ctrl+S Ctrl+F KDE standard Select All Alt+Z Ctrl+A KDE standard Unkill Ctrl+Y (*) Shift+Ctrl+Y Reserved for Redo For smoother transition, keys marked with (*) are still available by default, but may be re-assigned in future DDD releases. For full compliance to the KDE style guide, the Cut/Copy/Paste operations must be assigned to Ctrl+X/Ctrl+C/Ctrl+V. This is done by setting `Edit->Preferences->Startup->Cut/Copy/Paste Bindings' to `KDE style'. See the `Ddd' app-defaults file to change other key bindings. - Some resources had to be renamed for clarity and/or Motif conflicts: Old resource name New resource name Rationale ------------------ -------------------- ---------------- toolBar commandToolBar Ambiguity colorIcons colorWMIcons Ambiguity dataWindow openDataWindow sourceWindow used in Motif sourceWindow openSourceWindow sourceWindow used in Motif debuggerConsole openDebuggerConsole sourceWindow used in Motif traceDialog trace One resource suffices traceShellCommands trace ungrabMousePointer checkGrabs New functionality showStartupLogo splashScreen + Use separate resources splashScreenColorKey Please rename all references to the old DDD resources. - To enable a DDD 2.x style window layout, use Ddd*commonToolBar: off Ddd*toolbarsAtBottom: on in your `~/.ddd/init' file. For a full DDD 2.x look, disable images and captions via `Edit->Preferences->Startup->Toolbar Appareance'. - Source line numbers are now automatically enabled as soon as you set the source indentation amount to 8 characters or more. See `Edit->Preferences->Source->Source indentation'. - Be sure not to leave `Ddd' app-defaults files from previous versions behind. DDD does not require app-defaults files; in fact, we recommend strongly *NOT* to use or install them. Future directions ----------------- - XDB-specific code will no longer be maintained. You should be able to use HP's Wildebeest (WDB) instead, a free GDB port to HP-UX (`http://www.hp.com/lang/tools/Debuggers/WDB/'). Please let us know your experiences with DDD and WDB. - The future default for Cut/Copy/Paste Bindings will be the KDE style: Ctrl+X/Ctrl+C/Ctrl+V. - For further ideas and possible extensions, see the file `TODO'; send your suggestions to `ddd@gnu.org'. DDD 2.2.3 ========= DDD 2.2.3 fixes some problems reported for DDD 2.2.2: - `struct' recognition with DBX now works again. (This one was serious.) - `configure' now checks for correct ISO C++ . - DDD now runs under the `tvtwm' virtual desktop. - DBX Settings now work with Solaris DBX. DDD 2.2.2 ========= DDD 2.2.2 brings improved FORTRAN support, improvements in the data display and fixes some minor bugs introduced in DDD 2.2. User-visible changes to DDD 2.2.1: - Improved FORTRAN support. When debugging FORTRAN programs with GDB, DDD now supports FORTRAN array indexing syntax, FORTRAN pointer recognition, and lookup of FORTRAN functions with trailing underscore `_'. - The data display is now scope-sensitive: displays are automatically hidden as they become inactive (out of scope) and redisplayed as they become active again. This is handy when maintaining a multitude of displays in different scopes. For details, see the `hideInactiveDisplays' resource. - Faster data exploration. Double-clicking... * ...on a pointer value: dereferences it. * ...on a partially hidden value: shows more detail. * ...on a fully shown value: hides it again. - A display resize (due to value changes) now automatically `bumps' adjacent displays such that they are not obscured; see the `bumpDisplays' resource for details. - Case-insensitive search in the source text is now supported; see the `findCaseSensitive' resource for details. Bug fixes: - Getting and identifying core dumps now works on Solaris, AIX and other architectures. - `Edit' no longer causes DDD to crash. - The separate execution TTY now works with Sun DBX 4.0. - Improved XDB support. XDB output no longer causes DDD to hang. - Improved SGI DBX support. File positions are now recognized; DBX Settings work, too. - Various quirks and memory leaks in the interaction between DDD and the inferior debugger have been fixed. Changes in debugging DDD: - The interaction between DDD and the inferior debugger is now logged in `~/.ddd/log'. This is useful for bug reports. - DDD dumps core upon fatal errors (but resumes execution). This is useful for bug reports. Changes in configuration and building: - GCC 2.8.0 is supported. There are also some more minor improvements and bug fixes; see the `ChangeLog' file for details. DDD 2.2.1 ========= DDD 2.2.1 fixes some minor bugs introduced in DDD 2.2. User-visible changes to DDD 2.2: - When saving a session, you can now select the method for getting core files. This is useful on Solaris and SunOS systems. Bug fixes: - Auto-raised menus have caused problems on some architectures: they are now disabled by default. Use `Ddd*autoRaiseMenu: true' in `~/.ddd/init' to re-enable them. - By default, DDD stops disassembling after 1024 bytes. This is useful when working with the machine code of huge functions. See the `maxDisassemble' resource for more info. - Several status and diagnostic messages have been reworked; they now show the outcome of a command. - DDD now works around a bug present in Linux libc 5.4.38 to 5.4.40 that prevented DDD <-> GDB communication. - The `gcore' method for getting core files is now fully supported. - Various glitches in command queue management have been fixed: * Interacting with the debuggee (or interrupting it) now properly discards pending debugger commands. * In `--tty' mode, DDD can now handle long command sequences. This is useful when running DDD from Emacs. * In `--tty' mode, you can now send EOF (^D) characters to the debugged program without having DDD terminate GDB. - Trying to open non-existent source files no longer confuses GDB. - When running in the background, DDD is no longer interrupted by `tty output' signals upon initializing the execution window. - PushButton menus work with LessTif >= 0.82 and with OSF/Motif 1.1. - Command tool decoration has been improved and should now work with all X window managers. Changes in configuration and building: - GNU libiberty and the GNU configure scripts are now up-to-date. - The EGCS C++ compiler is supported (see `http://www.cygnus.com/egcs/'). There are also some more minor improvements and bug fixes. See the `ChangeLog' file for details. DDD 2.2 ======= DDD 2.2 brings persistent sessions, an improved user interface, attaching to running processes, display shortcuts, and more. User-visible changes to DDD 2.1: - Persistent sessions. * You can now save the entire debugger and process state and resume the session later. * Saved state includes process memory and state, inferior debugger settings, breakpoints, and data displays. * X11R6 sessions are supported, too. When used with a session manager, DDD saves and restores its entire state. * Persistent sessions work best with GDB; DBX and XDB are partially supported, too. - Improved user interface. * DDD now requires less width and height. * Source line numbers have been turned off (can be restored); the breakpoint area extends to the first non-blank character. * The `Disable ()' button for disabling displays has gone; displays are now enabled or disabled via `Show ()/Hide ()'. * The `Break at ()' and `Clear at ()' buttons have been merged into one single dynamic button. * The `Windows' menu is now called `View', complying with the Motif style guide. * Options are now grouped according to their functionality. The `Options' menu has gone. Use `Edit' instead. * The `Edit' menu has been completely rewritten, allowing for better clipboard operations. For instance, you can now copy selected displays to the clipboard and paste them later. * Several buttons provide new pulldown menus with useful functions. - Improved command tool. * The command tool is always auto-raised, i.e. placed on top of the DDD windows. * The command tool always comes with window manager decorations, such that you can easily move it around. * The command tool sticks to the DDD source window: if you move the DDD source window around, the command tool follows. - Display shortcuts. Once you have changed `p' to `(char *) p' manually, DDD provides a menu shortcut for converting arbitrary values to `(char *)'. - Button editor. User-defined buttons can now be defined, changed, and deleted at run-time. - Support for debugging processes running outside of DDD. You can attach to a running process, examine it, and resume execution. - Helper customization. You can now interactively select and customize the applications to be used for the execution window, for editing source code, for browsing the DDD WWW page, etc. - Improved online manuals. * Multiple manual browsers are supported. * Manual browsers are realized as top-level windows. * DDD no longer blocks while the manual is uncompressed and formatted. * DDD stores manuals in `gzip' format, saving space in executables. - New `What Now?' help. Gives a hint on what you can do next, depending on the current DDD state. Useful for beginners. - Improved data display. * Displayed data is highlighted whenever it changes. * Two-dimensional arrays are now laid out as tables. * Numerical values are now aligned to the right. * You can now incrementally `Show More' details of an object, instead of showing all details at once. * Processing displays can be interrupted by typing Ctrl+C. - Drag and drop support. * You can now alter the current execution position interactively by dragging and dropping the execution arrow. This allows you to back up - perhaps with more breakpoints set-over a portion of a program that has already executed, in order to examine its execution in more detail. * Breakpoints can be dragged and dropped, too. This allows you to move breakpoints to alternate positions, without changing their properties. - Improved display of breakpoints and execution positions. * The current execution position is now properly cleared if undetermined (no source, program terminated, etc.) * If the program stopped due to a signal, this is indicated by a lightning symbol within the current execution glyph. * Faster scrolling. While scrolling source or machine code at high speed, glyphs are now unmapped. Slow scrolling still shows glyphs. - Improved DBX and XDB support. * DDD supports DBX and XDB breakpoint conditions. * With SUN DBX 3.x, DDD also supports disabled breakpoints and ignore counts. - User-defined DDD commands. DDD now provides a simple facility that allows the inferior debugger to execute DDD commands. For details, see `User-Defined Commands' in the DDD manual. - For `Continue Until Here', DDD now sets a temporary breakpoint and continues (instead of using the GDB `until' command). If the temporary breakpoint is not reached, it is deleted. - When restarting DDD, all settings (data displays, execution position, etc.) are preserved. - When DDD becomes ready after a user command, it automatically uniconifies itself. Hence, you can iconify DDD while it runs a program; DDD pops up again as soon as a breakpoint is hit. - Characters typed into the data and source windows are now forwarded to the debugger console. - Resource files have been renamed. All files are now located under `~/.ddd/'. The file `~/.dddinit' has been replaced by `~/.ddd/init'; `~/.ddd_history' is now `~/.ddd/history'. The new directory `~/.ddd/sessions/' contains saved DDD sessions. - Your window manager should now show multi-color DDD icons. (requires XPM; can be disabled) - During start-up, DDD shows a multi-color logo in a transient window. (requires XPM; can be disabled) - DDD now typically requires 35% less memory. This was achieved by compiling and optimizing DDD regular expressions at compile time, rather than generating them at run time. Supported platforms and configurations: - Support for Linux with GNU libc 5.4.38 and later included. - Support for XDB on HP-UX 10.x included. Thanks to Robert Wiegand . - Support for SUN DBX 3.2 included. Bug fixes: - DDD no longer hangs while receiving large chunks of data. - DDD now also works with echoing TTY connections. - Significant speed-ups in processing debugger and program output. - Several memory leaks and X resource leaks have been tightened. - DDD no longer requires the librx library. Consequently, librx errors can no more cause DDD to crash. - A serious bug that caused timers to be inadvertently removed has been fixed. Bug effects included loss of console cursor, loss of data display contents, and loss of scrolling capabilities. - DDD now handles GDB `' output correctly. - And again, hundreds of minor improvements and bug fixes. See the ChangeLog for details. DDD 2.1.1 --------- DDD 2.1.1 includes some hacks that make DDD run with LessTif, a free Motif clone, without loss of functionality. DDD now no more depends on proprietary software like OSF/Motif. Apart from these hacks, functionality is unchanged with respect to DDD 2.1 (no new features, no bug fixes). If you have DDD 2.1 up and running, there is no need to upgrade to DDD 2.1.1. As of this release, DDD is included in GNU CD-ROMs by the Free Software Foundation (aka the GNU people). DDD distributions are now numbered according to the GNU Maintenance Instructions. DDD 2.1 ------- 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.gnu.org/software/ddd/' for details. DDD 2.0 ------- DDD 2.0 brings XDB support, extended DBX support, an improved user interface as well as several new features and bug fixes. User-visible changes to DDD 1.4: - New command tool. All command buttons that do not take arguments are now located in the command tool, a small separate window. The command tool can be moved wherever appropriate, leaving more space for window contents. - User-defined buttons are now available. These can also be used to re-install the old command buttons. - Colored displays. You can specify individual colors for pointers, arrays, structs, and so on. - Variable values can now be altered interactively during program execution. - You can inquire the types of variables and functions (`whatis') through the source popup menu. - Selecting a data display item now also sets the `()' argument field in the source window, making it available for further commands. - `New display' subsumes `Dependent display': if a display is selected, the new display is made dependent on it. - `Show Detail' expands the entire selected value, including all contained sub-structures. - Option editors. New panels for DDD preferences and GDB settings. GDB settings can be saved across DDD sessions. - Some items have been renamed for further clarity: * The `command window' is now named `debugger console', to avoid confusion with the command tool. * The `Interrupt' button is now named `Break', to associate the concept with `Breakpoints'. * The `Break ()' and `Clear ()' buttons are now named `Break at ()' and `Clear at ()', respectively. * The `Dereference' button is now named `Display *'. - DDD now supports GDB-like incremental search in the command history. It is invoked through Ctrl+R and Ctrl+S in the debugger console. - Incremental search required some changes in keyboard shortcuts. `Run' is now Ctrl+Z, `Step' is Ctrl+I, and `Next' is Ctrl+J. - The `Save Options on Exit' function has been removed, as it also saved options given upon DDD invocation like `--dbx' or `--exec-window'. Options must now always be saved explicitly. - You can press Ctrl+\ to interrupt programs using a QUIT signal. - Ctrl+C and Ctrl+\ now have the highest priority of all events. - Improved remote debugging. In contrast to `--host', the new `--rhost' option uses `rsh' without arguments (aka `rlogin') to access the remote debugger. DEC and SGI DBX require this. - The DDD License can now be viewed from within DDD. - DDD resources and actions are now fully documented; the DDD manual contains several customization examples (fonts, colors, buttons). Supported debuggers and languages: - XDB support. On popular request, DDD now also supports HP's XDB as inferior debugger. - Extended DBX support. DDD determines DBX properties at run-time and adapts automatically to a wide range of DBX variants. - Even more DBX support. DDD now supports DBX on SUN, DEC, AIX, and IRIX systems. - Language support. DDD uses Pascal-style dereferencing (X^ instead of *X) if the current frame was written in Pascal, Ada, or Modula. (GDB only) - Modula-3 support. DDD supports `m3gdb', a GDB extension for Modula-3. Thanks to Peter Klein . Changes in configuration and building: - New top-level `configure' script. DDD now uses an `autoconf'- generated top-level `configure' script instead of Cygnus `configure'. Among other advantages, configuration options are now properly passed down to subdirectory configuration. - Regular expressions now use the POSIX.2 standard regcomp/regexec interface. The slower interface is compensated by smarter calls. - DDD configuration now generally attempts to link with native system libraries wherever possible. GNU termcap and librx are used only if the system does not provide them. This results in smaller and (hopefully) safer DDD executables. - DDD configuration tests whether your C++ compiler can compile a `hello, world' program. It is amazing how many misconfigured C++ compilers exist in the world. - You can specify `--without-athena' to avoid searching for and linking with Athena libraries. - Patches for AIX xlC, Sun CC, GCC 2.8.0 and probably other C++ compilers included. Thanks to Jacek Holeczek and Jason Merrill . - DDD now compiles and runs unchanged with LessTif, a free Motif clone under construction. Note that `runs' is relative: As of LessTif 0.50, DDD is still far from being usable. This will change as LessTif evolves. Bug fixes: - Improved directory support. Sources and executables can reside in several different directories. With DBX and XDB, DDD optionally uses full file paths when referring to source positions. - Several TTY problems fixed. Switching between execution window and debugger console should work fine now; the execution window can be opened, closed and re-opened without DDD crashing or hanging. - The terminal type (TERM environment variable) of the debugger console and the execution window is now properly set. - Editor problems fixed. Invoking a source editor via `Edit' should work fine now. - The rubber band outline no more clutters the data display. (This was a GCC optimization bug.) - No more endless scrolling when glyphs are enabled. Scrolling is slightly faster, too. - On HP-UX, the `@' character is no more discarded from GDB input. - On Solaris 2.x, annoying DBX warnings like `dbx: -r option only recognized for C++' are silently ignored. - You can now specify the location of own VSL libraries via the `vslPath' resource. - Improved diagnostics (file names and line numbers) for VSL errors. - The `--attach' and `--separate' options are no more overridden by the settings in `~/.dddinit'. - The `-synchronous' option (for X debugging) now works; `--synchronous-debugger' has been renamed to `--sync-debugger'. - The source window no more scrolls back to some previous position when adding or removing breakpoints. - Pagers (`more', `less', etc.) invoked by the inferior debugger are properly handled. (When seeing `--More--', DDD hits the space key.) - And, of course, hundreds of minor bug fixes and improvements. Release policy: - Before every new feature release (like this one), we shall make beta releases publicly available. They are named like the major release, but have `beta' and a number appended. For instance, this release was preceded by `ddd-2.0beta1', `ddd-2.0beta2', and so on. Beta releases will be announced in DDD mailing lists only. DDD 1.4d -------- Bug fix release; fixes problems introduced in DDD 1.4c. Changes to DDD 1.4c: - Several people have reported problems accessing the fonts specified in DDD 1.4c. We have thus now re-enabled the scheme from DDD 1.4b; how to change fonts is explained in the DDD FAQ. - Various fixes for C++ compilers other than GCC included (notably Sun CC 4.0 on Solaris 2.x) - The VSL interpreter can now be controlled upon DDD invocation; type `ddd --vsl-help' for a list of options. This is intended for debugging forthcoming display customization. This release should configure, compile and run out-of-the-box on OSF systems. Please let us know about any remaining problems. DDD 1.4c -------- Bug fix release. No user-visible changes. Changes to DDD 1.4b: - Major restructuring of `ddd.C', the DDD main program; compilation should now require slightly more time, but much less memory. Due to the large number of new files, diffs to earlier versions are somewhat larger than usual. - Font sizes are now resolution-independent, resulting in larger font sizes on high-resolution displays. - The built-in manual page is now compressed, resulting in slightly smaller executables. - Improved DBX 3.x support. Thanks to Grant McDorman . - Improved DEC Alpha/OSF support. Thanks to Phil Brooks . - Several minor and two major bugs were found and fixed. DDD 1.4b -------- Bug fix release. Changes to DDD 1.4a: - Much faster start-up, due to delayed parsing of the VSL library. - Custom paper size support for printing graphs. - Paper size and printing command is saved with options. - On some X11 configurations, DDD was caught in a busy loop upon invocation. Now fixed. - On some Linux configurations, DDD crashed immediately upon invocation. Now fixed. - Manual update of data display (`graph refresh') improved. - `set' and `assign' commands automatically update the data display. - New releases of top-level `configure' and `libiberty' included. - Building DDD creates executable with canonical name. DDD 1.4a -------- Bug fix release. No user-visible changes. - Compilation trouble with older GCC versions as well as older C++ compilers fixed. - Compilation in separate directory fixed. - For older GDB versions, one may use `display /x $pc' and `print /x $pc' to get the current PC value. - Minor bugs in construction and installation fixed. DDD 1.4 ------- DDD 1.4 realizes the top ten suggestions of DDD users. It brings the long awaited machine code support, new breakpoint and execution symbols, improved DBX support, enhanced integration facilities and many small features and improvements. Changes to DDD 1.3: - Full machine code support: Assembler and register windows, Breakpoints in machine code, no-source debugging, stepping over instructions. (GDB only) - Breakpoints and the current execution position are displayed as stop signs and arrow symbols (``glyphs'') instead of text. Our students find that cute; the old mode is still available. - New argument editor: Upon program start, select from a list of previously used program arguments. - Using the new `--tty' option, DDD can be easily integrated with other GDB/DBX front-ends. For instance, you can have DDD run as an inferior debugger from your Emacs GDB-mode, having all Emacs and DDD facilities at your disposition. - Improved C++ support with DBX 3.x. Thanks to Grant McDorman . - Displays with format expressions (`/x') are properly dereferenced. - Improved position history mechanism. - Automatic reloading of source files when the debugged program has changed; explicit reload is no longer required. - File selection dialogs are synchronized: changing the directory in one dialog also changes the directory in all others. - Interactive dialogs for disambiguating C++ names. - Several major and minor bugs have been fixed. Special thanks to Grant McDorman . - DDD incorporates the name of its builder in `Help/Show Version'. - No more `Help on Debugging' item. Sigh. DDD 1.3e -------- Bug fix release. - Some compilation trouble with older GCC versions as well as older C++ compilers fixed; thanks to Albert Chin-A-Young . - Some configuration trouble with non-GCC compilers and Motif 2.0 fixed; thanks to Larry Schwimmer . GNU Autoconf 2.7 is now used. - Functionality is unchanged; executables are identical. DDD 1.3d -------- Bug fix release. - Anonymous unions and bitfields are now processed correctly. - `Continue Until Here' (was `Set Temporary and Continue') now also stops if current stack frame is left (GDB only) - More patches for Linux ELF incorporated. Thanks to lee@tcs.com (Lee Hounshell) and jdassen@wi.leidenuniv.nl (J.H.M. Dassen) - Non-textual source files (binary characters, no newline at end) are now processed correctly. - Basic support for DEC's dbx included. DDD 1.3c -------- Bug fix release. - Patches for GCC 2.7.1 incorporated. - Patches for recent Linux boxes (using ELF format) incorporated. Thanks to lee@champion.tcs.co.jp (Lee Hounshell). - Patches for DEC Alpha OSF/1 incorporated; see the `PROBLEMS' file for special building instructions. Thanks to tuppa@iue.tuwien.ac.at (Walter Tuppa) - Configuration scripts reworked for GNU autoconf 2.6; various configuration bugs have been fixed. - New shortcuts in source popup menus: * The breakpoint popup menu allows you to set a temporary breakpoint and continue immediately. Suggested by Chris Sterritt * The source popup menu allows you to print or display dereferenced names (`print *' and `display *'). Suggested by Walter Tuppa - All DDD source code (except `ddd.C') now comes under the GNU general public *library* license. This means that the following is now allowed under certain circumstances: * Proprietary DDD extensions without supplying source code, and * Incorporating DDD code in proprietary applications See the `COPYING.LIB' file for details. DDD 1.3b -------- Bug fix release. - More minor troubles with GCC 2.7.0 on certain architectures fixed. - DDD can now be interrupted using the SIGINT signal. - In the breakpoint editor, you can now set multiple breakpoint conditions and ignore counts at a time. - The DDD WWW page has moved to `http://www.gnu.org/software/ddd/'. DDD 1.3a -------- Bug fix release. - Minor troubles with GCC 2.7.0 on certain architectures fixed. - New help item: DDD WWW Page. DDD 1.3 ------- This release compiles using GCC 2.7; some new features have been added and several minor bugs fixed. Some bugs remain; see the `BUGS' file for details. Changes to DDD 1.2: - You can now edit the current source via an external editor. - Display placement has been improved; new displays are now created in the current visible view, if possible. - The current execution position now stays near the middle of the visible source code. Following statements remain visible. - Diagnostics of printing commands no longer get lost. - Upon fatal errors, DDD tries to resume execution by returning to the main event loop. This leaves you a chance for exiting the debugged program properly. - New `Help on Debugging' item. Written by David A. Lyons . - Colours slightly reworked: text background is a little brighter. - A short DDD survey, including lots of screen shots, is included in `doc/ddd-paper.ps'. The paper also highlights some internal aspects of DDD. - DDD source code has been adapted to the current ANSI/ISO C++ draft standard. Any GCC release from 2.3.3 onwards, including the recent GCC 2.7.0, should now compile DDD (unjustified commpiler warnings in GCC 2.5 or lower, though). - DBX support on Solaris improved. Thanks to grant@isgtec.com (Grant McDorman) - Patches for FreeBSD incorporated. Thanks to smcarey@mailbox.syr.edu (Shawn M. Carey). - DDD-specific application defaults now override user application defaults. Thanks to ksfdo0@ksepl.shell.nl (Fred Donck). - New GNU librx 0.07.2 library included (from libg++-2.7.0), should be faster and more reliable. Thanks to all who sent in bug reports and suggestions. DDD now runs on every major UNIX flavour (with the exception of OSF/1 - any volunteers for that task?). DDD 1.2 ------- Again, a bug fix release. Many minor bugs have been fixed; see the `ChangeLog' file for details. Changes to DDD 1.1: - DDD source code should now be ANSI/ISO C++ conformant - all code specific to GCC or libg++ has been adapted. DDD now also compiles using other C++ compilers than GCC (Sun's CC 4.0 works fine; AT&T Cfront 3.0 has trouble with some inline functions). - DDD should now run correctly on SGI/IRIX machines. - Interrupting processes via the Interrupt button now works correctly on Solaris, HP-UX, and other systems. - Improved support for GDB artificial arrays. - The GDB command window has improved control character support. Tabs, Carriage returns, Backspaces and so on are processed correctly. Unprintable characters are also handled. - There is an option to suppress X warnings. This may be useful for people annoyed by tons of Motif Keysym warnings. - We have started to compile a FAQ list to reduce our daily mail load. See the file `FAQ' for details. Thanks to all who sent in bug reports and suggestions. As building DDD is still a major challenge for some users, we encourage everyone to share her/his binaries with others. See the file ftp.ips.cs.tu-bs.de:/pub/local/softech/ddd/bin/README for details. DDD 1.1 ------- Never trust a ``dot-oh'' release - DDD 1.0 had a serious bug that caused DDD to crash upon various occasions, often after a few interactions. Under certain circumstances and on many architectures, the hourglass cursor routines could corrupt the stack at a random point and thus throw a time bomb into DDD, making DDD fail at unpredictable (and unrepeatable) places. This bug has been fixed; some other minor bugs were fixed, too. See the `ChangeLog' file for details. Changes to DDD 1.0: - C++ References and VTables are fully supported. - The source popup menu no longer changes the source selection. DDD 1.0a -------- Bug fix release. On many architectures, this DDD release should be much more robust. For unknown reasons, DDD 1.0 choked soon after destroying some of its widgets - a bug that must have been introduced at the very end of the beta test phase and thus have gone by unnoticed. This bug, and some other minor bugs, have been fixed. DDD 1.0 ------- First public DDD release. Many thanks to all who spent their time in testing DDD, sending bug reports and suggestions, and making DDD what it is today. This DDD release should configure, compile and run out-of-the-box on the following systems: hppa1.1-hp-hpux9.05 linux-i386-unknown linux-i486-unknown mips-dec-ultrix4 powerpc-ibm-aix3 rs6000-ibm-aix3 sparc-sun-sunos4 sparc-sun-solaris2 If your system is in the list above, please let us know if you encountered any problems (unless these are known problems listed in the `BUGS' and `PROBLEMS' files). If your system is not in the list above, please let us share your experiences. Changes to DDD 0.9: - Several last-minute bugs have been fixed. - New `Program' menu, introduces keyboard accelerators for frequently used commands. - Graph printing reworked; you can now set paper size and graph orientation. The bounding box is computed correctly for all sizes. - The `Graph' menu has been dropped; its items have been moved into the `Data' and `File' menus. - Selecting and moving multiple displays made easier. - Pointers to functions are now displayed correctly. - Regex name conflicts on Linux fixed. Announce policy for future releases: - Bug fix releases shall be named 1.0a, 1.0b, and so on. In general, they will be announced in DDD mailing lists only. - Feature releases shall be numbered 1.1, 1.2, 1.3 and so on. They will be announced in USENET news as well. $Id: NEWS-OLD,v 1.5 2001/01/15 12:52:58 zeller Exp $