1. DISPLAYS
Display graphs are list views into structured data the debugger (gdb or wtcl). A display pops up a window in the data view, over the file window. There are two forms of the "graph display" command. The first is for displaying values of variables. eg:
graph display myvar
which displays the value of 'myvar' each time the debugger stops. The second form uses back-quotes to invoke arbitrary debugger commands. For example, the following displays program breakpoints.
graph display `info breakpoints`
The command executes each time the debugger stops. For information which doesn't change or otherwise need to be updated, use a '!' prefix to execute it once only. eg:
graph display `!info functions`
Two other prefixes are '=' which expects a list value to be returned, and '+' which expects a list and then sorts it.
1.1 SUB-DISPLAYS
Some of the built-in display dialogs have sub-displays. Clicking on file entries in the 'Files' dialog for example displays all the functions defined in that file. Entries in the Args/Locals/etc, let you update those values, or open sub-displays if dealing with a pointer or array/list. In any case, mouse B3 opens the update dialog.
1.2 CHANGING DISPLAY HEIGHT/WIDTH
By default output windows from a display use a Tcl list widget with a fixed size of 30x5 chars. Scrollbars will automatically appear if data contents exceed these dimensions. However, width may be increased by clicking Control-B3 on the label, or decreased with Control-B1. Similarly, height is changed using Shift-B3/B1. To set width/height to auto click Control-B2/Shift-B2, however, know that 8.5+ is really needed for this as Tk 8.4 does not support pixel scrolling of embedded windows.
1.3 CLOSING DISPLAYS
To remove a display, use the right mouse menu over it's label and click ok. For built-in displays, selecting it again from the Displays menu also close it. Lastly, using up-arrow in the command window to run the display command again closes it. Or use "undisplay N".
Display windows are inserted into a text window which moves them around automatically to fit the current window size. You can also click into this window and type newlines to cause displays to start on a newline. Backspace can also be used to delete them.
1.4 BUILT-IN DISPLAYS
Standard built-ins display graphs are provided in the "Displays" menu, some for gdb, some for Tcl, and some for both. The "Call-Stack" displays the current stack frames and allows moving to it with a mouse click. The "Files" display shows all files used in the current program being debugged, and clicking on a file name will display a list of all functions defined in that file. Clicking on the function/proc in the Functions list brings you to that file/function. Be aware that for large programs it can take 10's of seconds to retrieve the file/function list the first time.
The ted implementation of displays was initially modeled after DDD's "graph display" facility.
© 2008 Peter MacDonald