home *** CD-ROM | disk | FTP | other *** search
- DDD News -*- text -*-
- ********
-
- DDD 3.1.1
- =========
-
- DDD 3.1.1 fixes a number of minor bugs in DDD 3.1:
-
- - Work around EGCS 1.1 bug on Linux
- - Make sure ostrstream::pcount() is not considered broken when
- using `gcc' (instead of `c++' or `g++') as C++ compiler
- - Handle empty status displays properly
- - Recognize multiple breakpoints as reported by the Perl debugger
- as of Perl 5.005 and later
- - Handle incomplete DBX output correctly, such as prompts of the
- debugged program. For details, see the new `positionTimeout' and
- `displayTimeout' resources.
- - Under certain circumstances, DDD could hang searching for a Java
- class.
- - Using a remote GDB, a new execution window was launched for each
- program run.
- - Using the execution window, Program->Run Again and the `run' command
- tool button cleared all arguments.
-
- There are no new features in DDD 3.1.1.
-
-
- 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 <rwolff@noao.edu>.
-
- - 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 <sc@swi.ml.org>.
-
- - 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 <Rick.Flower@trw.com> 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 <Nx>', 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
- <teg@pvv.ntnu.no> 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-users@ips.cs.tu-bs.de'.
-
-
- For older news, see the file `NEWS-OLD' in the DDD distribution.
-
- $Id: NEWS,v 1.428.4.3 1998/12/06 15:17:58 zeller Exp $
-