~pac72/ubuntu/lucid/ddd/devel

« back to all changes in this revision

Viewing changes to doc/html/ddd.html

  • Committer: Bazaar Package Importer
  • Author(s): Daniel Schepler
  • Date: 2004-07-22 03:49:37 UTC
  • mfrom: (1.2.1 upstream) (2.1.1 warty)
  • Revision ID: james.westby@ubuntu.com-20040722034937-cysl08t1jvba4jrx
Tags: 1:3.3.9-3
USERINFO has been renamed to USERINFO.txt; adjust debian/rules code
to match, to get correct information on the About DDD dialog.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
<div class="node">
 
2
<p><hr>
 
3
<small class=header>
 
4
Node:<a name="Top">Top</a>,
 
5
Next:<a rel="next" accesskey="n" href="#Summary">Summary</a>,
 
6
Up:<a rel="up" accesskey="u" href="#dir">(dir)</a>
 
7
</small>
 
8
 
 
9
<br>
 
10
</div>
 
11
 
 
12
<h2 class="unnumbered">Debugging with DDD</h2>
 
13
 
 
14
   <p><small>DDD</small> is a graphical front-end for <small>GDB</small> and other command-line
 
15
debuggers.
 
16
 
 
17
   <p>This is the First Edition of <cite>Debugging with
 
18
</cite><small>DDD</small><cite></cite>, 15 January, 2004, for <small>DDD</small> Version 3.3.9-test2.
 
19
 
 
20
<ul class="menu">
 
21
<li><a accesskey="1" href="#Summary">Summary</a>:                      Summary of <small>DDD</small>.
 
22
 
 
23
<p>
 
24
</p><li><a accesskey="2" href="#Sample%20Session">Sample Session</a>:               A sample <small>DDD</small> session. 
 
25
<li><a accesskey="3" href="#Invocation">Invocation</a>:                   Getting in and out of <small>DDD</small>. 
 
26
<li><a accesskey="4" href="#Windows">Windows</a>:                      The <small>DDD</small> windows, menus, and buttons. 
 
27
<li><a accesskey="5" href="#Navigating">Navigating</a>:                   Moving through the source code. 
 
28
<li><a accesskey="6" href="#Stopping">Stopping</a>:                     Making your program stop at specific locations. 
 
29
<li><a accesskey="7" href="#Running">Running</a>:                      Running programs under <small>DDD</small>. 
 
30
<li><a accesskey="8" href="#Examining%20Data">Examining Data</a>:               Examining variable values and data structures. 
 
31
<li><a accesskey="9" href="#Machine-Level%20Debugging">Machine-Level Debugging</a>:      Examining machine code and registers. 
 
32
<li><a href="#Changing%20the%20Program">Changing the Program</a>:         Changing source and object code. 
 
33
<li><a href="#Commands">Commands</a>:                     Entering and editing <small>DDD</small> commands.
 
34
 
 
35
<p>
 
36
</p><li><a href="#Application%20Defaults">Application Defaults</a>:         Resources used in <small>DDD</small>. 
 
37
<li><a href="#Bugs">Bugs</a>:                         How, when, and why to report <small>DDD</small> bugs. 
 
38
<li><a href="#Configuration%20Notes">Configuration Notes</a>:          Configuration-specific notes. 
 
39
<li><a href="#Dirty%20Tricks">Dirty Tricks</a>:                 Room for your contributions. 
 
40
<li><a href="#Extending">Extending</a>:                    Extending <small>DDD</small>. 
 
41
<li><a href="#FAQ">FAQ</a>:                          Frequently Answered Questions. 
 
42
<li><a href="#License">License</a>:                      The <small>DDD</small> license. 
 
43
<li><a href="#Help%20and%20Assistance">Help and Assistance</a>:          Mailing Lists and other resources. 
 
44
<li><a href="#Documentation%20License">Documentation License</a>:        The license of this document.
 
45
 
 
46
<p>
 
47
</p><li><a href="#Label%20Index">Label Index</a>:                  All labels shown on the <small>DDD</small> <small>GUI</small>. 
 
48
<li><a href="#Key%20Index">Key Index</a>:                    Keys used to control <small>DDD</small>. 
 
49
<li><a href="#Command%20Index">Command Index</a>:                Commands that can be typed within <small>DDD</small>. 
 
50
<li><a href="#Resource%20Index">Resource Index</a>:               All resources and environment variables. 
 
51
<li><a href="#File%20Index">File Index</a>:                   All programs and files referenced by <small>DDD</small>. 
 
52
<li><a href="#Concept%20Index">Concept Index</a>:                All concepts as mentioned in this manual.
 
53
 
 
54
   </ul>
 
55
 
 
56
 
 
57
<div class="contents">
 
58
<h2>Table of Contents</h2>
 
59
<ul>
 
60
<li><a name="toc_Top" href="#Top">Debugging with DDD</a>
 
61
<li><a name="toc_Summary" href="#Summary">Summary of DDD</a>
 
62
<ul>
 
63
<li><a href="#About%20this%20Manual">About this Manual</a>
 
64
<li><a href="#Typographic%20Conventions">Typographic conventions</a>
 
65
<li><a href="#Free%20Software">Free software</a>
 
66
<li><a href="#Getting%20%3csmall%3eDDD%3c%2fsmall%3e">Getting DDD</a>
 
67
<li><a href="#Contributors">Contributors to DDD</a>
 
68
<li><a href="#History">History of DDD</a>
 
69
</li></ul>
 
70
<li><a name="toc_Sample%20Session" href="#Sample%20Session">A Sample DDD Session</a>
 
71
<ul>
 
72
<li><a href="#Sample%20Program">Sample Program</a>
 
73
</li></ul>
 
74
<li><a name="toc_Invocation" href="#Invocation">Getting In and Out of DDD</a>
 
75
<ul>
 
76
<li><a href="#Invoking">Invoking DDD</a>
 
77
<ul>
 
78
<li><a href="#Choosing%20an%20Inferior%20Debugger">Choosing an Inferior Debugger</a>
 
79
<li><a href="#Options">DDD Options</a>
 
80
<li><a href="#X%20Options">X Options</a>
 
81
<li><a href="#Inferior%20Debugger%20Options">Inferior Debugger Options</a>
 
82
<ul>
 
83
<li><a href="#GDB%20Options">GDB Options</a>
 
84
<li><a href="#DBX%20and%20Ladebug%20Options">DBX and Ladebug Options</a>
 
85
<li><a href="#XDB%20Options">XDB Options</a>
 
86
<li><a href="#JDB%20Options">JDB Options</a>
 
87
<li><a href="#PYDB%20Options">PYDB Options</a>
 
88
<li><a href="#Perl%20Options">Perl Options</a>
 
89
<li><a href="#Bash%20Options">Bash Options</a>
 
90
</li></ul>
 
91
<li><a href="#Multiple%20Instances">Multiple DDD Instances</a>
 
92
<li><a href="#X%20Warnings">X warnings</a>
 
93
</li></ul>
 
94
<li><a href="#Quitting">Quitting DDD</a>
 
95
<li><a href="#Sessions">Persistent Sessions</a>
 
96
<ul>
 
97
<li><a href="#Saving%20Sessions">Saving Sessions</a>
 
98
<li><a href="#Resuming%20Sessions">Resuming Sessions</a>
 
99
<li><a href="#Deleting%20Sessions">Deleting Sessions</a>
 
100
<li><a href="#Customizing%20Sessions">Customizing Sessions</a>
 
101
</li></ul>
 
102
<li><a href="#Remote%20Debugging">Remote Debugging</a>
 
103
<ul>
 
104
<li><a href="#Remote%20Host">Running DDD on a Remote Host</a>
 
105
<li><a href="#Remote%20Debugger">Using DDD with a Remote Inferior Debugger</a>
 
106
<ul>
 
107
<li><a href="#Customizing%20Remote%20Debugging">Customizing Remote Debugging</a>
 
108
</li></ul>
 
109
<li><a href="#Remote%20Program">Debugging a Remote Program</a>
 
110
</li></ul>
 
111
<li><a href="#Customizing%20Debugger%20Interaction">Customizing Interaction with the Inferior Debugger</a>
 
112
<ul>
 
113
<li><a href="#Debugger%20Invocation">Invoking an Inferior Debugger</a>
 
114
<li><a href="#Debugger%20Initialization">Initializing the Inferior Debugger</a>
 
115
<ul>
 
116
<li><a href="#GDB%20Initialization">GDB Initialization</a>
 
117
<li><a href="#DBX%20Initialization">DBX Initialization</a>
 
118
<li><a href="#XDB%20Initialization">XDB Initialization</a>
 
119
<li><a href="#JDB%20Initialization">JDB Initialization</a>
 
120
<li><a href="#PYDB%20Initialization">PYDB Initialization</a>
 
121
<li><a href="#Perl%20Initialization">Perl Initialization</a>
 
122
<li><a href="#Bash%20Initialization">Bash Initialization</a>
 
123
<li><a href="#Finding%20a%20Place%20to%20Start">Finding a Place to Start</a>
 
124
<li><a href="#Opening%20the%20Selection">Opening the Selection</a>
 
125
</li></ul>
 
126
<li><a href="#Debugger%20Communication">Communication with the Inferior Debugger</a>
 
127
</li></ul>
 
128
</li></ul>
 
129
<li><a name="toc_Windows" href="#Windows">The DDD Windows</a>
 
130
<ul>
 
131
<li><a href="#Menu%20Bar">The Menu Bar</a>
 
132
<ul>
 
133
<li><a href="#File%20Menu">The File Menu</a>
 
134
<li><a href="#Edit%20Menu">The Edit Menu</a>
 
135
<li><a href="#View%20Menu">The View Menu</a>
 
136
<li><a href="#Program%20Menu">The Program Menu</a>
 
137
<li><a href="#Commands%20Menu">The Commands Menu</a>
 
138
<li><a href="#Status%20Menu">The Status Menu</a>
 
139
<li><a href="#Source%20Menu">The Source Menu</a>
 
140
<li><a href="#Data%20Menu">The Data Menu</a>
 
141
<li><a href="#Maintenance%20Menu">The Maintenance Menu</a>
 
142
<li><a href="#Help%20Menu">The Help Menu</a>
 
143
<li><a href="#Customizing%20the%20Menu%20Bar">Customizing the Menu Bar</a>
 
144
<ul>
 
145
<li><a href="#Auto-Raise%20Menus">Auto-Raise Menus</a>
 
146
<li><a href="#Customizing%20the%20Edit%20Menu">Customizing the Edit Menu</a>
 
147
</li></ul>
 
148
</li></ul>
 
149
<li><a href="#Tool%20Bar">The Tool Bar</a>
 
150
<ul>
 
151
<li><a href="#Customizing%20the%20Tool%20Bar">Customizing the Tool Bar</a>
 
152
</li></ul>
 
153
<li><a href="#Command%20Tool">The Command Tool</a>
 
154
<ul>
 
155
<li><a href="#Customizing%20the%20Command%20Tool">Customizing the Command Tool</a>
 
156
<ul>
 
157
<li><a href="#Disabling%20the%20Command%20Tool">Disabling the Command Tool</a>
 
158
</li></ul>
 
159
<li><a href="#Customizing%20Tool%20Position">Command Tool Position</a>
 
160
<ul>
 
161
<li><a href="#Customizing%20Tool%20Decoration">Customizing Tool Decoration</a>
 
162
</li></ul>
 
163
</li></ul>
 
164
<li><a href="#Getting%20Help">Getting Help</a>
 
165
<li><a href="#Undo%20and%20Redo">Undoing and Redoing Commands</a>
 
166
<li><a href="#Customizing">Customizing DDD</a>
 
167
<ul>
 
168
<li><a href="#How%20Customizing%20Works">How Customizing DDD Works</a>
 
169
<ul>
 
170
<li><a href="#Resources">Resources</a>
 
171
<li><a href="#Changing%20Resources">Changing Resources</a>
 
172
<li><a href="#Saving%20Options">Saving Options</a>
 
173
</li></ul>
 
174
<li><a href="#Customizing%20Help">Customizing DDD Help</a>
 
175
<ul>
 
176
<li><a href="#Button%20tips">Button Tips</a>
 
177
<li><a href="#Tip%20of%20the%20day">Tip of the day</a>
 
178
<li><a href="#Help%20Helpers">Help Helpers</a>
 
179
</li></ul>
 
180
<li><a href="#Customizing%20Undo">Customizing Undo</a>
 
181
<li><a href="#Customizing%20Windows">Customizing the DDD Windows</a>
 
182
<ul>
 
183
<li><a href="#Splash%20Screen">Splash Screen</a>
 
184
<li><a href="#Window%20Layout">Window Layout</a>
 
185
<li><a href="#Customizing%20Fonts">Customizing Fonts</a>
 
186
<li><a href="#Toggling%20Windows">Toggling Windows</a>
 
187
<li><a href="#Text%20Fields">Text Fields</a>
 
188
<li><a href="#Icons">Icons</a>
 
189
<li><a href="#Adding%20Buttons">Adding Buttons</a>
 
190
<li><a href="#More%20Customizations">More Customizations</a>
 
191
</li></ul>
 
192
<li><a href="#Debugger%20Settings">Debugger Settings</a>
 
193
</li></ul>
 
194
</li></ul>
 
195
<li><a name="toc_Navigating" href="#Navigating">Navigating through the Code</a>
 
196
<ul>
 
197
<li><a href="#Compiling%20for%20Debugging">Compiling for Debugging</a>
 
198
<li><a href="#Opening%20Files">Opening Files</a>
 
199
<ul>
 
200
<li><a href="#Opening%20Programs">Opening Programs</a>
 
201
<li><a href="#Opening%20Core%20Dumps">Opening Core Dumps</a>
 
202
<li><a href="#Opening%20Source%20Files">Opening Source Files</a>
 
203
<li><a href="#Filtering%20Files">Filtering Files</a>
 
204
</li></ul>
 
205
<li><a href="#Looking%20up%20Items">Looking up Items</a>
 
206
<ul>
 
207
<li><a href="#Looking%20up%20Definitions">Looking up Definitions</a>
 
208
<li><a href="#Textual%20Search">Textual Search</a>
 
209
<li><a href="#Looking%20up%20Previous%20Locations">Looking up Previous Locations</a>
 
210
<li><a href="#Source%20Path">Specifying Source Directories</a>
 
211
</li></ul>
 
212
<li><a href="#Customizing%20Source">Customizing the Source Window</a>
 
213
<ul>
 
214
<li><a href="#Customizing%20Glyphs">Customizing Glyphs</a>
 
215
<li><a href="#Customizing%20Searching">Customizing Searching</a>
 
216
<li><a href="#Customizing%20Source%20Appearance">Customizing Source Appearance</a>
 
217
<li><a href="#Customizing%20Source%20Scrolling">Customizing Source Scrolling</a>
 
218
<li><a href="#Customizing%20Source%20Lookup">Customizing Source Lookup</a>
 
219
<li><a href="#Customizing%20File%20Filtering">Customizing File Filtering</a>
 
220
</li></ul>
 
221
</li></ul>
 
222
<li><a name="toc_Stopping" href="#Stopping">Stopping the Program</a>
 
223
<ul>
 
224
<li><a href="#Breakpoints">Breakpoints</a>
 
225
<ul>
 
226
<li><a href="#Setting%20Breakpoints">Setting Breakpoints</a>
 
227
<ul>
 
228
<li><a href="#Setting%20Breakpoints">Setting Breakpoints by Location</a>
 
229
<li><a href="#Setting%20Breakpoints">Setting Breakpoints by Name</a>
 
230
<li><a href="#Setting%20Breakpoints">Setting Regexp Breakpoints</a>
 
231
</li></ul>
 
232
<li><a href="#Deleting%20Breakpoints">Deleting Breakpoints</a>
 
233
<li><a href="#Disabling%20Breakpoints">Disabling Breakpoints</a>
 
234
<li><a href="#Temporary%20Breakpoints">Temporary Breakpoints</a>
 
235
<li><a href="#Editing%20Breakpoint%20Properties">Editing Breakpoint Properties</a>
 
236
<li><a href="#Breakpoint%20Conditions">Breakpoint Conditions</a>
 
237
<li><a href="#Breakpoint%20Ignore%20Counts">Breakpoint Ignore Counts</a>
 
238
<li><a href="#Breakpoint%20Commands">Breakpoint Commands</a>
 
239
<li><a href="#Moving%20and%20Copying%20Breakpoints">Moving and Copying Breakpoints</a>
 
240
<li><a href="#Looking%20up%20Breakpoints">Looking up Breakpoints</a>
 
241
<li><a href="#Editing%20all%20Breakpoints">Editing all Breakpoints</a>
 
242
<li><a href="#Hardware-Assisted%20Breakpoints">Hardware-Assisted Breakpoints</a>
 
243
</li></ul>
 
244
<li><a href="#Watchpoints">Watchpoints</a>
 
245
<ul>
 
246
<li><a href="#Setting%20Watchpoints">Setting Watchpoints</a>
 
247
<li><a href="#Editing%20Watchpoint%20Properties">Editing Watchpoint Properties</a>
 
248
<li><a href="#Editing%20all%20Watchpoints">Editing all Watchpoints</a>
 
249
<li><a href="#Deleting%20Watchpoints">Deleting Watchpoints</a>
 
250
</li></ul>
 
251
<li><a href="#Interrupting">Interrupting</a>
 
252
<li><a href="#Stopping%20X%20Programs">Stopping X Programs</a>
 
253
<ul>
 
254
<li><a href="#Customizing%20Grab%20Checking">Customizing Grab Checking</a>
 
255
</li></ul>
 
256
</li></ul>
 
257
<li><a name="toc_Running" href="#Running">Running the Program</a>
 
258
<ul>
 
259
<li><a href="#Starting%20Program%20Execution">Starting Program Execution</a>
 
260
<ul>
 
261
<li><a href="#Arguments">Your Program's Arguments</a>
 
262
<li><a href="#Environment">Your Program's Environment</a>
 
263
<li><a href="#Working%20Directory">Your Program's Working Directory</a>
 
264
<li><a href="#Input%2fOutput">Your Program's Input and Output</a>
 
265
</li></ul>
 
266
<li><a href="#Using%20the%20Execution%20Window">Using the Execution Window</a>
 
267
<ul>
 
268
<li><a href="#Customizing%20the%20Execution%20Window">Customizing the Execution Window</a>
 
269
</li></ul>
 
270
<li><a href="#Attaching%20to%20a%20Process">Attaching to a Running Process</a>
 
271
<ul>
 
272
<li><a href="#Customizing%20Attaching%20to%20Processes">Customizing Attaching to Processes</a>
 
273
</li></ul>
 
274
<li><a href="#Program%20Stop">Program Stops</a>
 
275
<li><a href="#Resuming%20Execution">Resuming Execution</a>
 
276
<ul>
 
277
<li><a href="#Resuming%20Execution">Continuing</a>
 
278
<li><a href="#Resuming%20Execution">Stepping one Line</a>
 
279
<li><a href="#Resuming%20Execution">Continuing to the Next Line</a>
 
280
<li><a href="#Resuming%20Execution">Continuing Until Here</a>
 
281
<li><a href="#Resuming%20Execution">Continuing Until a Greater Line is Reached</a>
 
282
<li><a href="#Resuming%20Execution">Continuing Until Function Returns</a>
 
283
</li></ul>
 
284
<li><a href="#Continuing%20Somewhere%20Else">Continuing at a Different Address</a>
 
285
<li><a href="#Stack">Examining the Stack</a>
 
286
<ul>
 
287
<li><a href="#Frames">Stack Frames</a>
 
288
<li><a href="#Backtraces">Backtraces</a>
 
289
<li><a href="#Selecting%20a%20frame">Selecting a Frame</a>
 
290
</li></ul>
 
291
<li><a href="#Undoing%20Program%20Execution">"Undoing" Program Execution</a>
 
292
<li><a href="#Threads">Examining Threads</a>
 
293
<li><a href="#Signals">Handling Signals</a>
 
294
<li><a href="#Killing%20the%20Program">Killing the Program</a>
 
295
</li></ul>
 
296
<li><a name="toc_Examining%20Data" href="#Examining%20Data">Examining Data</a>
 
297
<ul>
 
298
<li><a href="#Value%20Tips">Showing Simple Values using Value Tips</a>
 
299
<li><a href="#Printing%20Values">Printing Simple Values in the Debugger Console</a>
 
300
<li><a href="#Displaying%20Values">Displaying Complex Values in the Data Window</a>
 
301
<ul>
 
302
<li><a href="#Display%20Basics">Display Basics</a>
 
303
<ul>
 
304
<li><a href="#Creating%20Single%20Displays">Creating Single Displays</a>
 
305
<li><a href="#Selecting%20Displays">Selecting Displays</a>
 
306
<li><a href="#Showing%20and%20Hiding%20Details">Showing and Hiding Details</a>
 
307
<li><a href="#Rotating%20Displays">Rotating Displays</a>
 
308
<li><a href="#Displaying%20Local%20Variables">Displaying Local Variables</a>
 
309
<li><a href="#Displaying%20Program%20Status">Displaying Program Status</a>
 
310
<li><a href="#Refreshing%20the%20Data%20Window">Refreshing the Data Window</a>
 
311
<li><a href="#Placement">Display Placement</a>
 
312
<li><a href="#Clustering">Clustering Displays</a>
 
313
<li><a href="#Creating%20Multiple%20Displays">Creating Multiple Displays</a>
 
314
<li><a href="#Editing%20all%20Displays">Editing all Displays</a>
 
315
<li><a href="#Deleting%20Displays">Deleting Displays</a>
 
316
</li></ul>
 
317
<li><a href="#Arrays">Arrays</a>
 
318
<ul>
 
319
<li><a href="#Array%20Slices">Array Slices</a>
 
320
<li><a href="#Repeated%20Values">Repeated Values</a>
 
321
<li><a href="#Arrays%20as%20Tables">Arrays as Tables</a>
 
322
</li></ul>
 
323
<li><a href="#Assignment">Assignment to Variables</a>
 
324
<li><a href="#Examining%20Structures">Examining Structures</a>
 
325
<ul>
 
326
<li><a href="#Dependent%20Values">Displaying Dependent Values</a>
 
327
<li><a href="#Dereferencing%20Pointers">Dereferencing Pointers</a>
 
328
<li><a href="#Shared%20Structures">Shared Structures</a>
 
329
<li><a href="#Display%20Shortcuts">Display Shortcuts</a>
 
330
</li></ul>
 
331
<li><a href="#Customizing%20Displays">Customizing Displays</a>
 
332
<ul>
 
333
<li><a href="#Using%20Data%20Themes">Using Data Themes</a>
 
334
<li><a href="#Applying%20Data%20Themes%20to%20Several%20Values">Applying Data Themes to Several Values</a>
 
335
<li><a href="#Editing%20Themes">Editing Themes</a>
 
336
<li><a href="#Writing%20Data%20Themes">Writing Data Themes</a>
 
337
<li><a href="#Display%20Resources">Display Resources</a>
 
338
<li><a href="#VSL%20Resources">VSL Resources</a>
 
339
</li></ul>
 
340
<li><a href="#Layouting%20the%20Graph">Layouting the Graph</a>
 
341
<ul>
 
342
<li><a href="#Moving%20Displays">Moving Displays</a>
 
343
<li><a href="#Scrolling%20Data">Scrolling Data</a>
 
344
<li><a href="#Aligning%20Displays">Aligning Displays</a>
 
345
<li><a href="#Automatic%20Layout">Automatic Layout</a>
 
346
<li><a href="#Rotating%20the%20Graph">Rotating the Graph</a>
 
347
</li></ul>
 
348
<li><a href="#Printing%20the%20Graph">Printing the Graph</a>
 
349
</li></ul>
 
350
<li><a href="#Plotting%20Values">Plotting Values</a>
 
351
<ul>
 
352
<li><a href="#Plotting%20Arrays">Plotting Arrays</a>
 
353
<li><a href="#Plot%20Appearance">Changing the Plot Appearance</a>
 
354
<li><a href="#Scalars%20and%20Composites">Plotting Scalars and Composites</a>
 
355
<li><a href="#Plotting%20Histories">Plotting Display Histories</a>
 
356
<li><a href="#Printing%20Plots">Printing Plots</a>
 
357
<li><a href="#Entering%20Plotting%20Commands">Entering Plotting Commands</a>
 
358
<li><a href="#Exporting%20Plot%20Data">Exporting Plot Data</a>
 
359
<li><a href="#Animating%20Plots">Animating Plots</a>
 
360
<li><a href="#Customizing%20Plots">Customizing Plots</a>
 
361
<ul>
 
362
<li><a href="#Gnuplot%20Invocation">Gnuplot Invocation</a>
 
363
<li><a href="#Gnuplot%20Settings">Gnuplot Settings</a>
 
364
</li></ul>
 
365
</li></ul>
 
366
<li><a href="#Examining%20Memory">Examining Memory</a>
 
367
</li></ul>
 
368
<li><a name="toc_Machine-Level%20Debugging" href="#Machine-Level%20Debugging">Machine-Level Debugging</a>
 
369
<ul>
 
370
<li><a href="#Machine%20Code">Examining Machine Code</a>
 
371
<li><a href="#Machine%20Code%20Execution">Machine Code Execution</a>
 
372
<li><a href="#Registers">Examining Registers</a>
 
373
<li><a href="#Customizing%20Machine%20Code">Customizing Machine Code</a>
 
374
</li></ul>
 
375
<li><a name="toc_Changing%20the%20Program" href="#Changing%20the%20Program">Changing the Program</a>
 
376
<ul>
 
377
<li><a href="#Editing%20Source%20Code">Editing Source Code</a>
 
378
<ul>
 
379
<li><a href="#Customizing%20Editing">Customizing Editing</a>
 
380
<li><a href="#In-Place%20Editing">In-Place Editing</a>
 
381
</li></ul>
 
382
<li><a href="#Recompiling">Recompiling</a>
 
383
<li><a href="#Patching">Patching</a>
 
384
</li></ul>
 
385
<li><a name="toc_Commands" href="#Commands">The Command-Line Interface</a>
 
386
<ul>
 
387
<li><a href="#Entering%20Commands">Entering Commands</a>
 
388
<ul>
 
389
<li><a href="#Command%20Completion">Command Completion</a>
 
390
<li><a href="#Command%20History">Command History</a>
 
391
<li><a href="#Typing%20in%20the%20Source%20Window">Typing in the Source Window</a>
 
392
</li></ul>
 
393
<li><a href="#TTY%20mode">Entering Commands at the TTY</a>
 
394
<li><a href="#Integrating%20%3csmall%3eDDD%3c%2fsmall%3e">Integrating DDD</a>
 
395
<ul>
 
396
<li><a href="#Integrating%20%3csmall%3eDDD%3c%2fsmall%3e">Using DDD with Emacs</a>
 
397
<li><a href="#Integrating%20%3csmall%3eDDD%3c%2fsmall%3e">Using DDD with XEmacs</a>
 
398
<li><a href="#Integrating%20%3csmall%3eDDD%3c%2fsmall%3e">Using DDD with <small>XXGDB</small></a>
 
399
</li></ul>
 
400
<li><a href="#Defining%20Buttons">Defining Buttons</a>
 
401
<ul>
 
402
<li><a href="#Customizing%20Buttons">Customizing Buttons</a>
 
403
</li></ul>
 
404
<li><a href="#Defining%20Commands">Defining Commands</a>
 
405
<ul>
 
406
<li><a href="#GDB%20Simple%20Commands">Defining Simple Commands using GDB</a>
 
407
<li><a href="#GDB%20Argument%20Commands">Defining Argument Commands using GDB</a>
 
408
<li><a href="#Commands%20with%20Other%20Debuggers">Defining Commands using Other Debuggers</a>
 
409
</li></ul>
 
410
</li></ul>
 
411
<li><a name="toc_Application%20Defaults" href="#Application%20Defaults">Application Defaults</a>
 
412
<ul>
 
413
<li><a href="#Actions">Actions</a>
 
414
<ul>
 
415
<li><a href="#General%20Actions">General Actions</a>
 
416
<li><a href="#Data%20Display%20Actions">Data Display Actions</a>
 
417
<li><a href="#Debugger%20Console%20Actions">Debugger Console Actions</a>
 
418
<li><a href="#Source%20Window%20Actions">Source Window Actions</a>
 
419
</li></ul>
 
420
<li><a href="#Images">Images</a>
 
421
</li></ul>
 
422
<li><a name="toc_Bugs" href="#Bugs">Bugs and How To Report Them</a>
 
423
<ul>
 
424
<li><a href="#Where%20to%20Send%20Bug%20Reports">Where to Send Bug Reports</a>
 
425
<li><a href="#Is%20it%20a%20%3csmall%3eDDD%3c%2fsmall%3e%20Bug%3f">Is it a DDD Bug?</a>
 
426
<li><a href="#How%20to%20Report%20Bugs">How to Report Bugs</a>
 
427
<li><a href="#Bug%20Reports">What to Include in a Bug Report</a>
 
428
<li><a href="#Diagnostics">Getting Diagnostics</a>
 
429
<ul>
 
430
<li><a href="#Logging">Logging</a>
 
431
<ul>
 
432
<li><a href="#Disabling%20Logging">Disabling Logging</a>
 
433
</li></ul>
 
434
<li><a href="#Debugging%20%3csmall%3eDDD%3c%2fsmall%3e">Debugging DDD</a>
 
435
<li><a href="#Customizing%20Diagnostics">Customizing Diagnostics</a>
 
436
</li></ul>
 
437
</li></ul>
 
438
<li><a name="toc_Configuration%20Notes" href="#Configuration%20Notes">Configuration Notes</a>
 
439
<ul>
 
440
<li><a href="#GDB">Using DDD with GDB</a>
 
441
<ul>
 
442
<li><a href="#WDB">Using DDD with WDB</a>
 
443
<li><a href="#WindRiver%20GDB">Using DDD with WindRiver GDB (Tornado)</a>
 
444
</li></ul>
 
445
<li><a href="#DBX">Using DDD with DBX</a>
 
446
<li><a href="#Ladebug">Using DDD with Ladebug</a>
 
447
<li><a href="#XDB">Using DDD with XDB</a>
 
448
<li><a href="#JDB">Using DDD with JDB</a>
 
449
<li><a href="#Perl">Using DDD with Perl</a>
 
450
<li><a href="#Bash">Using DDD with Bash</a>
 
451
<li><a href="#LessTif">Using DDD with LessTif</a>
 
452
</li></ul>
 
453
<li><a name="toc_Dirty%20Tricks" href="#Dirty%20Tricks">Dirty Tricks</a>
 
454
<li><a name="toc_Extending" href="#Extending">Extending DDD</a>
 
455
<li><a name="toc_FAQ" href="#FAQ">Frequently Answered Questions</a>
 
456
<li><a name="toc_License" href="#License">GNU General Public License</a>
 
457
<ul>
 
458
<li><a href="#License">Preamble</a>
 
459
<li><a href="#License">How to Apply These Terms to Your New Programs</a>
 
460
</li></ul>
 
461
<li><a name="toc_Help%20and%20Assistance" href="#Help%20and%20Assistance">Help and Assistance</a>
 
462
<li><a name="toc_Documentation%20License" href="#Documentation%20License">GNU Free Documentation License</a>
 
463
<ul>
 
464
<li><a href="#Documentation%20License">ADDENDUM: How to use this License for your documents</a>
 
465
</li></ul>
 
466
<li><a name="toc_Label%20Index" href="#Label%20Index">Label Index</a>
 
467
<li><a name="toc_Key%20Index" href="#Key%20Index">Key Index</a>
 
468
<li><a name="toc_Command%20Index" href="#Command%20Index">Command Index</a>
 
469
<li><a name="toc_Resource%20Index" href="#Resource%20Index">Resource Index</a>
 
470
<li><a name="toc_File%20Index" href="#File%20Index">File Index</a>
 
471
<li><a name="toc_Concept%20Index" href="#Concept%20Index">Concept Index</a>
 
472
</li></ul>
 
473
</div>
 
474
 
 
475
<p>Copyright &copy; 2004 Universit�t des Saarlandes <br>
 
476
Lehrstuhl Softwaretechnik <br>
 
477
Postfach 15 11 50 <br>
 
478
66041 Saarbr�cken <br>
 
479
GERMANY
 
480
 
 
481
<p>Distributed by <br>
 
482
Free Software Foundation, Inc. <br>
 
483
59 Temple Place - Suite 330 <br>
 
484
Boston, MA 02111-1307 <br>
 
485
USA
 
486
 
 
487
<p><small>DDD</small> and this manual are available via
 
488
<a href="http://www.gnu.org/software/ddd/">the <small>DDD</small> <small>WWW</small> page</a>.
 
489
 
 
490
   <p>Permission is granted to copy, distribute and/or modify this document
 
491
under the terms of the GNU Free Documentation License, Version 1.1 or
 
492
any later version published by the Free Software Foundation; with no
 
493
Invariant Sections, no Front-Cover Texts and no Back-Cover Texts.  A
 
494
copy of the license is included in the section entitled "GNU Free
 
495
Documentation License"; See <a href="#Documentation%20License">Documentation License</a>, for details.
 
496
 
 
497
   <p>Send questions, comments, suggestions, etc. to <a href="mailto:ddd@gnu.org">ddd@gnu.org</a>. <br>
 
498
Send bug reports to <a href="mailto:bug-ddd@gnu.org">bug-ddd@gnu.org</a>. <br>
 
499
 
 
500
<div class="node">
 
501
<p><hr>
 
502
<small class=header>
 
503
Node:<a name="Summary">Summary</a>,
 
504
Next:<a rel="next" accesskey="n" href="#Sample%20Session">Sample Session</a>,
 
505
Previous:<a rel="previous" accesskey="p" href="#Top">Top</a>,
 
506
Up:<a rel="up" accesskey="u" href="#Top">Top</a>
 
507
</small>
 
508
 
 
509
<br>
 
510
</div>
 
511
 
 
512
<h2 class="unnumbered">Summary of DDD</h2>
 
513
 
 
514
   <p>The purpose of a debugger such as <small>DDD</small> is to allow you to see
 
515
what is going on "inside" another program while it executes--or what
 
516
another program was doing at the moment it crashed.
 
517
 
 
518
   <p><small>DDD</small> can do four main kinds of things (plus other things in
 
519
support of these) to help you catch bugs in the act:
 
520
 
 
521
     <ul>
 
522
<li>Start your program, specifying anything that might affect its behavior. 
 
523
<li>Make your program stop on specified conditions. 
 
524
<li>Examine what has happened, when your program has stopped. 
 
525
<li>Change things in your program, so you can experiment with correcting the
 
526
effects of one bug and go on to learn about another. 
 
527
</ul>
 
528
 
 
529
   <p>Technically speaking, <small>DDD</small> is a front-end to a command-line
 
530
debugger (called <dfn>inferior debugger</dfn>, because it lies at the layer
 
531
beneath <small>DDD</small>).  <small>DDD</small> supports the following inferior
 
532
debuggers:
 
533
 
 
534
     <ul>
 
535
<li>To debug <em>executable binaries</em>, you can use <small>DDD</small> with <dfn></dfn><small>GDB</small><dfn></dfn>,
 
536
<dfn></dfn><small>DBX</small><dfn></dfn>, <dfn>Ladebug</dfn>, or <dfn></dfn><small>XDB</small><dfn></dfn>.
 
537
 
 
538
          <ul>
 
539
<li><dfn></dfn><small>GDB</small><dfn></dfn>, the <small>GNU</small> debugger, is the recommended inferior debugger
 
540
for <small>DDD</small>.  <small>GDB</small> supports native executables binaries originally
 
541
written in C, C++, Java, Modula-2, Modula-3, Pascal, Chill, Ada, and
 
542
FORTRAN.  (see <a href="gdb.html#Languages">Using <small>GDB</small> with Different Languages</a>, for
 
543
information on language support in <small>GDB</small>.)
 
544
 
 
545
          <li>As an alternative to <small>GDB</small>, you can use <small>DDD</small> with the <dfn></dfn><small>DBX</small><dfn></dfn>
 
546
debugger, as found on several <small>UNIX</small> systems.  Most <small>DBX</small> incarnations offer
 
547
fewer features than <small>GDB</small>, and some of the more advanced <small>DBX</small> features may
 
548
not be supported by <small>DDD</small>.  However, using <small>DBX</small> may be useful if
 
549
<small>GDB</small> does not understand or fully support the debugging information as
 
550
generated by your compiler.
 
551
 
 
552
          <li>As an alternative to <small>GDB</small> and <small>DBX</small>, you can use <small>DDD</small> with
 
553
<dfn>Ladebug</dfn>, as found on Compaq and DEC systems.  Ladebug offers fewer
 
554
features than <small>GDB</small>, and some of the more advanced Ladebug features may
 
555
not be supported by <small>DDD</small>.  However, using Ladebug may be useful if
 
556
<small>GDB</small> or <small>DBX</small> do not understand or fully support the debugging
 
557
information as generated by your compiler.<a rel="footnote" href="#fn-1"><sup>1</sup></a>
 
558
 
 
559
          <li>As another alternative to <small>GDB</small>, you can use <small>DDD</small> with the
 
560
<dfn></dfn><small>XDB</small><dfn></dfn> debugger, as found on <small>HP-UX</small>
 
561
systems.<a rel="footnote" href="#fn-2"><sup>2</sup></a>. 
 
562
</ul>
 
563
 
 
564
     <li>To debug <em>Java byte code programs</em>, you can use <small>DDD</small> with
 
565
<dfn></dfn><small>JDB</small><dfn></dfn>, the Java debugger, as of <small>JDK</small> 1.1 and later. 
 
566
(<small>DDD</small> has been tested with <small>JDK</small> 1.1 and <small>JDK</small> 1.2.)
 
567
 
 
568
     <li>To debug <em>Python programs</em>, you can use <small>DDD</small> with
 
569
<dfn></dfn><small>PYDB</small><dfn></dfn>, a Python debugger.
 
570
 
 
571
     <li>To debug <em>Perl programs</em>, you can use <small>DDD</small> with the <dfn>Perl
 
572
debugger,</dfn> as of Perl 5.003 and later.
 
573
 
 
574
     <li>To debug <em>Bash programs</em>, you need a version Bash that supports
 
575
extended debugging support. To get this enhanced version see
 
576
<a href="http://bashdb.sourceforge.net">http://bashdb.sourceforge.net</a>. You will need version
 
577
2.05b-debugger-0.32 or later to work with <small>DDD</small>. 
 
578
</ul>
 
579
 
 
580
   <p>See <a href="#Choosing%20an%20Inferior%20Debugger">Choosing an Inferior Debugger</a>, for choosing the appropriate
 
581
inferior debugger.  See <a href="#Sample%20Session">Sample Session</a>, for getting a first
 
582
impression of <small>DDD</small>.
 
583
 
 
584
<ul class="menu">
 
585
<li><a accesskey="1" href="#About%20this%20Manual">About this Manual</a>:            Getting copies in various formats. 
 
586
<li><a accesskey="2" href="#Typographic%20Conventions">Typographic Conventions</a>:      Typographic conventions. 
 
587
<li><a accesskey="3" href="#Free%20Software">Free Software</a>:                How to copy and redistribute <small>DDD</small>. 
 
588
<li><a accesskey="4" href="#Getting%20%3csmall%3eDDD%3c%2fsmall%3e">Getting <small>DDD</small></a>:               How to obtain copies of <small>DDD</small>. 
 
589
<li><a accesskey="5" href="#Contributors">Contributors</a>:                 Who has done all this? 
 
590
<li><a accesskey="6" href="#History">History</a>:                      Old <small>DDD</small> versions. 
 
591
</ul>
 
592
 
 
593
<div class="node">
 
594
<p><hr>
 
595
<small class=header>
 
596
Node:<a name="About%20this%20Manual">About this Manual</a>,
 
597
Next:<a rel="next" accesskey="n" href="#Typographic%20Conventions">Typographic Conventions</a>,
 
598
Up:<a rel="up" accesskey="u" href="#Summary">Summary</a>
 
599
</small>
 
600
 
 
601
<br>
 
602
</div>
 
603
 
 
604
<h3 class="unnumberedsec">About this Manual</h3>
 
605
 
 
606
   <p>This manual comes in several formats:
 
607
 
 
608
     <ul>
 
609
<li>The <em>Info</em> format is used for browsing on character devices; it
 
610
comes without pictures.  You should have a local copy installed, which
 
611
you can browse via Emacs, the stand-alone <code>info</code> program, or from
 
612
<small>DDD</small> via <code>Help =&gt; </code><small>DDD</small><code> Reference</code>.
 
613
 
 
614
     <p>The <small>DDD</small> source distribution
 
615
<code>ddd-3.3.9-test2.tar.gz</code> contains this manual as
 
616
pre-formatted info files; you can also download them from <br>
 
617
<a href="http://www.gnu.org/software/ddd/">the <small>DDD</small> <small>WWW</small> page</a>.
 
618
 
 
619
     </p><li>The <em>PostScript</em> format is used for printing on paper; it comes
 
620
with pictures as well.
 
621
 
 
622
     <p>The <small>DDD</small> source distribution
 
623
<code>ddd-3.3.9-test2.tar.gz</code> contains this manual as
 
624
pre-formatted PostScript file; you can also download it from <br>
 
625
<a href="http://www.gnu.org/software/ddd/">the <small>DDD</small> <small>WWW</small> page</a>.
 
626
 
 
627
     </p><li>The <em>PDF</em> format is used for printing on paper as well as for
 
628
online browsing; it comes with pictures as well.
 
629
 
 
630
     <p>The <small>DDD</small> source distribution
 
631
<code>ddd-3.3.9-test2.tar.gz</code> contains this manual as
 
632
pre-formatted PDF file; you can also download it from <br>
 
633
<a href="http://www.gnu.org/software/ddd/">the <small>DDD</small> <small>WWW</small> page</a>.
 
634
 
 
635
     </p><li>The <em>HTML</em> format is used for browsing on bitmap devices; it
 
636
includes several pictures.  You can view it using a HTML browser,
 
637
typically from a local copy.
 
638
 
 
639
     <p>A pre-formatted HTML version of this manual comes
 
640
in a separate <small>DDD</small> package <br>
 
641
<code>ddd-3.3.9-test2-html-manual.tar.gz</code>; you can browse
 
642
and download it via <br>
 
643
the <a href="http://www.gnu.org/software/ddd/"><small>DDD</small> <small>WWW</small> page</a>. 
 
644
</ul>
 
645
 
 
646
   <p>The manual itself is written in TeXinfo format; its source code
 
647
<code>ddd.texi</code> is contained in the <small>DDD</small> source distribution
 
648
<code>ddd-3.3.9-test2.tar.gz</code>.
 
649
 
 
650
   <p>The picture sources come in a separate package
 
651
<code>ddd-3.3.9-test2-pics.tar.gz</code>; you need this package
 
652
only if you want to re-create the PostScript, HTML, or PDF versions.
 
653
 
 
654
<div class="node">
 
655
<p><hr>
 
656
<small class=header>
 
657
Node:<a name="Typographic%20Conventions">Typographic Conventions</a>,
 
658
Next:<a rel="next" accesskey="n" href="#Free%20Software">Free Software</a>,
 
659
Previous:<a rel="previous" accesskey="p" href="#About%20this%20Manual">About this Manual</a>,
 
660
Up:<a rel="up" accesskey="u" href="#Summary">Summary</a>
 
661
</small>
 
662
 
 
663
<br>
 
664
</div>
 
665
 
 
666
<h3 class="unnumberedsec">Typographic conventions</h3>
 
667
 
 
668
     <dl>
 
669
<dt>&lt;Ctrl+A&gt;
 
670
     <dd>The name for a key on the keyboard (or multiple keys pressed simultaneously)
 
671
 
 
672
     <br><dt><kbd>run</kbd>
 
673
     <dd>A sequence of characters to be typed on the keyboard.
 
674
 
 
675
     <br><dt><code>~/.ddd/init</code>
 
676
     <dd>A file.
 
677
 
 
678
     <br><dt><code>Help</code>
 
679
     <dd>A graphical control element, such as a button or menu item.
 
680
 
 
681
     <br><dt><code>File =&gt; Open Program</code>
 
682
     <dd>A sequence of menu items, starting at the top-level menu bar.
 
683
 
 
684
     <br><dt><code>argc - 1</code>
 
685
     <dd>Program code or debugger command.
 
686
 
 
687
     <br><dt><code>-g</code>
 
688
     <dd>A command-line option.
 
689
 
 
690
     <br><dt><code>$</code>
 
691
     <dd>System prompt.
 
692
 
 
693
     <br><dt><code>(gdb) </code>
 
694
     <dd>Debugger prompt.
 
695
 
 
696
     <br><dt><code>_</code>
 
697
     <dd>Cursor position.
 
698
 
 
699
     <br><dt><var>version</var>
 
700
     <dd>A metasyntactic variable; something that stands for another piece of
 
701
text.
 
702
 
 
703
     <br><dt><dfn>definition</dfn>
 
704
     <dd>A definition.
 
705
 
 
706
     <br><dt><em>caution</em>
 
707
     <dd>Emphasis.
 
708
 
 
709
     <br><dt><strong>A warning</strong>
 
710
     <dd>Strong emphasis.
 
711
 
 
712
     <br><dt><small>DDD</small>
 
713
     <dd>An acronym. 
 
714
</dl>
 
715
 
 
716
   <p>Here's an example.  <code></code><kbd>break </kbd><var>location</var><kbd></kbd><code></code> is a typed command
 
717
at the <code>(gdb) </code> prompt; the metasyntactic variable
 
718
<code></code><var>location</var><code></code> would be replaced by the actual location. 
 
719
<code>_</code> is the cursor position after entering the command.
 
720
 
 
721
<pre class="example">     (gdb) <kbd>break </kbd><var>location</var><kbd></kbd>
 
722
     Breakpoint <var>number</var> at <var>location</var>
 
723
     (gdb) _
 
724
     </pre>
 
725
 
 
726
<div class="node">
 
727
<p><hr>
 
728
<small class=header>
 
729
Node:<a name="Free%20Software">Free Software</a>,
 
730
Next:<a rel="next" accesskey="n" href="#Getting%20%3csmall%3eDDD%3c%2fsmall%3e">Getting <small>DDD</small></a>,
 
731
Previous:<a rel="previous" accesskey="p" href="#Typographic%20Conventions">Typographic Conventions</a>,
 
732
Up:<a rel="up" accesskey="u" href="#Summary">Summary</a>
 
733
</small>
 
734
 
 
735
<br>
 
736
</div>
 
737
 
 
738
<h3 class="unnumberedsec">Free software</h3>
 
739
 
 
740
   <p><small>DDD</small> is <dfn>free</dfn>; this means that everyone is free to use it and
 
741
free to redistribute it on a free basis.  <small>DDD</small> is not in the public
 
742
domain; it is copyrighted and there are restrictions on its
 
743
distribution, but these restrictions are designed to permit everything
 
744
that a good cooperating citizen would want to do.  What is not allowed
 
745
is to try to prevent others from further sharing any version of <small>DDD</small>
 
746
that they might get from you.  The precise conditions are found in the
 
747
<small>GNU</small> General Public License that comes with <small>DDD</small>; See <a href="#License">License</a>,
 
748
for details.
 
749
 
 
750
   <p>The easiest way to get a copy of <small>DDD</small> is from someone else who
 
751
has it.  You need not ask for permission to do so, or tell any one else;
 
752
just copy it.
 
753
 
 
754
<div class="node">
 
755
<p><hr>
 
756
<small class=header>
 
757
Node:<a name="Getting%20%3csmall%3eDDD%3c%2fsmall%3e">Getting <small>DDD</small></a>,
 
758
Next:<a rel="next" accesskey="n" href="#Contributors">Contributors</a>,
 
759
Previous:<a rel="previous" accesskey="p" href="#Free%20Software">Free Software</a>,
 
760
Up:<a rel="up" accesskey="u" href="#Summary">Summary</a>
 
761
</small>
 
762
 
 
763
<br>
 
764
</div>
 
765
 
 
766
<h3 class="unnumberedsec">Getting DDD</h3>
 
767
 
 
768
   <p>If you have access to the Internet, you can get the latest version of
 
769
<small>DDD</small> from the anonymous <small>FTP</small> server <code>ftp.gnu.org</code> in the
 
770
directory <code>/gnu/ddd</code>.  This should contain the following files:
 
771
 
 
772
     <dl>
 
773
<dt><code>ddd-</code><var>version</var><code>.tar.gz</code>
 
774
     <dd>The <small>DDD</small> source distribution.  This should be all you need.
 
775
 
 
776
     <br><dt><code>ddd-</code><var>version</var><code>-html-manual.tar.gz</code>
 
777
     <dd>The <small>DDD</small> manual in HTML format.  You need this only if you want to
 
778
install a local copy of the <small>DDD</small> manual in HTML format.
 
779
 
 
780
     <br><dt><code>ddd-</code><var>version</var><code>-pics.tar.gz</code>
 
781
     <dd>Sources of images included in the <small>DDD</small> manual.  You need this
 
782
only if you want to recreate the <small>DDD</small> manual. 
 
783
</dl>
 
784
 
 
785
   <p><small>DDD</small> can also be found at numerous other archive sites around the
 
786
world; check the file <code>ANNOUNCE</code> in a <small>DDD</small> distribution for
 
787
the latest known list.
 
788
 
 
789
<div class="node">
 
790
<p><hr>
 
791
<small class=header>
 
792
Node:<a name="Contributors">Contributors</a>,
 
793
Next:<a rel="next" accesskey="n" href="#History">History</a>,
 
794
Previous:<a rel="previous" accesskey="p" href="#Getting%20%3csmall%3eDDD%3c%2fsmall%3e">Getting <small>DDD</small></a>,
 
795
Up:<a rel="up" accesskey="u" href="#Summary">Summary</a>
 
796
</small>
 
797
 
 
798
<br>
 
799
</div>
 
800
 
 
801
<h3 class="unnumberedsec">Contributors to DDD</h3>
 
802
 
 
803
   <p>Dorothea L�tkehaus and Andreas Zeller were the original authors of
 
804
<small>DDD</small>.  Many others have contributed to its development.  The
 
805
files <code>ChangeLog</code> and <code>THANKS</code> in the <small>DDD</small> distribution
 
806
approximates a blow-by-blow account.
 
807
 
 
808
<div class="node">
 
809
<p><hr>
 
810
<small class=header>
 
811
Node:<a name="History">History</a>,
 
812
Previous:<a rel="previous" accesskey="p" href="#Contributors">Contributors</a>,
 
813
Up:<a rel="up" accesskey="u" href="#Summary">Summary</a>
 
814
</small>
 
815
 
 
816
<br>
 
817
</div>
 
818
 
 
819
<h3 class="unnumberedsec">History of DDD</h3>
 
820
 
 
821
   <p>The history of <small>DDD</small> is a story of code recycling.  The oldest parts of
 
822
<small>DDD</small> were written in 1990, when <em>Andreas Zeller</em> designed <small>VSL</small>,
 
823
a box-based visual structure language for visualizing data and program
 
824
structures.  The <small>VSL</small> interpreter and the Box library became part of
 
825
Andreas' Diploma Thesis, a graphical syntax editor based on the
 
826
Programming System Generator <small>PSG</small>.
 
827
 
 
828
   <p>In 1992, the <small>VSL</small> and Box libraries were recycled for the
 
829
<small>NORA</small> project.  For <small>NORA</small>, an experimental
 
830
inference-based software development tool set, Andreas wrote a graph
 
831
editor (based on <small>VSL</small> and the Box libraries) and facilities
 
832
for inter-process knowledge exchange.  Based on these tools,
 
833
<em>Dorothea L�tkehaus</em> (now <em>Dorothea Krabiell</em>) realized <small>DDD</small>
 
834
as her Diploma Thesis, 1994.
 
835
 
 
836
   <p>The original <small>DDD</small> had no source window; this was added by
 
837
Dorothea during the winter of 1994-1995.  In the first quarter of 1995,
 
838
finally, Andreas completed <small>DDD</small> by adding command and execution
 
839
windows, extensions for <small>DBX</small> and remote debugging as well as
 
840
configuration support for several architectures.  Since then, Andreas
 
841
has further maintained and extended <small>DDD</small>, based on the comments
 
842
and suggestions of several <small>DDD</small> users around the world.  See the
 
843
comments in the <small>DDD</small> source for details.
 
844
 
 
845
   <p>Major <small>DDD</small> events:
 
846
 
 
847
     <dl>
 
848
<dt>April, 1995
 
849
     <dd><small>DDD</small> 0.9: First <small>DDD</small> beta release.
 
850
 
 
851
     <br><dt>May, 1995
 
852
     <dd><small>DDD</small> 1.0: First public <small>DDD</small> release.
 
853
 
 
854
     <br><dt>December, 1995
 
855
     <dd><small>DDD</small> 1.4: Machine-level debugging, glyphs, Emacs integration.
 
856
 
 
857
     <br><dt>October, 1996
 
858
     <dd><small>DDD</small> 2.0: Color displays, <small>XDB</small> support, generic <small>DBX</small> support,
 
859
command tool.
 
860
 
 
861
     <br><dt>May, 1997
 
862
     <dd><small>DDD</small> 2.1: Alias detection, button tips, status displays.
 
863
 
 
864
     <br><dt>November, 1997
 
865
     <dd><small>DDD</small> 2.2: Sessions, display shortcuts.
 
866
 
 
867
     <br><dt>June, 1998
 
868
     <dd><small>DDD</small> 3.0: Icon tool bar, Java support, <small>JDB</small> support.
 
869
 
 
870
     <br><dt>December, 1998
 
871
     <dd><small>DDD</small> 3.1: Data plotting, Perl support, Python support, Undo/Redo.
 
872
 
 
873
     <br><dt>January, 2000
 
874
     <dd><small>DDD</small> 3.2: New manual, Readline support, Ladebug support.
 
875
 
 
876
     <br><dt>January, 2001
 
877
     <dd><small>DDD</small> 3.3: Data themes, JDB 1.2 support, VxWorks support.
 
878
 
 
879
     <br><dt>November, 2002
 
880
     <dd><small>DDD</small> 3.3.2: Bash support.
 
881
 
 
882
     <br><dt>March, 2003
 
883
     <dd><small>DDD</small> 3.3.3: Better Bash support. Compiles using modern tools thanks
 
884
to Daniel Schepler. 
 
885
</dl>
 
886
 
 
887
<div class="node">
 
888
<p><hr>
 
889
<small class=header>
 
890
Node:<a name="Sample%20Session">Sample Session</a>,
 
891
Next:<a rel="next" accesskey="n" href="#Invocation">Invocation</a>,
 
892
Previous:<a rel="previous" accesskey="p" href="#Summary">Summary</a>,
 
893
Up:<a rel="up" accesskey="u" href="#Top">Top</a>
 
894
</small>
 
895
 
 
896
<br>
 
897
</div>
 
898
 
 
899
<h2 class="chapter">A Sample DDD Session</h2>
 
900
 
 
901
   <p>You can use this manual at your leisure to read all about <small>DDD</small>. 
 
902
However, a handful of features are enough to get started using the
 
903
debugger.  This chapter illustrates those features.
 
904
 
 
905
   <p>The sample program <code>sample.c</code> (see <a href="#Sample%20Program">Sample Program</a>) exhibits the
 
906
following bug.  Normally, <code>sample</code> should sort and print its
 
907
arguments numerically, as in the following example:
 
908
 
 
909
<pre class="example">     $ <kbd>./sample 8 7 5 4 1 3</kbd>
 
910
     1 3 4 5 7 8
 
911
     $ _
 
912
     </pre>
 
913
 
 
914
   <p>However, with certain arguments, this goes wrong:
 
915
 
 
916
<pre class="example">     $ <kbd>./sample 8000 7000 5000 1000 4000</kbd>
 
917
     1000 1913 4000 5000 7000
 
918
     $ _
 
919
     </pre>
 
920
 
 
921
   <p>Although the output is sorted and contains the right number of
 
922
arguments, some arguments are missing and replaced by bogus numbers;
 
923
here, <code>8000</code> is missing and replaced by
 
924
<code>1913</code>.<a rel="footnote" href="#fn-3"><sup>3</sup></a>
 
925
 
 
926
   <p>Let us use <small>DDD</small> to see what is going on.  First, you must compile
 
927
<code>sample.c</code> for debugging (see <a href="#Compiling%20for%20Debugging">Compiling for Debugging</a>), giving
 
928
the <code>-g</code> flag while compiling:
 
929
 
 
930
<pre class="example">     $ <kbd>gcc -g -o sample sample.c</kbd>
 
931
     $ _
 
932
     </pre>
 
933
 
 
934
<ul class="menu">
 
935
<li><a accesskey="1" href="#Sample%20Program">Sample Program</a>:               Source <code>sample.c</code>
 
936
</ul>
 
937
 
 
938
   <p>Now, you can invoke <small>DDD</small> (see <a href="#Invocation">Invocation</a>) on the
 
939
<code>sample</code> executable:
 
940
 
 
941
<pre class="example">     $ <kbd>ddd sample</kbd>
 
942
     </pre>
 
943
 
 
944
   <p>After a few seconds, <small>DDD</small> comes up.  The <dfn>Source Window</dfn>
 
945
contains the source of your debugged program; use the <dfn>Scroll Bar</dfn>
 
946
to scroll through the file.
 
947
 
 
948
<br><p>
 
949
<div align="center"><img src="PICS/tut-invoke.jpg" alt="PICS/tut-invoke.jpg"></div>
 
950
<br><p>
 
951
   <p>The <dfn>Debugger Console</dfn> (at the bottom) contains <small>DDD</small> version
 
952
information as well as a <small>GDB</small> prompt.<a rel="footnote" href="#fn-4"><sup>4</sup></a>
 
953
 
 
954
<pre class="example">     GNU DDD Version 3.3.9-test2, by Dorothea L�tkehaus and Andreas Zeller.
 
955
     Copyright &copy; 1995-1999 Technische Universit�t Braunschweig, Germany.
 
956
     Copyright &copy; 1999-2001 Universit�t Passau, Germany.
 
957
     Copyright &copy; 2001-2004 Universit�t des Saarlandes, Germany.
 
958
     Reading symbols from sample...done.
 
959
     (gdb) _
 
960
     </pre>
 
961
 
 
962
   <p>The first thing to do now is to place a <dfn>Breakpoint</dfn>
 
963
(see <a href="#Breakpoints">Breakpoints</a>), making <code>sample</code> stop at a location you are
 
964
interested in.  Click on the blank space left to the initialization of
 
965
<code>a</code>.  The <dfn>Argument field</dfn> <code>():</code> now contains the location
 
966
(<code>sample.c:31</code>).  Now, click on <code>Break</code> to create a breakpoint
 
967
at the location in <code>()</code>.  You see a little red stop sign appear in
 
968
line 31.
 
969
 
 
970
   <p>The next thing to do is to actually <dfn>execute</dfn> the program, such that
 
971
you can examine its behavior (see <a href="#Running">Running</a>).  Select <code>Program
 
972
=&gt; Run</code> to execute the program; the <code>Run Program</code> dialog
 
973
appears.
 
974
 
 
975
<br><p>
 
976
<div align="center"><img src="PICS/tut-run.jpg" alt="PICS/tut-run.jpg"></div>
 
977
<br><p>
 
978
   <p>In <code>Run with Arguments</code>, you can now enter arguments for the
 
979
<code>sample</code> program.  Enter the arguments resulting in erroneous
 
980
behavior here--that is, <code>8000 7000 5000 1000 4000</code>.  Click on
 
981
<code>Run</code> to start execution with the arguments you just entered.
 
982
 
 
983
   <p><small>GDB</small> now starts <code>sample</code>.  Execution stops after a few moments as
 
984
the breakpoint is reached.  This is reported in the debugger console.
 
985
 
 
986
<pre class="example">     (gdb) break sample.c:31
 
987
     Breakpoint 1 at 0x8048666: file sample.c, line 31.
 
988
     (gdb) run 8000 7000 5000 1000 4000
 
989
     Starting program: sample 8000 7000 5000 1000 4000
 
990
     
 
991
     Breakpoint 1, main (argc=6, argv=0xbffff918) at sample.c:31
 
992
     (gdb) _
 
993
     </pre>
 
994
 
 
995
   <p>The current execution line is indicated by a green arrow.
 
996
 
 
997
<pre class="example">     =&gt; a = (int *)malloc((argc - 1) * sizeof(int));
 
998
     </pre>
 
999
 
 
1000
   <p>You can now examine the variable values.  To examine a simple variable,
 
1001
you can simply move the mouse pointer on its name and leave it there. 
 
1002
After a second, a small window with the variable value pops up
 
1003
(see <a href="#Value%20Tips">Value Tips</a>).  Try this with <code>argc</code> to see its value
 
1004
(<code>6</code>).  The local variable <code>a</code> is not yet initialized; you'll
 
1005
probably see <code>0x0</code> or some other invalid pointer value.
 
1006
 
 
1007
   <p>To execute the current line, click on the <code>Next</code> button on the
 
1008
command tool.  The arrow advances to the following line.  Now, point
 
1009
again on <code>a</code> to see that the value has changed and that <code>a</code>
 
1010
has actually been initialized.
 
1011
 
 
1012
<br><p>
 
1013
<div align="center"><img src="PICS/tut-value.jpg" alt="PICS/tut-value.jpg"></div>
 
1014
<br><p>
 
1015
   <p>To examine the individual values of the <code>a</code> array, enter
 
1016
<code>a[0]</code> in the argument field (you can clear it beforehand by
 
1017
clicking on <code>():</code>) and then click on the <code>Print</code> button.  This
 
1018
prints the current value of <code>()</code> in the debugger console
 
1019
(see <a href="#Printing%20Values">Printing Values</a>).  In our case, you'll get
 
1020
 
 
1021
<pre class="example">     (gdb) print a[0]
 
1022
     $1 = 0
 
1023
     (gdb) _
 
1024
     </pre>
 
1025
 
 
1026
<p>or some other value (note that <code>a</code> has only been allocated, but the
 
1027
contents have not yet been initialized).
 
1028
 
 
1029
   <p>To see all members of <code>a</code> at once, you must use a special <small>GDB</small>
 
1030
operator.  Since <code>a</code> has been allocated dynamically, <small>GDB</small> does not
 
1031
know its size; you must specify it explicitly using the <code>@</code>
 
1032
operator (see <a href="#Array%20Slices">Array Slices</a>).  Enter <code>a[0]@(argc - 1)</code> in the
 
1033
argument field and click on the <code>Print</code> button.  You get the first
 
1034
<code>argc - 1</code> elements of <code>a</code>, or
 
1035
 
 
1036
<pre class="example">     (gdb) print a[0]@(argc - 1)
 
1037
     $2 = {0, 0, 0, 0, 0}
 
1038
     (gdb) _
 
1039
     </pre>
 
1040
 
 
1041
   <p>Rather than using <code>Print</code> at each stop to see the current value of
 
1042
<code>a</code>, you can also <dfn>display</dfn> <code>a</code>, such that its is
 
1043
automatically displayed.  With <code>a[0]@(argc - 1)</code> still being shown
 
1044
in the argument field, click on <code>Display</code>.  The contents of
 
1045
<code>a</code> are now shown in a new window, the <dfn>Data Window</dfn>.  Click on
 
1046
<code>Rotate</code> to rotate the array horizontally.
 
1047
 
 
1048
<br><p>
 
1049
<div align="center"><img src="PICS/tut-display.jpg" alt="PICS/tut-display.jpg"></div>
 
1050
<br><p>
 
1051
   <p>Now comes the assignment of <code>a</code>'s members:
 
1052
 
 
1053
<pre class="example">     =&gt;  for (i = 0; i &lt; argc - 1; i++)
 
1054
             a[i] = atoi(argv[i + 1]);
 
1055
     </pre>
 
1056
 
 
1057
   <p>You can now click on <code>Next</code> and <code>Next</code> again to see how the
 
1058
individual members of <code>a</code> are being assigned.  Changed members are
 
1059
highlighted.
 
1060
 
 
1061
   <p>To resume execution of the loop, use the <code>Until</code> button.  This
 
1062
makes <small>GDB</small> execute the program until a line greater than the current is
 
1063
reached.  Click on <code>Until</code> until you end at the call of
 
1064
<code>shell_sort</code> in
 
1065
 
 
1066
<pre class="example">     =&gt;  shell_sort(a, argc);
 
1067
     </pre>
 
1068
 
 
1069
   <p>At this point, <code>a</code>'s contents should be <code>8000 7000 5000 1000
 
1070
4000</code>.  Click again on <code>Next</code> to step over the call to
 
1071
<code>shell_sort</code>.  <small>DDD</small> ends in
 
1072
 
 
1073
<pre class="example">     =&gt;  for (i = 0; i &lt; argc - 1; i++)
 
1074
             printf("%d ", a[i]);
 
1075
     </pre>
 
1076
 
 
1077
<p>and you see that after <code>shell_sort</code> has finished, the contents of
 
1078
<code>a</code> are <code>1000, 1913, 4000, 5000, 7000</code>--that is,
 
1079
<code>shell_sort</code> has somehow garbled the contents of <code>a</code>.
 
1080
 
 
1081
   <p>To find out what has happened, execute the program once again.  This
 
1082
time, you do not skip through the initialization, but jump directly into
 
1083
the <code>shell_sort</code> call.  Delete the old breakpoint by selecting it
 
1084
and clicking on <code>Clear</code>.  Then, create a new breakpoint in line 35
 
1085
before the call to <code>shell_sort</code>.  To execute the program once
 
1086
again, select <code>Program =&gt; Run Again</code>.
 
1087
 
 
1088
   <p>Once more, <small>DDD</small> ends up before the call to <code>shell_sort</code>:
 
1089
<pre class="example">     =&gt;  shell_sort(a, argc);
 
1090
     </pre>
 
1091
 
 
1092
   <p>This time, you want to examine closer what <code>shell_sort</code> is doing. 
 
1093
Click on <code>Step</code> to step into the call to <code>shell_sort</code>.  This
 
1094
leaves your program in the first executable line, or
 
1095
 
 
1096
<pre class="example">     =&gt; int h = 1;
 
1097
     </pre>
 
1098
 
 
1099
   <p>while the debugger console tells us the function just entered:
 
1100
 
 
1101
<pre class="example">     (gdb) step
 
1102
     shell_sort (a=0x8049878, size=6) at sample.c:9
 
1103
     (gdb) _
 
1104
     </pre>
 
1105
 
 
1106
   <p>This output that shows the function where <code>sample</code> is now suspended
 
1107
(and its arguments) is called a <dfn>stack frame display</dfn>.  It shows a
 
1108
summary of the stack.  You can use <code>Status =&gt; Backtrace</code> to
 
1109
see where you are in the stack as a whole; selecting a line (or clicking
 
1110
on <code>Up</code> and <code>Down</code>) will let you move through the stack.  Note
 
1111
how the <code>a</code> display disappears when its frame is left.
 
1112
 
 
1113
<br><p>
 
1114
<div align="center"><img src="PICS/tut-backtrace.jpg" alt="PICS/tut-backtrace.jpg"></div>
 
1115
<br><p>
 
1116
   <p>Let us now check whether <code>shell_sort</code>'s arguments are correct. 
 
1117
After returning to the lowest frame, enter <code>a[0]@size</code> in the
 
1118
argument field and click on <code>Print</code>:
 
1119
 
 
1120
<pre class="example">     (gdb) print a[0] @ size
 
1121
     $4 = {8000, 7000, 5000, 1000, 4000, 1913}
 
1122
     (gdb) _
 
1123
     </pre>
 
1124
 
 
1125
   <p>Surprise!  Where does this additional value <code>1913</code> come from?  The
 
1126
answer is simple: The array size as passed in <code>size</code> to
 
1127
<code>shell_sort</code> is <em>too large by one</em>--<code>1913</code> is a bogus
 
1128
value which happens to reside in memory after <code>a</code>.  And this last
 
1129
value is being sorted in as well.
 
1130
 
 
1131
   <p>To see whether this is actually the problem cause, you can now assign
 
1132
the correct value to <code>size</code> (see <a href="#Assignment">Assignment</a>).  Select
 
1133
<code>size</code> in the source code and click on <code>Set</code>.  A dialog pops
 
1134
up where you can edit the variable value.
 
1135
 
 
1136
<br><p>
 
1137
<div align="center"><img src="PICS/tut-set.jpg" alt="PICS/tut-set.jpg"></div>
 
1138
<br><p>
 
1139
   <p>Change the value of <code>size</code> to <code>5</code> and click on <code>OK</code>. 
 
1140
Then, click on <code>Finish</code> to resume execution of the
 
1141
<code>shell_sort</code> function:
 
1142
 
 
1143
<pre class="example">     (gdb) set variable size = 5
 
1144
     (gdb) finish
 
1145
     Run till exit from #0  shell_sort (a=0x8049878, size=5) at sample.c:9
 
1146
     0x80486ed in main (argc=6, argv=0xbffff918) at sample.c:35
 
1147
     (gdb) _
 
1148
     </pre>
 
1149
 
 
1150
   <p>Success!  The <code>a</code> display now contains the correct values
 
1151
<code>1000, 4000, 5000, 7000, 8000</code>.
 
1152
 
 
1153
<br><p>
 
1154
<div align="center"><img src="PICS/tut-finish.jpg" alt="PICS/tut-finish.jpg"></div>
 
1155
<br><p>
 
1156
   <p>You can verify that these values are actually printed to standard output
 
1157
by further executing the program.  Click on <code>Cont</code> to continue
 
1158
execution.
 
1159
 
 
1160
<pre class="example">     (gdb) cont
 
1161
     1000 4000 5000 7000 8000
 
1162
     
 
1163
     Program exited normally.
 
1164
     (gdb) _
 
1165
     </pre>
 
1166
 
 
1167
   <p>The message <code>Program exited normally.</code> is from <small>GDB</small>; it indicates
 
1168
that the <code>sample</code> program has finished executing.
 
1169
 
 
1170
   <p>Having found the problem cause, you can now fix the source code.  Click
 
1171
on <code>Edit</code> to edit <code>sample.c</code>, and change the line
 
1172
 
 
1173
<pre class="example">     shell_sort(a, argc);
 
1174
     </pre>
 
1175
 
 
1176
<p>to the correct invocation
 
1177
 
 
1178
<pre class="example">     shell_sort(a, argc - 1);
 
1179
     </pre>
 
1180
 
 
1181
   <p>You can now recompile <code>sample</code>
 
1182
 
 
1183
<pre class="example">     $ <kbd>gcc -g -o sample sample.c</kbd>
 
1184
     $ _
 
1185
     </pre>
 
1186
 
 
1187
<p>and verify (via <code>Program =&gt; Run Again</code>) that <code>sample</code>
 
1188
works fine now.
 
1189
 
 
1190
<pre class="example">     (gdb) run
 
1191
     `sample' has changed; re-reading symbols.
 
1192
     Reading in symbols...done.
 
1193
     Starting program: sample 8000 7000 5000 1000 4000
 
1194
     1000 4000 5000 7000 8000
 
1195
     
 
1196
     Program exited normally.
 
1197
     (gdb) _
 
1198
     </pre>
 
1199
 
 
1200
   <p>All is done; the program works fine now.  You can end this <small>DDD</small>
 
1201
session with <code>Program =&gt; Exit</code> or <kbd>Ctrl+Q</kbd>.
 
1202
 
 
1203
<div class="node">
 
1204
<p><hr>
 
1205
<small class=header>
 
1206
Node:<a name="Sample%20Program">Sample Program</a>,
 
1207
Up:<a rel="up" accesskey="u" href="#Sample%20Session">Sample Session</a>
 
1208
</small>
 
1209
 
 
1210
<br>
 
1211
</div>
 
1212
 
 
1213
<h3 class="section">Sample Program</h3>
 
1214
 
 
1215
   <p>Here's the source <code>sample.c</code> of the sample program.
 
1216
 
 
1217
<pre class="smallexample">     /* sample.c -- Sample C program to be debugged with <small>DDD</small> */
 
1218
     
 
1219
     #include &lt;stdio.h&gt;
 
1220
     #include &lt;stdlib.h&gt;
 
1221
     
 
1222
     static void shell_sort(int a[], int size)
 
1223
     {
 
1224
         int i, j;
 
1225
         int h = 1;
 
1226
         do {
 
1227
             h = h * 3 + 1;
 
1228
         } while (h &lt;= size);
 
1229
         do {
 
1230
             h /= 3;
 
1231
             for (i = h; i &lt; size; i++)
 
1232
             {
 
1233
                 int v = a[i];
 
1234
                 for (j = i; j &gt;= h &amp;&amp; a[j - h] &gt; v; j -= h)
 
1235
                     a[j] = a[j - h];
 
1236
                 if (i != j)
 
1237
                     a[j] = v;
 
1238
             }
 
1239
         } while (h != 1);
 
1240
     }
 
1241
     
 
1242
     int main(int argc, char *argv[])
 
1243
     {
 
1244
         int *a;
 
1245
         int i;
 
1246
     
 
1247
         a = (int *)malloc((argc - 1) * sizeof(int));
 
1248
         for (i = 0; i &lt; argc - 1; i++)
 
1249
             a[i] = atoi(argv[i + 1]);
 
1250
     
 
1251
         shell_sort(a, argc);
 
1252
     
 
1253
         for (i = 0; i &lt; argc - 1; i++)
 
1254
             printf("%d ", a[i]);
 
1255
         printf("\n");
 
1256
     
 
1257
         free(a);
 
1258
         return 0;
 
1259
     }
 
1260
     </pre>
 
1261
 
 
1262
<div class="node">
 
1263
<p><hr>
 
1264
<small class=header>
 
1265
Node:<a name="Invocation">Invocation</a>,
 
1266
Next:<a rel="next" accesskey="n" href="#Windows">Windows</a>,
 
1267
Previous:<a rel="previous" accesskey="p" href="#Sample%20Session">Sample Session</a>,
 
1268
Up:<a rel="up" accesskey="u" href="#Top">Top</a>
 
1269
</small>
 
1270
 
 
1271
<br>
 
1272
</div>
 
1273
 
 
1274
<h2 class="chapter">Getting In and Out of DDD</h2>
 
1275
 
 
1276
   <p>This chapter discusses how to start <small>DDD</small>, and how to get out of it. 
 
1277
The essentials are:
 
1278
 
 
1279
     <ul>
 
1280
<li>Type <code>ddd</code> to start <small>DDD</small> (see <a href="#Invoking">Invoking</a>). 
 
1281
<li>Use <code>File =&gt; Exit</code> or <kbd>Ctrl+Q</kbd> to exit (see <a href="#Quitting">Quitting</a>). 
 
1282
</ul>
 
1283
 
 
1284
<ul class="menu">
 
1285
<li><a accesskey="1" href="#Invoking">Invoking</a>:                     How to invoke <small>DDD</small>. 
 
1286
<li><a accesskey="2" href="#Quitting">Quitting</a>:                     How to quit <small>DDD</small>. 
 
1287
<li><a accesskey="3" href="#Sessions">Sessions</a>:                     Saving work across invocations. 
 
1288
<li><a accesskey="4" href="#Remote%20Debugging">Remote Debugging</a>:             Running <small>DDD</small> on a different host. 
 
1289
<li><a accesskey="5" href="#Customizing%20Debugger%20Interaction">Customizing Debugger Interaction</a>:   How <small>DDD</small> and <small>GDB</small> communicate. 
 
1290
</ul>
 
1291
 
 
1292
<div class="node">
 
1293
<p><hr>
 
1294
<small class=header>
 
1295
Node:<a name="Invoking">Invoking</a>,
 
1296
Next:<a rel="next" accesskey="n" href="#Quitting">Quitting</a>,
 
1297
Up:<a rel="up" accesskey="u" href="#Invocation">Invocation</a>
 
1298
</small>
 
1299
 
 
1300
<br>
 
1301
</div>
 
1302
 
 
1303
<h3 class="section">Invoking DDD</h3>
 
1304
 
 
1305
   <p>Normally, you can run <small>DDD</small> by invoking the program
 
1306
<code>ddd</code>.
 
1307
 
 
1308
   <p>You can also run <small>DDD</small> with a variety of arguments and options, to
 
1309
specify more of your debugging environment at the outset.
 
1310
 
 
1311
   <p>The most usual way to start <small>DDD</small> is with one argument, specifying
 
1312
an executable program:
 
1313
 
 
1314
<pre class="example">     ddd <var>program</var>
 
1315
     </pre>
 
1316
 
 
1317
<p>If you use <small>GDB</small>, <small>DBX</small>, Ladebug, or <small>XDB</small> as inferior debuggers, you can also
 
1318
start with both an executable program and a core file specified:
 
1319
 
 
1320
<pre class="example">     ddd <var>program</var> <var>core</var>
 
1321
     </pre>
 
1322
 
 
1323
   <p>You can, instead, specify a process ID as a second argument, if you want
 
1324
to debug a running process:
 
1325
 
 
1326
<pre class="example">     ddd <var>program</var> 1234
 
1327
     </pre>
 
1328
 
 
1329
<p>would attach <small>DDD</small> to process <code>1234</code> (unless you also have a file
 
1330
named <code>1234</code>; <small>DDD</small> does check for a core file first).
 
1331
 
 
1332
   <p>You can further control <small>DDD</small> by invoking it with specific
 
1333
<dfn>options</dfn>.  To get a list of <small>DDD</small> options, invoke <small>DDD</small>
 
1334
as
 
1335
 
 
1336
<pre class="example">     ddd --help
 
1337
     </pre>
 
1338
 
 
1339
   <p>Most important are the options to specify the inferior debugger
 
1340
(see <a href="#Choosing%20an%20Inferior%20Debugger">Choosing an Inferior Debugger</a>), but you can also customize
 
1341
several aspects of <small>DDD</small> upon invocation (see <a href="#Options">Options</a>).
 
1342
 
 
1343
   <p><small>DDD</small> also understands the usual X options such as <code>-display</code>
 
1344
or <code>-geometry</code>.  See <a href="#X%20Options">X Options</a>, for details.
 
1345
 
 
1346
   <p>All arguments and options that are not understood by <small>DDD</small> are
 
1347
passed to the inferior debugger; See <a href="#Inferior%20Debugger%20Options">Inferior Debugger Options</a>, for a
 
1348
survey.  To pass an option to the inferior debugger that conflicts with
 
1349
an X option, or with a <small>DDD</small> option listed here, use the
 
1350
<code>--debugger</code> option (see <a href="#Options">Options</a>).
 
1351
 
 
1352
<ul class="menu">
 
1353
<li><a accesskey="1" href="#Choosing%20an%20Inferior%20Debugger">Choosing an Inferior Debugger</a>:   Which debugger to use? 
 
1354
<li><a accesskey="2" href="#Options">Options</a>:                      How to invoke <small>DDD</small>
 
1355
<li><a accesskey="3" href="#X%20Options">X Options</a>:                    Setting X properties
 
1356
<li><a accesskey="4" href="#Inferior%20Debugger%20Options">Inferior Debugger Options</a>:    Customizing <small>GDB</small>, <small>DBX</small>, and so on
 
1357
<li><a accesskey="5" href="#Multiple%20Instances">Multiple Instances</a>:           Running multiple <small>DDD</small> instances
 
1358
<li><a accesskey="6" href="#X%20Warnings">X Warnings</a>:                   Turning off obnoxious warnings
 
1359
</ul>
 
1360
 
 
1361
<div class="node">
 
1362
<p><hr>
 
1363
<small class=header>
 
1364
Node:<a name="Choosing%20an%20Inferior%20Debugger">Choosing an Inferior Debugger</a>,
 
1365
Next:<a rel="next" accesskey="n" href="#Options">Options</a>,
 
1366
Up:<a rel="up" accesskey="u" href="#Invoking">Invoking</a>
 
1367
</small>
 
1368
 
 
1369
<br>
 
1370
</div>
 
1371
 
 
1372
<h4 class="subsection">Choosing an Inferior Debugger</h4>
 
1373
 
 
1374
   <p>The most frequently required options are those to choose a specific
 
1375
inferior debugger.
 
1376
 
 
1377
   <p>Normally, the inferior debugger is determined by the program to analyze:
 
1378
 
 
1379
     <ul>
 
1380
<li>If the program requires a specific interpreter, such as Java, Python,
 
1381
Perl or Bash, then you should use a <small>JDB</small>, <small>PYDB</small>, Perl, or Bash
 
1382
inferior debugger.
 
1383
 
 
1384
     <p>Use
 
1385
 
 
1386
     <pre class="example">          ddd --jdb <var>program</var>
 
1387
          </pre>
 
1388
 
 
1389
     <pre class="example">          ddd --pydb <var>program</var>
 
1390
          </pre>
 
1391
 
 
1392
     <pre class="example">          ddd --perl <var>program</var>
 
1393
          </pre>
 
1394
 
 
1395
     <pre class="example">          ddd --bash <var>program</var>
 
1396
          ddd --interpreter='<em>path-to-debugger-bash</em> --debugger' <var>program</var>
 
1397
          </pre>
 
1398
 
 
1399
     <p>to run <small>DDD</small> with <small>JDB</small>, <small>PYDB</small>, Perl, or Bash as an inferior
 
1400
debugger.
 
1401
 
 
1402
     </p><li>If the program is an executable binary, you should use <small>GDB</small>, <small>DBX</small>,
 
1403
Ladebug, or <small>XDB</small>.  In general, <small>GDB</small> (or its HP variant, <small>WDB</small>)
 
1404
provides the most functionality of these debuggers.
 
1405
 
 
1406
     <p>Use
 
1407
 
 
1408
     <pre class="example">          ddd --gdb <var>program</var>
 
1409
          </pre>
 
1410
 
 
1411
     <pre class="example">          ddd --wdb <var>program</var>
 
1412
          </pre>
 
1413
 
 
1414
     <pre class="example">          ddd --dbx <var>program</var>
 
1415
          </pre>
 
1416
 
 
1417
     <pre class="example">          ddd --ladebug <var>program</var>
 
1418
          </pre>
 
1419
 
 
1420
     <pre class="example">          ddd --xdb <var>program</var>
 
1421
          </pre>
 
1422
 
 
1423
     <p>to run <small>DDD</small> with <small>GDB</small>, <small>WDB</small>, <small>DBX</small>, Ladebug, or <small>XDB</small> as
 
1424
inferior debugger. 
 
1425
</ul>
 
1426
 
 
1427
   <p>If you invoke <small>DDD</small> without any of these options, but give a
 
1428
<var>program</var> to analyze, then <small>DDD</small> will automatically determine
 
1429
the inferior debugger:
 
1430
 
 
1431
     <ul>
 
1432
<li>If <var>program</var> is a Python program, a Perl script, or a Java class,
 
1433
<small>DDD</small> will invoke the appropriate debugger.
 
1434
 
 
1435
     <li>If <var>program</var> is an executable binary, <small>DDD</small> will invoke its
 
1436
default debugger for executables (usually <small>GDB</small>). 
 
1437
</ul>
 
1438
 
 
1439
   <p>See <a href="#Customizing%20Debugger%20Interaction">Customizing Debugger Interaction</a>, for more details on determining
 
1440
the inferior debugger.
 
1441
 
 
1442
<div class="node">
 
1443
<p><hr>
 
1444
<small class=header>
 
1445
Node:<a name="Options">Options</a>,
 
1446
Next:<a rel="next" accesskey="n" href="#X%20Options">X Options</a>,
 
1447
Previous:<a rel="previous" accesskey="p" href="#Choosing%20an%20Inferior%20Debugger">Choosing an Inferior Debugger</a>,
 
1448
Up:<a rel="up" accesskey="u" href="#Invoking">Invoking</a>
 
1449
</small>
 
1450
 
 
1451
<br>
 
1452
</div>
 
1453
 
 
1454
<h4 class="subsection">DDD Options</h4>
 
1455
 
 
1456
   <p>You can further control how <small>DDD</small> starts up using the following
 
1457
options.  All options may be abbreviated, as long as they are
 
1458
unambiguous; single dashes <code>-</code> instead of double dashes <code>--</code>
 
1459
may also be used.  Almost all options control a specific <small>DDD</small>
 
1460
resource or resource class (see <a href="#Customizing">Customizing</a>).
 
1461
 
 
1462
     <dl>
 
1463
<dt><code>--attach-windows</code>
 
1464
     <dd>Attach the source and data windows to the debugger console, creating
 
1465
one single big <small>DDD</small> window.  This is the default setting.
 
1466
 
 
1467
     <p>Giving this option is equivalent to setting the <small>DDD</small>
 
1468
<code>Separate</code> resource class to <code>off</code>.  See <a href="#Window%20Layout">Window Layout</a>, for
 
1469
details.
 
1470
 
 
1471
     <br><dt><code>--attach-source-window</code>
 
1472
     <dd>Attach only the source window to the debugger console.
 
1473
 
 
1474
     <p>Giving this option is equivalent to setting the <small>DDD</small>
 
1475
<code>separateSourceWindow</code> resource to <code>off</code>. 
 
1476
See <a href="#Window%20Layout">Window Layout</a>, for details.
 
1477
 
 
1478
     <br><dt><code>--attach-data-window</code>
 
1479
     <dd>Attach only the source window to the debugger console.
 
1480
 
 
1481
     <p>Giving this option is equivalent to setting the <small>DDD</small>
 
1482
<code>separateDataWindow</code> resource to <code>off</code>.  See <a href="#Window%20Layout">Window Layout</a>,
 
1483
for details.
 
1484
 
 
1485
     <br><dt><code>--automatic-debugger</code>
 
1486
     <dd>Determine the inferior debugger automatically from the given arguments.
 
1487
 
 
1488
     <p>Giving this option is equivalent to setting the <small>DDD</small>
 
1489
<code>autoDebugger</code> resource to <code>on</code>. 
 
1490
See <a href="#Customizing%20Debugger%20Interaction">Customizing Debugger Interaction</a>, for details.
 
1491
 
 
1492
     <br><dt><code>--button-tips</code>
 
1493
     <dd>Enable button tips.
 
1494
 
 
1495
     <p>Giving this option is equivalent to setting the <small>DDD</small>
 
1496
<code>buttonTips</code> resource to <code>on</code>.  See <a href="#Customizing%20Help">Customizing Help</a>, for
 
1497
details.
 
1498
 
 
1499
     <br><dt><code>--configuration</code>
 
1500
     <dd>Print the <small>DDD</small> configuration settings on standard output and
 
1501
exit.
 
1502
 
 
1503
     <p>Giving this option is equivalent to setting the <small>DDD</small>
 
1504
<code>showConfiguration</code> resource to <code>on</code>.  See <a href="#Diagnostics">Diagnostics</a>, for
 
1505
details.
 
1506
 
 
1507
     <br><dt><code>--check-configuration</code>
 
1508
     <dd>Check the <small>DDD</small> environment (in particular, the X configuration),
 
1509
report any possible problem causes and exit.
 
1510
 
 
1511
     <p>Giving this option is equivalent to setting the <small>DDD</small>
 
1512
<code>checkConfiguration</code> resource to <code>on</code>.  See <a href="#Diagnostics">Diagnostics</a>,
 
1513
for details.
 
1514
 
 
1515
     <br><dt><code>--data-window</code>
 
1516
     <dd>Open the data window upon start-up.
 
1517
 
 
1518
     <p>Giving this option is equivalent to setting the <small>DDD</small>
 
1519
<code>openDataWindow</code> resource to <code>on</code>.  See <a href="#Toggling%20Windows">Toggling Windows</a>,
 
1520
for details.
 
1521
 
 
1522
     <br><dt><code>--dbx</code>
 
1523
     <dd>Run <small>DBX</small> as inferior debugger.
 
1524
 
 
1525
     <p>Giving this option is equivalent to setting the <small>DDD</small>
 
1526
<code>debugger</code> resource to <code>dbx</code>. 
 
1527
See <a href="#Customizing%20Debugger%20Interaction">Customizing Debugger Interaction</a>, for details.
 
1528
 
 
1529
     <br><dt><code>--debugger </code><var>name</var><code></code>
 
1530
     <dd>Invoke the inferior debugger <var>name</var>.  This is useful if you have
 
1531
several debugger versions around, or if the inferior debugger cannot be
 
1532
invoked under its usual name (i.e. <code>gdb</code>, <code>wdb</code>,
 
1533
<code>dbx</code>, <code>xdb</code>, <code>jdb</code>, <code>pydb</code>, or
 
1534
<code>perl</code>).
 
1535
 
 
1536
     <p>This option can also be used to pass options to the inferior debugger
 
1537
that would otherwise conflict with <small>DDD</small> options.  For instance,
 
1538
to pass the option <code>-d </code><var>directory</var><code></code> to <small>XDB</small>, use:
 
1539
 
 
1540
     <pre class="example">          ddd --debugger "xdb -d <var>directory</var>"
 
1541
          </pre>
 
1542
 
 
1543
     <p>If you use the <code>--debugger</code> option, be sure that the type of
 
1544
inferior debugger is specified as well.  That is, use one of the options
 
1545
<code>--gdb</code>, <code>--dbx</code>, <code>--xdb</code>, <code>--jdb</code>,
 
1546
<code>--pydb</code>, or <code>--perl</code> (unless the default setting works
 
1547
fine).
 
1548
 
 
1549
     <p>Giving this option is equivalent to setting the <small>DDD</small>
 
1550
<code>debuggerCommand</code> resource to <var>name</var>.  See <a href="#Customizing%20Debugger%20Interaction">Customizing Debugger Interaction</a>, for details.
 
1551
 
 
1552
     <br><dt><code>--debugger-console</code>
 
1553
     <dd>Open the debugger console upon start-up.
 
1554
 
 
1555
     <p>Giving this option is equivalent to setting the <small>DDD</small>
 
1556
<code>openDebuggerConsole</code> resource to <code>on</code>.  See <a href="#Toggling%20Windows">Toggling Windows</a>, for details.
 
1557
 
 
1558
     <br><dt><code>--disassemble</code>
 
1559
     <dd>Disassemble the source code.  See also the <code>--no-disassemble</code>
 
1560
option, below.
 
1561
 
 
1562
     <p>Giving this option is equivalent to setting the <small>DDD</small>
 
1563
<code>disassemble</code> resource to <code>on</code>.  See <a href="#Customizing%20Source">Customizing Source</a>,
 
1564
for details.
 
1565
 
 
1566
     <br><dt><code>--exec-window</code>
 
1567
     <dd>Run the debugged program in a specially created execution window.  This
 
1568
is useful for programs that have special terminal requirements not
 
1569
provided by the debugger window, as raw keyboard processing or terminal
 
1570
control sequences.  See <a href="#Using%20the%20Execution%20Window">Using the Execution Window</a>, for details.
 
1571
 
 
1572
     <p>Giving this option is equivalent to setting the <small>DDD</small>
 
1573
<code>separateExecWindow</code> resource to <code>on</code>.  See <a href="#Customizing%20the%20Execution%20Window">Customizing the Execution Window</a>, for details.
 
1574
 
 
1575
     <br><dt><code>--font </code><var>fontname</var><code></code>
 
1576
     <dd><dt><code>-fn </code><var>fontname</var><code></code>
 
1577
     <dd>Use <var>fontname</var> as default font.
 
1578
 
 
1579
     <p>Giving this option is equivalent to setting the <small>DDD</small>
 
1580
<code>defaultFont</code> resource to <code>fontname</code>.  See <a href="#Customizing%20Fonts">Customizing Fonts</a>, for details.
 
1581
 
 
1582
     <br><dt><code>--fonts</code>
 
1583
     <dd>Show the font definitions used by <small>DDD</small> on standard output.
 
1584
 
 
1585
     <p>Giving this option is equivalent to setting the <small>DDD</small>
 
1586
<code>showFonts</code> resource to <code>on</code>.  See <a href="#Diagnostics">Diagnostics</a>, for
 
1587
details.
 
1588
 
 
1589
     <br><dt><code>--fontsize </code><var>size</var><code></code>
 
1590
     <dd>Set the default font size to <var>size</var> (in 1/10 points).  To make
 
1591
<small>DDD</small> use 12-point fonts, say <code>--fontsize 120</code>.
 
1592
 
 
1593
     <p>Giving this option is equivalent to setting the <small>DDD</small>
 
1594
<code>FontSize</code> resource class to <code>size</code>.  See <a href="#Customizing%20Fonts">Customizing Fonts</a>, for details.
 
1595
 
 
1596
     <br><dt><code>--fullname</code>
 
1597
     <dd><dt><code>-f</code>
 
1598
     <dd>Enable the <small>TTY</small> interface, taking additional debugger commands from
 
1599
standard input and forwarding debugger output on standard output. 
 
1600
Current positions are issued in <small>GDB</small> <code>-fullname</code> format
 
1601
suitable for debugger front-ends.  By default, both the debugger console
 
1602
and source window are disabled.  See <a href="#TTY%20mode">TTY mode</a>, for a discussion.
 
1603
 
 
1604
     <p>Giving this option is equivalent to setting the <small>DDD</small>
 
1605
<code>TTYMode</code> resource class to <code>on</code>.  See <a href="#TTY%20mode">TTY mode</a>, for
 
1606
details.
 
1607
 
 
1608
     <br><dt><code>--gdb</code>
 
1609
     <dd>Run <small>GDB</small> as inferior debugger.
 
1610
 
 
1611
     <p>Giving this option is equivalent to setting the <small>DDD</small>
 
1612
<code>debugger</code> resource to <code>gdb</code>.  See <a href="#Customizing%20Debugger%20Interaction">Customizing Debugger Interaction</a>,
 
1613
for details.
 
1614
 
 
1615
     <br><dt><code>--glyphs</code>
 
1616
     <dd>Display the current execution position and breakpoints as glyphs.  See
 
1617
also the <code>--no-glyphs</code> option, below.
 
1618
 
 
1619
     <p>Giving this option is equivalent to setting the <small>DDD</small>
 
1620
<code>displayGlyphs</code> resource to <code>on</code>.  See <a href="#Customizing%20Source">Customizing Source</a>,
 
1621
for details.
 
1622
 
 
1623
     <br><dt><code>--help</code>
 
1624
     <dd><dt><code>-h</code>
 
1625
     <dd><dt><code>-?</code>
 
1626
     <dd>Give a list of frequently used options.  Show options of the inferior
 
1627
debugger as well.
 
1628
 
 
1629
     <p>Giving this option is equivalent to setting the <small>DDD</small>
 
1630
<code>showInvocation</code> resource to <code>on</code>.  See <a href="#Diagnostics">Diagnostics</a>, for
 
1631
details.
 
1632
 
 
1633
     <br><dt><code>--host </code><var>hostname</var><code></code>
 
1634
     <dd><dt><code>--host </code><var>username</var><code>@</code><var>hostname</var><code></code>
 
1635
     <dd>Invoke the inferior debugger directly on the remote host <var>hostname</var>. 
 
1636
If <var>username</var> is given and the <code>--login</code> option is not used,
 
1637
use <var>username</var> as remote user name.  See <a href="#Remote%20Debugger">Remote Debugger</a>, for
 
1638
details.
 
1639
 
 
1640
     <p>Giving this option is equivalent to setting the <small>DDD</small>
 
1641
<code>debuggerHost</code> resource to <var>hostname</var>.  See <a href="#Remote%20Debugger">Remote Debugger</a>,
 
1642
for details.
 
1643
 
 
1644
     <br><dt><code>--jdb</code>
 
1645
     <dd>Run <small>JDB</small> as inferior debugger.
 
1646
 
 
1647
     <p>Giving this option is equivalent to setting the <small>DDD</small>
 
1648
<code>debugger</code> resource to <code>gdb</code>.  See <a href="#Customizing%20Debugger%20Interaction">Customizing Debugger Interaction</a>,
 
1649
for details.
 
1650
 
 
1651
     <br><dt><code>--ladebug</code>
 
1652
     <dd>Run Ladebug as inferior debugger.
 
1653
 
 
1654
     <p>Giving this option is equivalent to setting the <small>DDD</small>
 
1655
<code>debugger</code> resource to <code>ladebug</code>.  See <a href="#Customizing%20Debugger%20Interaction">Customizing Debugger Interaction</a>, for details.
 
1656
 
 
1657
     <br><dt><code>--lesstif-hacks</code>
 
1658
     <dd>Equivalent to <code>--lesstif-version 999</code>.  Deprecated.
 
1659
 
 
1660
     <p>Giving this option is equivalent to setting the <small>DDD</small>
 
1661
<code>lessTifVersion</code> resource to <code>999</code>.  See <a href="#LessTif">LessTif</a>, for
 
1662
details.
 
1663
 
 
1664
     <br><dt><code>--lesstif-version </code><var>version</var><code></code>
 
1665
     <dd>Enable some hacks to make <small>DDD</small> run properly with LessTif. 
 
1666
See <a href="#LessTif">LessTif</a>, for a discussion.
 
1667
 
 
1668
     <p>Giving this option is equivalent to setting the <small>DDD</small>
 
1669
<code>lessTifVersion</code> resource to <var>version</var>.  See <a href="#LessTif">LessTif</a>, for
 
1670
details.
 
1671
 
 
1672
     <br><dt><code>--license</code>
 
1673
     <dd>Print the <small>DDD</small> license on standard output and exit.
 
1674
 
 
1675
     <p>Giving this option is equivalent to setting the <small>DDD</small>
 
1676
<code>showLicense</code> resource to <var>on</var>.  See <a href="#Diagnostics">Diagnostics</a>, for
 
1677
details.
 
1678
 
 
1679
     <br><dt><code>--login </code><var>username</var><code></code>
 
1680
     <dd><dt><code>-l </code><var>username</var><code></code>
 
1681
     <dd>Use <var>username</var> as remote user name.  See <a href="#Remote%20Debugger">Remote Debugger</a>, for details.
 
1682
 
 
1683
     <p>Giving this option is equivalent to setting the <small>DDD</small>
 
1684
<code>debuggerHostLogin</code> resource to <var>username</var>.  See <a href="#Remote%20Debugger">Remote Debugger</a>, for details.
 
1685
 
 
1686
     <br><dt><code>--maintenance</code>
 
1687
     <dd>Enable the top-level <code>Maintenance</code> menu with options for debugging
 
1688
<small>DDD</small>.  See <a href="#Maintenance%20Menu">Maintenance Menu</a>, for details.
 
1689
 
 
1690
     <p>Giving this option is equivalent to setting the <small>DDD</small>
 
1691
<code>maintenance</code> resource to <var>on</var>.  See <a href="#Maintenance%20Menu">Maintenance Menu</a>, for
 
1692
details.
 
1693
 
 
1694
     <br><dt><code>--manual</code>
 
1695
     <dd>Print the <small>DDD</small> manual on standard output and exit.
 
1696
 
 
1697
     <p>Giving this option is equivalent to setting the <small>DDD</small>
 
1698
<code>showManual</code> resource to <var>on</var>.  See <a href="#Diagnostics">Diagnostics</a>, for
 
1699
details.
 
1700
 
 
1701
     <br><dt><code>--news</code>
 
1702
     <dd>Print the <small>DDD</small> news on standard output and exit.
 
1703
 
 
1704
     <p>Giving this option is equivalent to setting the <small>DDD</small>
 
1705
<code>showNews</code> resource to <var>on</var>.  See <a href="#Diagnostics">Diagnostics</a>, for details.
 
1706
 
 
1707
     <br><dt><code>--no-button-tips</code>
 
1708
     <dd>Disable button tips.
 
1709
 
 
1710
     <p>Giving this option is equivalent to setting the <small>DDD</small>
 
1711
<code>buttonTips</code> resource to <code>off</code>.  See <a href="#Customizing%20Help">Customizing Help</a>, for
 
1712
details.
 
1713
 
 
1714
     <br><dt><code>--no-data-window</code>
 
1715
     <dd>Do not open the data window upon start-up.
 
1716
 
 
1717
     <p>Giving this option is equivalent to setting the <small>DDD</small>
 
1718
<code>openDataWindow</code> resource to <code>off</code>.  See <a href="#Toggling%20Windows">Toggling Windows</a>,
 
1719
for details.
 
1720
 
 
1721
     <br><dt><code>--no-debugger-console</code>
 
1722
     <dd>Do not open the debugger console upon start-up.
 
1723
 
 
1724
     <p>Giving this option is equivalent to setting the <small>DDD</small>
 
1725
<code>openDebuggerConsole</code> resource to <code>off</code>.  See <a href="#Toggling%20Windows">Toggling Windows</a>, for details.
 
1726
 
 
1727
     <br><dt><code>--no-disassemble</code>
 
1728
     <dd>Do not disassemble the source code.
 
1729
 
 
1730
     <p>Giving this option is equivalent to setting the <small>DDD</small>
 
1731
<code>disassemble</code> resource to <code>off</code>.  See <a href="#Customizing%20Source">Customizing Source</a>,
 
1732
for details.
 
1733
 
 
1734
     <br><dt><code>--no-exec-window</code>
 
1735
     <dd>Do not run the debugged program in a specially created execution window;
 
1736
use the debugger console instead.  Useful for programs that have little
 
1737
terminal input/output, or for remote debugging.  See <a href="#Using%20the%20Execution%20Window">Using the Execution Window</a>, for details.
 
1738
 
 
1739
     <p>Giving this option is equivalent to setting the <small>DDD</small>
 
1740
<code>separateExecWindow</code> resource to <code>off</code>.  See <a href="#Customizing%20the%20Execution%20Window">Customizing the Execution Window</a>, for details.
 
1741
 
 
1742
     <br><dt><code>--no-glyphs</code>
 
1743
     <dd>Do not use glyphs; display the current execution position and
 
1744
breakpoints as text characters.
 
1745
 
 
1746
     <p>Giving this option is equivalent to setting the <small>DDD</small>
 
1747
<code>displayGlyphs</code> resource to <code>off</code>.  See <a href="#Customizing%20Source">Customizing Source</a>,
 
1748
for details.
 
1749
 
 
1750
     <br><dt><code>--no-lesstif-hacks</code>
 
1751
     <dd>Equivalent to <code>--lesstif-version 1000</code>.  Deprecated.
 
1752
 
 
1753
     <p>Giving this option is equivalent to setting the <small>DDD</small>
 
1754
<code>lessTifVersion</code> resource to <code>1000</code>.  See <a href="#LessTif">LessTif</a>, for
 
1755
details.
 
1756
 
 
1757
     <br><dt><code>--no-maintenance</code>
 
1758
     <dd>Do not enable the top-level <code>Maintenance</code> menu with options for
 
1759
debugging <small>DDD</small>.  This is the default.  See <a href="#Maintenance%20Menu">Maintenance Menu</a>,
 
1760
for details.
 
1761
 
 
1762
     <p>Giving this option is equivalent to setting the <small>DDD</small>
 
1763
<code>maintenance</code> resource to <var>off</var>.  See <a href="#Maintenance%20Menu">Maintenance Menu</a>, for
 
1764
details.
 
1765
 
 
1766
     <br><dt><code>--no-source-window</code>
 
1767
     <dd>Do not open the source window upon start-up.
 
1768
 
 
1769
     <p>Giving this option is equivalent to setting the <small>DDD</small>
 
1770
<code>openSourceWindow</code> resource to <code>off</code>.  See <a href="#Toggling%20Windows">Toggling Windows</a>, for details.
 
1771
 
 
1772
     <br><dt><code>--no-value-tips</code>
 
1773
     <dd>Disable value tips.
 
1774
 
 
1775
     <p>Giving this option is equivalent to setting the <small>DDD</small>
 
1776
<code>valueTips</code> resource to <code>off</code>.  See <a href="#Value%20Tips">Value Tips</a>, for
 
1777
details.
 
1778
 
 
1779
     <br><dt><code>--nw</code>
 
1780
     <dd>Do not use the X window interface.  Start the inferior debugger on
 
1781
the local host.
 
1782
 
 
1783
     <br><dt><code>--perl</code>
 
1784
     <dd>Run Perl as inferior debugger.
 
1785
 
 
1786
     <p>Giving this option is equivalent to setting the <small>DDD</small>
 
1787
<code>debugger</code> resource to <code>perl</code>.  See <a href="#Customizing%20Debugger%20Interaction">Customizing Debugger Interaction</a>,
 
1788
for details.
 
1789
 
 
1790
     <br><dt><code>--pydb</code>
 
1791
     <dd>Run <small>PYDB</small> as inferior debugger.
 
1792
 
 
1793
     <p>Giving this option is equivalent to setting the <small>DDD</small>
 
1794
<code>debugger</code> resource to <code>pydb</code>.  See <a href="#Customizing%20Debugger%20Interaction">Customizing Debugger Interaction</a>,
 
1795
for details.
 
1796
 
 
1797
     <br><dt><code>--panned-graph-editor</code>
 
1798
     <dd>Use an Athena panner to scroll the data window.  Most people prefer
 
1799
panners on scroll bars, since panners allow two-dimensional scrolling. 
 
1800
However, the panner is off by default, since some M*tif implementations
 
1801
do not work well with Athena widgets.  See <a href="#Display%20Resources">Display Resources</a>, for
 
1802
details; see also <code>--scrolled-graph-editor</code>, below.
 
1803
 
 
1804
     <p>Giving this option is equivalent to setting the <small>DDD</small>
 
1805
<code>pannedGraphEditor</code> resource to <code>on</code>.  See <a href="#Display%20Resources">Display Resources</a>, for details.
 
1806
 
 
1807
     <br><dt><code>--play-log </code><var>log-file</var><code></code>
 
1808
     <dd>Recapitulate a previous <small>DDD</small> session.
 
1809
 
 
1810
     <pre class="example">          ddd --play-log <var>log-file</var>
 
1811
          </pre>
 
1812
 
 
1813
     <p>invokes <small>DDD</small> as inferior debugger, simulating the inferior
 
1814
debugger given in <var>log-file</var> (see below).  This is useful for
 
1815
debugging <small>DDD</small>.
 
1816
 
 
1817
     <p>Giving this option is equivalent to setting the <small>DDD</small>
 
1818
<code>playLog</code> resource to <code>on</code>.  See <a href="#Customizing%20Debugger%20Interaction">Customizing Debugger Interaction</a>, for
 
1819
details.
 
1820
 
 
1821
     <br><dt><code>--PLAY </code><var>log-file</var><code></code>
 
1822
     <dd>Simulate an inferior debugger.  <var>log-file</var> is a
 
1823
<code>~/.ddd/log</code> file as generated by some previous
 
1824
<small>DDD</small> session (see <a href="#Logging">Logging</a>).  When a command is entered, scan
 
1825
<var>log-file</var> for this command and re-issue the logged reply; if the
 
1826
command is not found, do nothing.  This is used by the <code>--play</code>
 
1827
option.
 
1828
 
 
1829
     <br><dt><code>--rhost </code><var>hostname</var><code></code>
 
1830
     <dd><dt><code>--rhost </code><var>username</var><code>@</code><var>hostname</var><code></code>
 
1831
     <dd>Run the inferior debugger interactively on the remote host
 
1832
<var>hostname</var>.  If <var>username</var> is given and the <code>--login</code>
 
1833
option is not used, use <var>username</var> as remote user name. 
 
1834
See <a href="#Remote%20Debugger">Remote Debugger</a>, for details.
 
1835
 
 
1836
     <p>Giving this option is equivalent to setting the <small>DDD</small>
 
1837
<code>debuggerRHost</code> resource to <var>hostname</var>.  See <a href="#Remote%20Debugger">Remote Debugger</a>, for details.
 
1838
 
 
1839
     <br><dt><code>--scrolled-graph-editor</code>
 
1840
     <dd>Use M*tif scroll bars to scroll the data window.  This is the default in
 
1841
most <small>DDD</small> configurations.  See <a href="#Display%20Resources">Display Resources</a>, for details;
 
1842
see also <code>--panned-graph-editor</code>, above.
 
1843
 
 
1844
     <p>Giving this option is equivalent to setting the <small>DDD</small>
 
1845
<code>pannedGraphEditor</code> resource to <code>off</code>.  See <a href="#Display%20Resources">Display Resources</a>, for details.
 
1846
 
 
1847
     <br><dt><code>--separate-windows</code>
 
1848
     <dd><dt><code>--separate</code>
 
1849
     <dd>Separate the console, source and data windows.  See also the
 
1850
<code>--attach</code> options, above.
 
1851
 
 
1852
     <p>Giving this option is equivalent to setting the <small>DDD</small>
 
1853
<code>Separate</code> resource class to <code>off</code>.  See <a href="#Window%20Layout">Window Layout</a>, for
 
1854
details.
 
1855
 
 
1856
     <br><dt><code>--session </code><var>session</var><code></code>
 
1857
     <dd>Load <var>session</var> upon start-up.  See <a href="#Resuming%20Sessions">Resuming Sessions</a>, for
 
1858
details.
 
1859
 
 
1860
     <p>Giving this option is equivalent to setting the <small>DDD</small>
 
1861
<code>session</code> resource to <var>session</var>.  See <a href="#Resuming%20Sessions">Resuming Sessions</a>, for
 
1862
details.
 
1863
 
 
1864
     <br><dt><code>--source-window</code>
 
1865
     <dd>Open the source window upon start-up.
 
1866
 
 
1867
     <p>Giving this option is equivalent to setting the <small>DDD</small>
 
1868
<code>openSourceWindow</code> resource to <code>on</code>.  See <a href="#Toggling%20Windows">Toggling Windows</a>,
 
1869
for details.
 
1870
 
 
1871
     <br><dt><code>--status-at-bottom</code>
 
1872
     <dd>Place the status line at the bottom of the source window.
 
1873
 
 
1874
     <p>Giving this option is equivalent to setting the <small>DDD</small>
 
1875
<code>statusAtBottom</code> resource to <code>on</code>.  See <a href="#Window%20Layout">Window Layout</a>, for
 
1876
details.
 
1877
 
 
1878
     <br><dt><code>--status-at-top</code>
 
1879
     <dd>Place the status line at the top of the source window.
 
1880
 
 
1881
     <p>Giving this option is equivalent to setting the <small>DDD</small>
 
1882
<code>statusAtBottom</code> resource to <code>off</code>.  See <a href="#Window%20Layout">Window Layout</a>, for
 
1883
details.
 
1884
 
 
1885
     <br><dt><code>--sync-debugger</code>
 
1886
     <dd>Do not process X events while the debugger is busy.  This may result
 
1887
in slightly better performance on single-processor systems.
 
1888
 
 
1889
     <p>Giving this option is equivalent to setting the <small>DDD</small>
 
1890
<code>synchronousDebugger</code> resource to <code>on</code>.  See <a href="#Customizing%20Debugger%20Interaction">Customizing Debugger Interaction</a>, for details.
 
1891
 
 
1892
     <br><dt><code>--toolbars-at-bottom</code>
 
1893
     <dd>Place the toolbars at the bottom of the respective window.
 
1894
 
 
1895
     <p>Giving this option is equivalent to setting the <small>DDD</small>
 
1896
<code>toolbarsAtBottom</code> resource to <code>on</code>.  See <a href="#Window%20Layout">Window Layout</a>,
 
1897
for details.
 
1898
 
 
1899
     <br><dt><code>--toolbars-at-top</code>
 
1900
     <dd>Place the toolbars at the top of the respective window.
 
1901
 
 
1902
     <p>Giving this option is equivalent to setting the <small>DDD</small>
 
1903
<code>toolbarsAtBottom</code> resource to <code>off</code>.  See <a href="#Window%20Layout">Window Layout</a>,
 
1904
for details.
 
1905
 
 
1906
     <br><dt><code>--trace</code>
 
1907
     <dd>Show the interaction between <small>DDD</small> and the inferior debugger on
 
1908
standard error.  This is useful for debugging <small>DDD</small>.  If
 
1909
<code>--trace</code> is not specified, this information is written into
 
1910
<code>~/.ddd/log</code> (<code>~</code> stands for your home directory),
 
1911
such that you can also do a post-mortem debugging.  See <a href="#Logging">Logging</a>, for
 
1912
details about logging.
 
1913
 
 
1914
     <p>Giving this option is equivalent to setting the <small>DDD</small> <code>trace</code>
 
1915
resource to <var>on</var>.  See <a href="#Diagnostics">Diagnostics</a>, for details.
 
1916
 
 
1917
     <br><dt><code>--tty</code>
 
1918
     <dd><dt><code>-t</code>
 
1919
     <dd>Enable <small>TTY</small> interface, taking additional debugger commands from
 
1920
standard input and forwarding debugger output on standard output. 
 
1921
Current positions are issued in a format readable for humans.  By
 
1922
default, the debugger console is disabled.
 
1923
 
 
1924
     <p>Giving this option is equivalent to setting the <small>DDD</small>
 
1925
<code>ttyMode</code> resource to <code>on</code>.  See <a href="#TTY%20mode">TTY mode</a>, for details.
 
1926
 
 
1927
     <br><dt><code>--value-tips</code>
 
1928
     <dd>Enable value tips.
 
1929
 
 
1930
     <p>Giving this option is equivalent to setting the <small>DDD</small>
 
1931
<code>valueTips</code> resource to <code>on</code>.  See <a href="#Value%20Tips">Value Tips</a>, for details.
 
1932
 
 
1933
     <br><dt><code>--version</code>
 
1934
     <dd><dt><code>-v</code>
 
1935
     <dd>Print the <small>DDD</small> version on standard output and exit.
 
1936
 
 
1937
     <p>Giving this option is equivalent to setting the <small>DDD</small>
 
1938
<code>showVersion</code> resource to <code>on</code>.  See <a href="#Diagnostics">Diagnostics</a>, for
 
1939
details.
 
1940
 
 
1941
     <br><dt><code>--vsl-library </code><var>library</var><code></code>
 
1942
     <dd>Load the <small>VSL</small> library <var>library</var> instead of using the
 
1943
<small>DDD</small> built-in library.  This is useful for customizing
 
1944
display shapes and fonts.
 
1945
 
 
1946
     <p>Giving this option is equivalent to setting the <small>DDD</small> <code>vslLibrary</code>
 
1947
resource to <var>library</var>.  See <a href="#VSL%20Resources">VSL Resources</a>, for details.
 
1948
 
 
1949
     <br><dt><code>--vsl-path </code><var>path</var><code></code>
 
1950
     <dd>Search <small>VSL</small> libraries in <var>path</var> (a colon-separated directory list).
 
1951
 
 
1952
     <p>Giving this option is equivalent to setting the <small>DDD</small> <code>vslPath</code>
 
1953
resource to <var>path</var>.  See <a href="#VSL%20Resources">VSL Resources</a>, for details.
 
1954
 
 
1955
     <br><dt><code>--vsl-help</code>
 
1956
     <dd>Show a list of further options controlling the <small>VSL</small> interpreter.  These
 
1957
options are intended for debugging purposes and are subject to change
 
1958
without further notice.
 
1959
 
 
1960
     <br><dt><code>--wdb</code>
 
1961
     <dd>Run <small>WDB</small> as inferior debugger.
 
1962
 
 
1963
     <p>Giving this option is equivalent to setting the <small>DDD</small>
 
1964
<code>debugger</code> resource to <code>wdb</code>.  See <a href="#Customizing%20Debugger%20Interaction">Customizing Debugger Interaction</a>, for details.
 
1965
 
 
1966
     <br><dt><code>--xdb</code>
 
1967
     <dd>Run <small>XDB</small> as inferior debugger.
 
1968
 
 
1969
     <p>Giving this option is equivalent to setting the <small>DDD</small>
 
1970
<code>debugger</code> resource to <code>xdb</code>.  See <a href="#Customizing%20Debugger%20Interaction">Customizing Debugger Interaction</a>, for details. 
 
1971
</dl>
 
1972
 
 
1973
<div class="node">
 
1974
<p><hr>
 
1975
<small class=header>
 
1976
Node:<a name="X%20Options">X Options</a>,
 
1977
Next:<a rel="next" accesskey="n" href="#Inferior%20Debugger%20Options">Inferior Debugger Options</a>,
 
1978
Previous:<a rel="previous" accesskey="p" href="#Options">Options</a>,
 
1979
Up:<a rel="up" accesskey="u" href="#Invoking">Invoking</a>
 
1980
</small>
 
1981
 
 
1982
<br>
 
1983
</div>
 
1984
 
 
1985
<h4 class="subsection">X Options</h4>
 
1986
 
 
1987
   <p><small>DDD</small> also understands the following X options.  Note that these
 
1988
options only take a single dash <code>-</code>.
 
1989
 
 
1990
     <dl>
 
1991
<dt><code>-display </code><var>display</var><code></code>
 
1992
     <dd>Use the X server <var>display</var>.  By default, <var>display</var> is taken from
 
1993
the <code>DISPLAY</code> environment variable.
 
1994
 
 
1995
     <br><dt><code>-geometry </code><var>geometry</var><code></code>
 
1996
     <dd>Specify the initial size and location of the debugger console.
 
1997
 
 
1998
     <br><dt><code>-iconic</code>
 
1999
     <dd>Start <small>DDD</small> iconified.
 
2000
 
 
2001
     <br><dt><code>-name </code><var>name</var><code></code>
 
2002
     <dd>Give <small>DDD</small> the name <var>name</var>.
 
2003
 
 
2004
     <br><dt><code>-selectionTimeout </code><var>timeout</var><code></code>
 
2005
     <dd>Specify the timeout in milliseconds within which two communicating
 
2006
applications must respond to one another for a selection request.
 
2007
 
 
2008
     <br><dt><code>-title </code><var>name</var><code></code>
 
2009
     <dd>Give the <small>DDD</small> window the title <var>name</var>.
 
2010
 
 
2011
     <br><dt><code>-xrm </code><var>resourcestring</var><code></code>
 
2012
     <dd>Specify a resource name and value to override any defaults. 
 
2013
</dl>
 
2014
 
 
2015
<div class="node">
 
2016
<p><hr>
 
2017
<small class=header>
 
2018
Node:<a name="Inferior%20Debugger%20Options">Inferior Debugger Options</a>,
 
2019
Next:<a rel="next" accesskey="n" href="#Multiple%20Instances">Multiple Instances</a>,
 
2020
Previous:<a rel="previous" accesskey="p" href="#X%20Options">X Options</a>,
 
2021
Up:<a rel="up" accesskey="u" href="#Invoking">Invoking</a>
 
2022
</small>
 
2023
 
 
2024
<br>
 
2025
</div>
 
2026
 
 
2027
<h4 class="subsection">Inferior Debugger Options</h4>
 
2028
 
 
2029
   <p>All options that <small>DDD</small> does not recognize are passed to the inferior
 
2030
debugger.  This section lists the most useful options of the different
 
2031
inferior debuggers supported by <small>DDD</small>.  In case these options do not
 
2032
work as expected, please lookup the appropriate reference.
 
2033
 
 
2034
<ul class="menu">
 
2035
<li><a accesskey="1" href="#GDB%20Options">GDB Options</a>: 
 
2036
<li><a accesskey="2" href="#DBX%20and%20Ladebug%20Options">DBX and Ladebug Options</a>: 
 
2037
<li><a accesskey="3" href="#XDB%20Options">XDB Options</a>: 
 
2038
<li><a accesskey="4" href="#JDB%20Options">JDB Options</a>: 
 
2039
<li><a accesskey="5" href="#PYDB%20Options">PYDB Options</a>: 
 
2040
<li><a accesskey="6" href="#Perl%20Options">Perl Options</a>: 
 
2041
<li><a accesskey="7" href="#Bash%20Options">Bash Options</a>: 
 
2042
</ul>
 
2043
 
 
2044
<div class="node">
 
2045
<p><hr>
 
2046
<small class=header>
 
2047
Node:<a name="GDB%20Options">GDB Options</a>,
 
2048
Next:<a rel="next" accesskey="n" href="#DBX%20and%20Ladebug%20Options">DBX and Ladebug Options</a>,
 
2049
Up:<a rel="up" accesskey="u" href="#Inferior%20Debugger%20Options">Inferior Debugger Options</a>
 
2050
</small>
 
2051
 
 
2052
<br>
 
2053
</div>
 
2054
 
 
2055
<h5 class="subsubsection">GDB Options</h5>
 
2056
 
 
2057
   <p>These <small>GDB</small> options are useful when using <small>DDD</small> with <small>GDB</small> as inferior
 
2058
debugger.  Single dashes <code>-</code> instead of double dashes <code>--</code> may
 
2059
also be used.
 
2060
 
 
2061
     <dl>
 
2062
<dt><code>-b </code><var>baudrate</var><code></code>
 
2063
     <dd>Set serial port baud rate used for remote debugging.
 
2064
 
 
2065
     <br><dt><code>--cd </code><var>dir</var><code></code>
 
2066
     <dd>Change current directory to <var>dir</var>.
 
2067
 
 
2068
     <br><dt><code>--command </code><var>file</var><code></code>
 
2069
     <dd>Execute <small>GDB</small> commands from <var>file</var>.
 
2070
 
 
2071
     <br><dt><code>--core </code><var>corefile</var><code></code>
 
2072
     <dd>Analyze the core dump <var>corefile</var>.
 
2073
 
 
2074
     <br><dt><code>--directory </code><var>dir</var><code></code>
 
2075
     <dd><dt><code>-d </code><var>dir</var><code></code>
 
2076
     <dd>Add <var>directory</var> to the path to search for source files.
 
2077
 
 
2078
     <br><dt><code>--exec </code><var>execfile</var><code></code>
 
2079
     <dd>Use <var>execfile</var> as the executable.
 
2080
 
 
2081
     <br><dt><code>--mapped</code>
 
2082
     <dd>Use mapped symbol files if supported on this system.
 
2083
 
 
2084
     <br><dt><code>--nx</code>
 
2085
     <dd><br><dt><code>-n</code>
 
2086
     <dd>Do not read <code>.gdbinit</code> file.
 
2087
 
 
2088
     <br><dt><code>--readnow</code>
 
2089
     <dd>Fully read symbol files on first access.
 
2090
 
 
2091
     <br><dt><code>--se </code><var>file</var><code></code>
 
2092
     <dd>Use <var>file</var> as symbol file and executable file.
 
2093
 
 
2094
     <br><dt><code>--symbols </code><var>symfile</var><code></code>
 
2095
     <dd>Read symbols from <var>symfile</var>. 
 
2096
</dl>
 
2097
 
 
2098
   <p>See <a href="gdb.html#Invoking%20GDB">Invoking GDB</a>, for further options that can be used with <small>GDB</small>.
 
2099
 
 
2100
<div class="node">
 
2101
<p><hr>
 
2102
<small class=header>
 
2103
Node:<a name="DBX%20and%20Ladebug%20Options">DBX and Ladebug Options</a>,
 
2104
Next:<a rel="next" accesskey="n" href="#XDB%20Options">XDB Options</a>,
 
2105
Previous:<a rel="previous" accesskey="p" href="#GDB%20Options">GDB Options</a>,
 
2106
Up:<a rel="up" accesskey="u" href="#Inferior%20Debugger%20Options">Inferior Debugger Options</a>
 
2107
</small>
 
2108
 
 
2109
<br>
 
2110
</div>
 
2111
 
 
2112
<h5 class="subsubsection">DBX and Ladebug Options</h5>
 
2113
 
 
2114
   <p><small>DBX</small> variants differ widely in their options, so we cannot give a list
 
2115
here.  Check out the <cite>dbx(1)</cite> and <cite>ladebug(1)</cite> manual pages.
 
2116
 
 
2117
<div class="node">
 
2118
<p><hr>
 
2119
<small class=header>
 
2120
Node:<a name="XDB%20Options">XDB Options</a>,
 
2121
Next:<a rel="next" accesskey="n" href="#JDB%20Options">JDB Options</a>,
 
2122
Previous:<a rel="previous" accesskey="p" href="#DBX%20and%20Ladebug%20Options">DBX and Ladebug Options</a>,
 
2123
Up:<a rel="up" accesskey="u" href="#Inferior%20Debugger%20Options">Inferior Debugger Options</a>
 
2124
</small>
 
2125
 
 
2126
<br>
 
2127
</div>
 
2128
 
 
2129
<h5 class="subsubsection">XDB Options</h5>
 
2130
 
 
2131
   <p>These <small>XDB</small> options are useful when using <small>DDD</small> with <small>XDB</small> as inferior
 
2132
debugger.
 
2133
 
 
2134
     <dl>
 
2135
<dt><code>-d </code><var>dir</var><code></code>
 
2136
     <dd>Specify <var>dir</var> as an alternate directory where source files are
 
2137
located.
 
2138
 
 
2139
     <br><dt><code>-P </code><var>process-id</var><code></code>
 
2140
     <dd>Specify the process ID of an existing process the user wants to debug.
 
2141
 
 
2142
     <br><dt><code>-l </code><var>library</var><code></code>
 
2143
     <dd>Pre-load information about the shared library <var>library</var>.  <code>-l
 
2144
ALL</code> means always pre-load shared library information.
 
2145
 
 
2146
     <br><dt><code>-S </code><var>num</var><code></code>
 
2147
     <dd>Set the size of the string cache to <var>num</var> bytes (default is 1024,
 
2148
which is also the minimum).
 
2149
 
 
2150
     <br><dt><code>-s</code>
 
2151
     <dd>Enable debugging of shared libraries. 
 
2152
</dl>
 
2153
 
 
2154
   <p>Further options can be found in the <cite>xdb(1)</cite> manual page.
 
2155
 
 
2156
<div class="node">
 
2157
<p><hr>
 
2158
<small class=header>
 
2159
Node:<a name="JDB%20Options">JDB Options</a>,
 
2160
Next:<a rel="next" accesskey="n" href="#PYDB%20Options">PYDB Options</a>,
 
2161
Previous:<a rel="previous" accesskey="p" href="#XDB%20Options">XDB Options</a>,
 
2162
Up:<a rel="up" accesskey="u" href="#Inferior%20Debugger%20Options">Inferior Debugger Options</a>
 
2163
</small>
 
2164
 
 
2165
<br>
 
2166
</div>
 
2167
 
 
2168
<h5 class="subsubsection">JDB Options</h5>
 
2169
 
 
2170
<h5 class="subsubheading">JDB as of JDK 1.2</h5>
 
2171
 
 
2172
   <p>The following <small>JDB</small> options are useful when using <small>DDD</small> with <small>JDB</small>
 
2173
(from <small>JDK</small> 1.2) as inferior debugger.
 
2174
 
 
2175
     <dl>
 
2176
<dt><code>-attach </code><var>address</var><code></code>
 
2177
     <dd>attach to a running virtual machine (VM)
 
2178
at <var>address</var> using standard connector
 
2179
 
 
2180
     <br><dt><code>-listen </code><var>address</var><code></code>
 
2181
     <dd>wait for a running VM to connect at <var>address</var> using standard connector
 
2182
 
 
2183
     <br><dt><code>-listenany</code>
 
2184
     <dd>wait for a running VM to connect at any available address using
 
2185
standard connector
 
2186
 
 
2187
     <br><dt><code>-launch</code>
 
2188
     <dd>launch VM immediately instead of waiting for <code>run</code> command
 
2189
</dl>
 
2190
 
 
2191
   <p>These <small>JDB</small> options are forwarded to the debuggee:
 
2192
 
 
2193
     <dl>
 
2194
<dt><code>-verbose[:class|gc|jni]</code>
 
2195
     <dd><dt><code>-v</code>
 
2196
     <dd>Turn on verbose mode.
 
2197
 
 
2198
     <br><dt><code>-D</code><var>name</var><code>=</code><var>value</var><code></code>
 
2199
     <dd>Set the system property <var>name</var> to <var>value</var>.
 
2200
 
 
2201
     <br><dt><code>-classpath </code><var>path</var><code></code>
 
2202
     <dd>List directories in which to look for classes.  <var>path</var> is a list of
 
2203
directories separated by colons.
 
2204
 
 
2205
     <br><dt><code>-X </code><var>option</var><code></code>
 
2206
     <dd>Non-standard target VM option
 
2207
</dl>
 
2208
 
 
2209
<h5 class="subsubheading">JDB as of JDK 1.1</h5>
 
2210
 
 
2211
   <p>The following <small>JDB</small> options are useful when using <small>DDD</small> with <small>JDB</small>
 
2212
(from <small>JDK</small> 1.1) as inferior debugger.
 
2213
 
 
2214
     <dl>
 
2215
<dt><code>-host </code><var>hostname</var><code></code>
 
2216
     <dd>host machine of interpreter to attach to
 
2217
 
 
2218
     <br><dt><code>-password </code><var>psswd</var><code></code>
 
2219
     <dd>password of interpreter to attach to (from <code>-debug</code>)
 
2220
</dl>
 
2221
 
 
2222
   <p>These <small>JDB</small> options are forwarded to the debuggee:
 
2223
 
 
2224
     <dl>
 
2225
<dt><code>-verbose</code>
 
2226
     <dd><dt><code>-v</code>
 
2227
     <dd>Turn on verbose mode.
 
2228
 
 
2229
     <br><dt><code>-debug</code>
 
2230
     <dd>Enable remote Java debugging,
 
2231
 
 
2232
     <br><dt><code>-noasyncgc</code>
 
2233
     <dd>Don't allow asynchronous garbage collection.
 
2234
 
 
2235
     <br><dt><code>-verbosegc</code>
 
2236
     <dd>Print a message when garbage collection occurs.
 
2237
 
 
2238
     <br><dt><code>-noclassgc</code>
 
2239
     <dd>Disable class garbage collection.
 
2240
 
 
2241
     <br><dt><code>-checksource</code>
 
2242
     <dd><dt><code>-cs</code>
 
2243
     <dd>Check if source is newer when loading classes.
 
2244
 
 
2245
     <br><dt><code>-ss </code><var>number</var><code></code>
 
2246
     <dd>Set the maximum native stack size for any thread.
 
2247
 
 
2248
     <br><dt><code>-oss </code><var>number</var><code></code>
 
2249
     <dd>Set the maximum Java stack size for any thread.
 
2250
 
 
2251
     <br><dt><code>-ms </code><var>number</var><code></code>
 
2252
     <dd>Set the initial Java heap size.
 
2253
 
 
2254
     <br><dt><code>-mx </code><var>number</var><code></code>
 
2255
     <dd>Set the maximum Java heap size.
 
2256
 
 
2257
     <br><dt><code>-D</code><var>name</var><code>=</code><var>value</var><code></code>
 
2258
     <dd>Set the system property <var>name</var> to <var>value</var>.
 
2259
 
 
2260
     <br><dt><code>-classpath </code><var>path</var><code></code>
 
2261
     <dd>List directories in which to look for classes.  <var>path</var> is a list of
 
2262
directories separated by colons.
 
2263
 
 
2264
     <br><dt><code>-prof</code>
 
2265
     <dd><dt><code>-prof:</code><var>file</var><code></code>
 
2266
     <dd>Output profiling data to <code>./java.prof</code>.  If <var>file</var> is given,
 
2267
write the data to <code>./</code><var>file</var><code></code>.
 
2268
 
 
2269
     <br><dt><code>-verify</code>
 
2270
     <dd>Verify all classes when read in.
 
2271
 
 
2272
     <br><dt><code>-verifyremote</code>
 
2273
     <dd>Verify classes read in over the network (default).
 
2274
 
 
2275
     <br><dt><code>-noverify</code>
 
2276
     <dd>Do not verify any class.
 
2277
 
 
2278
     <br><dt><code>-dbgtrace</code>
 
2279
     <dd>Print info for debugging <small>JDB</small>. 
 
2280
</dl>
 
2281
 
 
2282
   <p>Further options can be found in the <small>JDB</small> documentation.
 
2283
 
 
2284
<div class="node">
 
2285
<p><hr>
 
2286
<small class=header>
 
2287
Node:<a name="PYDB%20Options">PYDB Options</a>,
 
2288
Next:<a rel="next" accesskey="n" href="#Perl%20Options">Perl Options</a>,
 
2289
Previous:<a rel="previous" accesskey="p" href="#JDB%20Options">JDB Options</a>,
 
2290
Up:<a rel="up" accesskey="u" href="#Inferior%20Debugger%20Options">Inferior Debugger Options</a>
 
2291
</small>
 
2292
 
 
2293
<br>
 
2294
</div>
 
2295
 
 
2296
<h5 class="subsubsection">PYDB Options</h5>
 
2297
 
 
2298
   <p>For a list of useful <small>PYDB</small> options, check out the <small>PYDB</small> documentation.
 
2299
 
 
2300
<div class="node">
 
2301
<p><hr>
 
2302
<small class=header>
 
2303
Node:<a name="Perl%20Options">Perl Options</a>,
 
2304
Next:<a rel="next" accesskey="n" href="#Bash%20Options">Bash Options</a>,
 
2305
Previous:<a rel="previous" accesskey="p" href="#PYDB%20Options">PYDB Options</a>,
 
2306
Up:<a rel="up" accesskey="u" href="#Inferior%20Debugger%20Options">Inferior Debugger Options</a>
 
2307
</small>
 
2308
 
 
2309
<br>
 
2310
</div>
 
2311
 
 
2312
<h5 class="subsubsection">Perl Options</h5>
 
2313
 
 
2314
   <p>The most important Perl option to use with <small>DDD</small> is <code>-w</code>; it
 
2315
enables several important warnings.  For further options, see the
 
2316
<cite>perlrun(1)</cite> manual page.
 
2317
 
 
2318
<div class="node">
 
2319
<p><hr>
 
2320
<small class=header>
 
2321
Node:<a name="Bash%20Options">Bash Options</a>,
 
2322
Previous:<a rel="previous" accesskey="p" href="#Perl%20Options">Perl Options</a>,
 
2323
Up:<a rel="up" accesskey="u" href="#Inferior%20Debugger%20Options">Inferior Debugger Options</a>
 
2324
</small>
 
2325
 
 
2326
<br>
 
2327
</div>
 
2328
 
 
2329
<h5 class="subsubsection">Bash Options</h5>
 
2330
 
 
2331
   <p>If you have the proper bash installed, the option needed to specify
 
2332
debugging support is <code>--debugger</code>. (If your bash doesn't
 
2333
understand this option you need to pick up a version of bash that does
 
2334
from <a href="http://bashdb.sourceforge.net">http://bashdb.sourceforge.net</a>.)
 
2335
 
 
2336
<div class="node">
 
2337
<p><hr>
 
2338
<small class=header>
 
2339
Node:<a name="Multiple%20Instances">Multiple Instances</a>,
 
2340
Next:<a rel="next" accesskey="n" href="#X%20Warnings">X Warnings</a>,
 
2341
Previous:<a rel="previous" accesskey="p" href="#Inferior%20Debugger%20Options">Inferior Debugger Options</a>,
 
2342
Up:<a rel="up" accesskey="u" href="#Invoking">Invoking</a>
 
2343
</small>
 
2344
 
 
2345
<br>
 
2346
</div>
 
2347
 
 
2348
<h4 class="subsection">Multiple DDD Instances</h4>
 
2349
 
 
2350
   <p>If you have multiple <small>DDD</small> instances running, they share common
 
2351
preferences and history files.  This means that changes applied to one
 
2352
instance may get lost when being overwritten by the other instance. 
 
2353
<small>DDD</small> has two means to protect you against unwanted losses.  The
 
2354
first means is an automatic reloading of changed options, controlled by
 
2355
the following resource (see <a href="#Customizing">Customizing</a>):
 
2356
 
 
2357
<p>
 
2358
<table width="100%">
 
2359
<tr>
 
2360
<td align="left"><b>checkOptions</b><i> </i>(<i>class CheckOptions</i>)<i>
 
2361
     </i></td>
 
2362
<td align="right">Resource</td>
 
2363
</tr>
 
2364
</table>
 
2365
<table width="95%" align="center">
 
2366
<tr><td>
 
2367
Every <var>n</var> seconds, where <var>n</var> is the value of this resource,
 
2368
<small>DDD</small> checks whether the options file has changed.  Default is
 
2369
<code>30</code>, which means that every 30 seconds, <small>DDD</small> checks for the
 
2370
options file.  Setting this resource to <code>0</code> disables checking for
 
2371
changed option files. 
 
2372
</td></tr>
 
2373
</table>
 
2374
 
 
2375
   <p>Normally, automatic reloading of options should already suffice.  If you
 
2376
need stronger protection, <small>DDD</small> also provides a warning against
 
2377
multiple instances.  This warning is disabled by default, If you want to
 
2378
be warned about multiple <small>DDD</small> invocations sharing the same
 
2379
preferences and history files, enable <code>Edit =&gt; Preferences
 
2380
=&gt; Warn if Multiple </code><small>DDD</small><code> Instances are Running</code>.
 
2381
 
 
2382
   <p>This setting is tied to the following resource (see <a href="#Customizing">Customizing</a>):
 
2383
 
 
2384
<p>
 
2385
<table width="100%">
 
2386
<tr>
 
2387
<td align="left"><b>warnIfLocked</b><i> </i>(<i>class WarnIfLocked</i>)<i>
 
2388
     </i></td>
 
2389
<td align="right">Resource</td>
 
2390
</tr>
 
2391
</table>
 
2392
<table width="95%" align="center">
 
2393
<tr><td>
 
2394
Whether to warn if multiple <small>DDD</small> instances are running
 
2395
(<code>on</code>) or not (<code>off</code>, default). 
 
2396
</td></tr>
 
2397
</table>
 
2398
 
 
2399
<div class="node">
 
2400
<p><hr>
 
2401
<small class=header>
 
2402
Node:<a name="X%20Warnings">X Warnings</a>,
 
2403
Previous:<a rel="previous" accesskey="p" href="#Multiple%20Instances">Multiple Instances</a>,
 
2404
Up:<a rel="up" accesskey="u" href="#Invoking">Invoking</a>
 
2405
</small>
 
2406
 
 
2407
<br>
 
2408
</div>
 
2409
 
 
2410
<h4 class="subsection">X warnings</h4>
 
2411
 
 
2412
   <p>If you are bothered by X warnings, you can suppress them by setting
 
2413
<code>Edit =&gt; Preferences =&gt; General =&gt; Suppress X
 
2414
warnings</code>.
 
2415
 
 
2416
   <p>This setting is tied to the following resource (see <a href="#Customizing">Customizing</a>):
 
2417
 
 
2418
<p>
 
2419
<table width="100%">
 
2420
<tr>
 
2421
<td align="left"><b>suppressWarnings</b><i> </i>(<i>class SuppressWarnings</i>)<i>
 
2422
     </i></td>
 
2423
<td align="right">Resource</td>
 
2424
</tr>
 
2425
</table>
 
2426
<table width="95%" align="center">
 
2427
<tr><td>
 
2428
If <code>on</code>, X warnings are suppressed.  This is
 
2429
sometimes useful for executables that were built on a machine with a
 
2430
different X or M*tif configuration.  By default, this is
 
2431
<code>off</code>. 
 
2432
</td></tr>
 
2433
</table>
 
2434
 
 
2435
<div class="node">
 
2436
<p><hr>
 
2437
<small class=header>
 
2438
Node:<a name="Quitting">Quitting</a>,
 
2439
Next:<a rel="next" accesskey="n" href="#Sessions">Sessions</a>,
 
2440
Previous:<a rel="previous" accesskey="p" href="#Invoking">Invoking</a>,
 
2441
Up:<a rel="up" accesskey="u" href="#Invocation">Invocation</a>
 
2442
</small>
 
2443
 
 
2444
<br>
 
2445
</div>
 
2446
 
 
2447
<h3 class="section">Quitting DDD</h3>
 
2448
 
 
2449
   <p>To exit <small>DDD</small>, select <code>File =&gt; Exit</code>.  You may also
 
2450
type the <code>quit</code> command at the debugger prompt or press
 
2451
&lt;Ctrl+Q&gt;.  <small>GDB</small> and <small>XDB</small> also accept the <code>q</code> command or an
 
2452
end-of-file character (usually &lt;Ctrl+D&gt;).  Closing the last
 
2453
<small>DDD</small> window will also exit <small>DDD</small>.
 
2454
 
 
2455
   <p>An interrupt (&lt;ESC&gt; or <code>Interrupt</code>) does not exit from
 
2456
<small>DDD</small>, but rather terminates the action of any debugger command
 
2457
that is in progress and returns to the debugger command level.  It is
 
2458
safe to type the interrupt character at any time because the debugger
 
2459
does not allow it to take effect until a time when it is safe.
 
2460
 
 
2461
   <p>In case an ordinary interrupt does not succeed, you can also use an
 
2462
abort (&lt;Ctrl+\&gt; or <code>Abort</code>), which sends a <code>SIGABRT</code>
 
2463
signal to the inferior debugger.  Use this in emergencies only; the
 
2464
inferior debugger may be left inconsistent or even exit after a
 
2465
<code>SIGABRT</code> signal.
 
2466
 
 
2467
   <p>As a last resort (if <small>DDD</small> hangs, for example), you may also
 
2468
interrupt <small>DDD</small> itself using an interrupt signal (<code>SIGINT</code>). 
 
2469
This can be done by typing the interrupt character (usually
 
2470
&lt;Ctrl+C&gt;) in the shell <small>DDD</small> was started from, or by using the
 
2471
<small>UNIX</small> <code>kill</code> command.  An interrupt signal interrupts any
 
2472
<small>DDD</small> action; the inferior debugger is interrupted as well.  Since
 
2473
this interrupt signal can result in internal inconsistencies, use this
 
2474
as a last resort in emergencies only; save your work as soon as possible
 
2475
and restart <small>DDD</small>.
 
2476
 
 
2477
<div class="node">
 
2478
<p><hr>
 
2479
<small class=header>
 
2480
Node:<a name="Sessions">Sessions</a>,
 
2481
Next:<a rel="next" accesskey="n" href="#Remote%20Debugging">Remote Debugging</a>,
 
2482
Previous:<a rel="previous" accesskey="p" href="#Quitting">Quitting</a>,
 
2483
Up:<a rel="up" accesskey="u" href="#Invocation">Invocation</a>
 
2484
</small>
 
2485
 
 
2486
<br>
 
2487
</div>
 
2488
 
 
2489
<h3 class="section">Persistent Sessions</h3>
 
2490
 
 
2491
   <p>If you want to interrupt your current <small>DDD</small> session, you can save
 
2492
the entire the entire <small>DDD</small> state as <dfn>session</dfn> on disk and
 
2493
resume later.
 
2494
 
 
2495
<ul class="menu">
 
2496
<li><a accesskey="1" href="#Saving%20Sessions">Saving Sessions</a>: 
 
2497
<li><a accesskey="2" href="#Resuming%20Sessions">Resuming Sessions</a>: 
 
2498
<li><a accesskey="3" href="#Deleting%20Sessions">Deleting Sessions</a>: 
 
2499
<li><a accesskey="4" href="#Customizing%20Sessions">Customizing Sessions</a>: 
 
2500
</ul>
 
2501
 
 
2502
<div class="node">
 
2503
<p><hr>
 
2504
<small class=header>
 
2505
Node:<a name="Saving%20Sessions">Saving Sessions</a>,
 
2506
Next:<a rel="next" accesskey="n" href="#Resuming%20Sessions">Resuming Sessions</a>,
 
2507
Up:<a rel="up" accesskey="u" href="#Sessions">Sessions</a>
 
2508
</small>
 
2509
 
 
2510
<br>
 
2511
</div>
 
2512
 
 
2513
<h4 class="subsection">Saving Sessions</h4>
 
2514
 
 
2515
   <p>To save a session, select <code>File =&gt; Save Session As</code>.  You will
 
2516
be asked for a symbolic session name <var>session</var>.
 
2517
 
 
2518
   <p>If your program is running (see <a href="#Running">Running</a>), or if you have opened a
 
2519
core file (see <a href="#Opening%20Core%20Dumps">Opening Core Dumps</a>), <small>DDD</small> can also include a
 
2520
core file in the session such that the debuggee data will be restored
 
2521
when re-opening it.  To get a core file, <small>DDD</small> typically must
 
2522
<dfn>kill</dfn> the debuggee.  This means that you cannot resume program
 
2523
execution after saving a session.  Depending on your architecture, other
 
2524
options for getting a core file may also be available.
 
2525
 
 
2526
   <p>Including a core dump is necessary for restoring memory contents and the
 
2527
current execution position.  To include a core dump, enable
 
2528
<code>Include Core Dump</code>.
 
2529
 
 
2530
<br><p>
 
2531
<div align="center"><img src="PICS/ddd-save-session.jpg" alt="PICS/ddd-save-session.jpg"></div>
 
2532
<br><p>
 
2533
   <p>After clicking on <code>Save</code>, the session is saved in
 
2534
<code>~/.ddd/sessions/</code><var>session</var><code></code>.
 
2535
 
 
2536
   <p>Here's a list of the items whose state is saved in a session:
 
2537
     <ul>
 
2538
<li>The state of the debugged program, as a core file.<a rel="footnote" href="#fn-5"><sup>5</sup></a>
 
2539
 
 
2540
     <li>All breakpoints and watchpoints (see <a href="#Stopping">Stopping</a>).
 
2541
 
 
2542
     <li>All signal settings (see <a href="#Signals">Signals</a>).
 
2543
 
 
2544
     <li>All displays (see <a href="#Displaying%20Values">Displaying Values</a>).<a rel="footnote" href="#fn-6"><sup>6</sup></a>
 
2545
 
 
2546
     <li>All <small>DDD</small> options (see <a href="#Saving%20Options">Saving Options</a>).
 
2547
 
 
2548
     <li>All debugger settings (see <a href="#Debugger%20Settings">Debugger Settings</a>).
 
2549
 
 
2550
     <li>All user-defined buttons (see <a href="#Defining%20Buttons">Defining Buttons</a>).
 
2551
 
 
2552
     <li>All user-defined commands (see <a href="#Defining%20Commands">Defining Commands</a>).
 
2553
 
 
2554
     <li>The positions and sizes of <small>DDD</small> windows.
 
2555
 
 
2556
     <li>The command history (see <a href="#Command%20History">Command History</a>). 
 
2557
</ul>
 
2558
 
 
2559
   <p>After saving the current state as a session, the session becomes
 
2560
<dfn>active</dfn>.  This means that <small>DDD</small> state will be saved as
 
2561
session defaults:
 
2562
 
 
2563
     <ul>
 
2564
<li>User options will be saved in
 
2565
<code>~/.ddd/sessions/</code><var>session</var><code>/init</code> instead of
 
2566
<code>~/.ddd/init</code>.  See <a href="#Saving%20Options">Saving Options</a>, for details.
 
2567
 
 
2568
     <li>The <small>DDD</small> command history will be saved in
 
2569
<code>~/.ddd/sessions/</code><var>session</var><code>/history</code> instead of
 
2570
<code>~/.ddd/history</code>.  See <a href="#Command%20History">Command History</a>, for details. 
 
2571
</ul>
 
2572
 
 
2573
   <p>To make the current session inactive, open the <em>default session</em>
 
2574
named <code>[None]</code>.  See <a href="#Resuming%20Sessions">Resuming Sessions</a>, for details on opening
 
2575
sessions.
 
2576
 
 
2577
<div class="node">
 
2578
<p><hr>
 
2579
<small class=header>
 
2580
Node:<a name="Resuming%20Sessions">Resuming Sessions</a>,
 
2581
Next:<a rel="next" accesskey="n" href="#Deleting%20Sessions">Deleting Sessions</a>,
 
2582
Previous:<a rel="previous" accesskey="p" href="#Saving%20Sessions">Saving Sessions</a>,
 
2583
Up:<a rel="up" accesskey="u" href="#Sessions">Sessions</a>
 
2584
</small>
 
2585
 
 
2586
<br>
 
2587
</div>
 
2588
 
 
2589
<h4 class="subsection">Resuming Sessions</h4>
 
2590
 
 
2591
   <p>To resume a previously saved session, select <code>File =&gt; Open
 
2592
Session</code> and choose a session name from the list.  After clicking on
 
2593
<code>Open</code>, the entire <small>DDD</small> state will be restored from the
 
2594
given session.
 
2595
 
 
2596
   <p>The session named <code>[None]</code> is the <dfn>default session</dfn> which is
 
2597
active when starting <small>DDD</small>.  To save options for default sessions,
 
2598
choose the default session before exiting <small>DDD</small>.  See <a href="#Saving%20Options">Saving Options</a>, for details.
 
2599
 
 
2600
<br><p>
 
2601
<div align="center"><img src="PICS/ddd-open-session.jpg" alt="PICS/ddd-open-session.jpg"></div>
 
2602
<br><p>
 
2603
   <p>If a the restored session includes a core dump, the program being
 
2604
debugged will be in the same state at the time the session was saved; in
 
2605
particular, you can examine the program data.  However, you will not be
 
2606
able to resume program execution since the process and its environment
 
2607
(open files, resources, etc.) no longer exist.  However, you can restart
 
2608
the program, re-using the restored breakpoints and data displays.
 
2609
 
 
2610
   <p>Opening sessions also restores command definitions, buttons, display
 
2611
shortcuts and the source tab width.  This way, you can maintain a
 
2612
different set of definitions for each session.
 
2613
 
 
2614
   <p>You can also specify a session to open when starting <small>DDD</small>.  To
 
2615
invoke <small>DDD</small> with a session <var>session</var>, use
 
2616
 
 
2617
<pre class="example">     ddd --session <var>session</var>
 
2618
     </pre>
 
2619
 
 
2620
   <p>There is also a shortcut that opens the session <var>session</var> and
 
2621
invokes the inferior debugger on an executable named <var>session</var> (in
 
2622
case <var>session</var> cannot be opened):
 
2623
 
 
2624
<pre class="example">     ddd =<var>session</var>
 
2625
     </pre>
 
2626
 
 
2627
   <p>There is no need to give further command-line options when restarting a
 
2628
session, as they will be overridden by the options saved in the session.
 
2629
 
 
2630
   <p>You can also use an X session manager such as <code>xsm</code> to save and
 
2631
restore <small>DDD</small> sessions.<a rel="footnote" href="#fn-7"><sup>7</sup></a> When
 
2632
being shut down by a session manager, <small>DDD</small> saves its state under
 
2633
the name specified by the session manager; resuming the X session makes
 
2634
<small>DDD</small> reload its saved state.
 
2635
 
 
2636
<div class="node">
 
2637
<p><hr>
 
2638
<small class=header>
 
2639
Node:<a name="Deleting%20Sessions">Deleting Sessions</a>,
 
2640
Next:<a rel="next" accesskey="n" href="#Customizing%20Sessions">Customizing Sessions</a>,
 
2641
Previous:<a rel="previous" accesskey="p" href="#Resuming%20Sessions">Resuming Sessions</a>,
 
2642
Up:<a rel="up" accesskey="u" href="#Sessions">Sessions</a>
 
2643
</small>
 
2644
 
 
2645
<br>
 
2646
</div>
 
2647
 
 
2648
<h4 class="subsection">Deleting Sessions</h4>
 
2649
 
 
2650
   <p>To delete sessions that are no longer needed, select <code>File
 
2651
=&gt; Open Session</code> or <code>File =&gt; Save Session</code>.  Select
 
2652
the sessions you want to delete and click on <code>Delete</code>.
 
2653
 
 
2654
   <p>The default session <code>[None]</code> cannot be deleted.
 
2655
 
 
2656
<div class="node">
 
2657
<p><hr>
 
2658
<small class=header>
 
2659
Node:<a name="Customizing%20Sessions">Customizing Sessions</a>,
 
2660
Previous:<a rel="previous" accesskey="p" href="#Deleting%20Sessions">Deleting Sessions</a>,
 
2661
Up:<a rel="up" accesskey="u" href="#Sessions">Sessions</a>
 
2662
</small>
 
2663
 
 
2664
<br>
 
2665
</div>
 
2666
 
 
2667
<h4 class="subsection">Customizing Sessions</h4>
 
2668
 
 
2669
   <p>You can change the place where <small>DDD</small> saves its sessions by setting
 
2670
the environment variable <code>DDD_SESSIONS</code> to the name of a directory. 
 
2671
Default is <code>~/.ddd/sessions/</code>.
 
2672
 
 
2673
   <p>Where applicable, <small>DDD</small> supports a <code>gcore</code> command to obtain
 
2674
core files of the running program.  You can enter its path via
 
2675
<code>Edit =&gt; Preferences =&gt; Helpers =&gt; Get Core
 
2676
File</code>.  Leave the value empty if you have no <code>gcore</code> or similar
 
2677
command.
 
2678
 
 
2679
   <p>This setting is tied to the following resource (see <a href="#Customizing">Customizing</a>):
 
2680
 
 
2681
<p>
 
2682
<table width="100%">
 
2683
<tr>
 
2684
<td align="left"><b>getCoreCommand</b><i> </i>(<i>class GetCoreCommand</i>)<i>
 
2685
     </i></td>
 
2686
<td align="right">Resource</td>
 
2687
</tr>
 
2688
</table>
 
2689
<table width="95%" align="center">
 
2690
<tr><td>
 
2691
A command to get a core dump of a running process (typically,
 
2692
<code>gcore</code>) <code>@FILE@</code> is replaced by the base name of the file
 
2693
to create; <code>@PID@</code> is replaced by the process id.  The output
 
2694
must be written to <code>@FILE@.@PID@</code>.
 
2695
 
 
2696
     <p>Leave the value empty if you have no <code>gcore</code> or similar command. 
 
2697
</td></tr>
 
2698
</table>
 
2699
 
 
2700
<div class="node">
 
2701
<p><hr>
 
2702
<small class=header>
 
2703
Node:<a name="Remote%20Debugging">Remote Debugging</a>,
 
2704
Next:<a rel="next" accesskey="n" href="#Customizing%20Debugger%20Interaction">Customizing Debugger Interaction</a>,
 
2705
Previous:<a rel="previous" accesskey="p" href="#Sessions">Sessions</a>,
 
2706
Up:<a rel="up" accesskey="u" href="#Invocation">Invocation</a>
 
2707
</small>
 
2708
 
 
2709
<br>
 
2710
</div>
 
2711
 
 
2712
<h3 class="section">Remote Debugging</h3>
 
2713
 
 
2714
   <p>You can have each of <small>DDD</small>, the inferior debugger, and the
 
2715
debugged program run on different machines.
 
2716
 
 
2717
<ul class="menu">
 
2718
<li><a accesskey="1" href="#Remote%20Host">Remote Host</a>:                  Running <small>DDD</small> on a Remote Host
 
2719
<li><a accesskey="2" href="#Remote%20Debugger">Remote Debugger</a>:              Using a Remote Inferior Debugger
 
2720
<li><a accesskey="3" href="#Remote%20Program">Remote Program</a>:               Debugging a Remote Program
 
2721
</ul>
 
2722
 
 
2723
<div class="node">
 
2724
<p><hr>
 
2725
<small class=header>
 
2726
Node:<a name="Remote%20Host">Remote Host</a>,
 
2727
Next:<a rel="next" accesskey="n" href="#Remote%20Debugger">Remote Debugger</a>,
 
2728
Up:<a rel="up" accesskey="u" href="#Remote%20Debugging">Remote Debugging</a>
 
2729
</small>
 
2730
 
 
2731
<br>
 
2732
</div>
 
2733
 
 
2734
<h4 class="subsection">Running DDD on a Remote Host</h4>
 
2735
 
 
2736
   <p>You can run <small>DDD</small> on a remote host, using your current host as X
 
2737
display.  On the remote host, invoke <small>DDD</small> as
 
2738
 
 
2739
<pre class="example">     ddd -display <var>display</var>
 
2740
     </pre>
 
2741
 
 
2742
<p>where <var>display</var> is the name of the X server to connect to (for
 
2743
instance, <code></code><var>hostname</var><code>:0.0</code>, where <var>hostname</var> is your host).
 
2744
 
 
2745
   <p>Instead of specifying <code>-display </code><var>display</var><code></code>, you can also set
 
2746
the <code>DISPLAY</code> environment variable to <var>display</var>.
 
2747
 
 
2748
<div class="node">
 
2749
<p><hr>
 
2750
<small class=header>
 
2751
Node:<a name="Remote%20Debugger">Remote Debugger</a>,
 
2752
Next:<a rel="next" accesskey="n" href="#Remote%20Program">Remote Program</a>,
 
2753
Previous:<a rel="previous" accesskey="p" href="#Remote%20Host">Remote Host</a>,
 
2754
Up:<a rel="up" accesskey="u" href="#Remote%20Debugging">Remote Debugging</a>
 
2755
</small>
 
2756
 
 
2757
<br>
 
2758
</div>
 
2759
 
 
2760
<h4 class="subsection">Using DDD with a Remote Inferior Debugger</h4>
 
2761
 
 
2762
   <p>In order to run the inferior debugger on a remote host, you need
 
2763
<code>remsh</code> (called <code>rsh</code> on BSD systems) access on the remote
 
2764
host.
 
2765
 
 
2766
   <p>To run the debugger on a remote host <var>hostname</var>, invoke <small>DDD</small> as
 
2767
<pre class="example">     ddd --host <var>hostname</var> <var>remote-program</var>
 
2768
     </pre>
 
2769
 
 
2770
   <p>If your remote <var>username</var> differs from the local username, use
 
2771
 
 
2772
<pre class="example">     ddd --host <var>hostname</var> --login <var>username</var> <var>remote-program</var>
 
2773
     </pre>
 
2774
 
 
2775
<p>or
 
2776
 
 
2777
<pre class="example">     ddd --host <var>username</var>@<var>hostname</var> <var>remote-program</var>
 
2778
     </pre>
 
2779
 
 
2780
<p>instead.
 
2781
 
 
2782
   <p>There are a few <em>caveats</em> in remote mode:
 
2783
 
 
2784
     <ul>
 
2785
<li>The remote debugger is started in your remote home directory.  Hence,
 
2786
you must specify an absolute path name for <var>remote-program</var> (or a
 
2787
path name relative to your remote home directory).  Same applies to
 
2788
remote core files.  Also, be sure to specify a remote process id when
 
2789
debugging a running program.
 
2790
 
 
2791
     <li>The remote debugger is started non-interactively.  Some <small>DBX</small> versions
 
2792
have trouble with this.  If you do not get a prompt from the remote
 
2793
debugger, use the <code>--rhost</code> option instead of <code>--host</code>.  This
 
2794
will invoke the remote debugger via an interactive shell on the remote
 
2795
host, which may lead to better results.
 
2796
 
 
2797
     <p>Note: using <code>--rhost</code>, <small>DDD</small> invokes the inferior debugger as
 
2798
soon as a shell prompt appears.  The first output on the remote host
 
2799
ending in a space character or <code>&gt;</code> and not followed by a newline is
 
2800
assumed to be a shell prompt.  If necessary, adjust your shell prompt on
 
2801
the remote host.
 
2802
 
 
2803
     </p><li>To run the remote program, <small>DDD</small> invokes an <code>xterm</code> terminal
 
2804
emulator on the remote host, giving your current <code>DISPLAY</code>
 
2805
environment variable as address.  If the remote host cannot invoke
 
2806
<code>xterm</code>, or does not have access to your X display, start
 
2807
<small>DDD</small> with the <code>--no-exec-window</code> option.  The program
 
2808
input/output will then go through the <small>DDD</small> debugger console.
 
2809
 
 
2810
     <li>In remote mode, all sources are loaded from the remote host; file
 
2811
dialogs scan remote directories.  This may result in somewhat slower
 
2812
operation than normal.
 
2813
 
 
2814
     <li>To help you find problems due to remote execution, run <small>DDD</small> with
 
2815
the <code>--trace</code> option.  This prints the shell commands issued by
 
2816
<small>DDD</small> on standard error. 
 
2817
</ul>
 
2818
 
 
2819
   <p>See <a href="#Customizing%20Remote%20Debugging">Customizing Remote Debugging</a>, for customizing remote mode.
 
2820
 
 
2821
<ul class="menu">
 
2822
<li><a accesskey="1" href="#Customizing%20Remote%20Debugging">Customizing Remote Debugging</a>: 
 
2823
</ul>
 
2824
 
 
2825
<div class="node">
 
2826
<p><hr>
 
2827
<small class=header>
 
2828
Node:<a name="Customizing%20Remote%20Debugging">Customizing Remote Debugging</a>,
 
2829
Up:<a rel="up" accesskey="u" href="#Remote%20Debugger">Remote Debugger</a>
 
2830
</small>
 
2831
 
 
2832
<br>
 
2833
</div>
 
2834
 
 
2835
<h5 class="subsubsection">Customizing Remote Debugging</h5>
 
2836
 
 
2837
   <p>When having the inferior debugger run on a remote host (see <a href="#Remote%20Debugging">Remote Debugging</a>), all commands to access the inferior debugger as well as its
 
2838
files must be run remotely.  This is controlled by the following
 
2839
resources (see <a href="#Customizing">Customizing</a>):
 
2840
 
 
2841
<p>
 
2842
<table width="100%">
 
2843
<tr>
 
2844
<td align="left"><b>rshCommand</b><i> </i>(<i>class RshCommand</i>)<i>
 
2845
     </i></td>
 
2846
<td align="right">Resource</td>
 
2847
</tr>
 
2848
</table>
 
2849
<table width="95%" align="center">
 
2850
<tr><td>
 
2851
The remote shell command to invoke <small>TTY</small>-based commands on
 
2852
remote hosts.  Usually, <code>remsh</code>, <code>rsh</code>, <code>ssh</code>,
 
2853
or <code>on</code>. 
 
2854
</td></tr>
 
2855
</table>
 
2856
 
 
2857
<p>
 
2858
<table width="100%">
 
2859
<tr>
 
2860
<td align="left"><b>listCoreCommand</b><i> </i>(<i>class listCoreCommand</i>)<i>
 
2861
     </i></td>
 
2862
<td align="right">Resource</td>
 
2863
</tr>
 
2864
</table>
 
2865
<table width="95%" align="center">
 
2866
<tr><td>
 
2867
The command to list all core files on the remote host.  The string
 
2868
<code>@MASK@</code> is replaced by a file filter.  The default setting is:
 
2869
 
 
2870
     <pre class="example">          Ddd*listCoreCommand: \
 
2871
          file @MASK@ | grep '.*:.*core.*' | cut -d: -f1
 
2872
          </pre>
 
2873
     </td></tr>
 
2874
</table>
 
2875
 
 
2876
<p>
 
2877
<table width="100%">
 
2878
<tr>
 
2879
<td align="left"><b>listDirCommand</b><i> </i>(<i>class listDirCommand</i>)<i>
 
2880
     </i></td>
 
2881
<td align="right">Resource</td>
 
2882
</tr>
 
2883
</table>
 
2884
<table width="95%" align="center">
 
2885
<tr><td>
 
2886
The command to list all directories on the remote host.  The string
 
2887
<code>@MASK@</code> is replaced by a file filter.  The default setting is:
 
2888
 
 
2889
     <pre class="example">          Ddd*listDirCommand: \
 
2890
          file @MASK@ | grep '.*:.*directory.*' | cut -d: -f1
 
2891
          </pre>
 
2892
     </td></tr>
 
2893
</table>
 
2894
 
 
2895
<p>
 
2896
<table width="100%">
 
2897
<tr>
 
2898
<td align="left"><b>listExecCommand</b><i> </i>(<i>class listExecCommand</i>)<i>
 
2899
     </i></td>
 
2900
<td align="right">Resource</td>
 
2901
</tr>
 
2902
</table>
 
2903
<table width="95%" align="center">
 
2904
<tr><td>
 
2905
The command to list all executable files on the remote host.  The string
 
2906
<code>@MASK@</code> is replaced by a file filter.  The default setting is:
 
2907
 
 
2908
     <pre class="example">          Ddd*listExecCommand: \
 
2909
          file @MASK@ | grep '.*:.*exec.*' \
 
2910
            | grep -v  '.*:.*script.*' \
 
2911
            | cut -d: -f1 | grep -v '.*\.o$'
 
2912
          </pre>
 
2913
     </td></tr>
 
2914
</table>
 
2915
 
 
2916
<p>
 
2917
<table width="100%">
 
2918
<tr>
 
2919
<td align="left"><b>listSourceCommand</b><i> </i>(<i>class listSourceCommand</i>)<i>
 
2920
     </i></td>
 
2921
<td align="right">Resource</td>
 
2922
</tr>
 
2923
</table>
 
2924
<table width="95%" align="center">
 
2925
<tr><td>
 
2926
The command to list all source files on the remote host.  The string
 
2927
<code>@MASK@</code> is replaced by a file filter.  The default setting is:
 
2928
 
 
2929
     <pre class="example">          Ddd*listSourceCommand: \
 
2930
          file @MASK@ | grep '.*:.*text.*' | cut -d: -f1
 
2931
          </pre>
 
2932
     </td></tr>
 
2933
</table>
 
2934
 
 
2935
<div class="node">
 
2936
<p><hr>
 
2937
<small class=header>
 
2938
Node:<a name="Remote%20Program">Remote Program</a>,
 
2939
Previous:<a rel="previous" accesskey="p" href="#Remote%20Debugger">Remote Debugger</a>,
 
2940
Up:<a rel="up" accesskey="u" href="#Remote%20Debugging">Remote Debugging</a>
 
2941
</small>
 
2942
 
 
2943
<br>
 
2944
</div>
 
2945
 
 
2946
<h4 class="subsection">Debugging a Remote Program</h4>
 
2947
 
 
2948
   <p>The <small>GDB</small> debugger allows you to run the <em>debugged program</em> on a
 
2949
remote machine (called <em>remote target</em>), while <small>GDB</small> runs on the
 
2950
local machine.
 
2951
 
 
2952
   <p>See <a href="gdb.html#Remote">Remote Debugging</a>, for details.  Basically, the following steps are required:
 
2953
 
 
2954
     <ul>
 
2955
<li>Transfer the executable to the remote target.
 
2956
 
 
2957
     <li>Start <code>gdbserver</code> on the remote target.
 
2958
 
 
2959
     <li>Start <small>DDD</small> using <small>GDB</small> on the local machine, and load the same
 
2960
executable using the <small>GDB</small> <code>file</code> command.
 
2961
 
 
2962
     <li>Attach to the remote <code>gdbserver</code> using the <small>GDB</small> <code>target remote</code>
 
2963
command. 
 
2964
</ul>
 
2965
 
 
2966
   <p>The local <code>.gdbinit</code> file is useful for setting up directory search
 
2967
paths, etc.
 
2968
 
 
2969
   <p>Of course, you can also combine <small>DDD</small> remote mode and <small>GDB</small> remote
 
2970
mode, running <small>DDD</small>, <small>GDB</small>, and the debugged program each on a
 
2971
different machine.
 
2972
 
 
2973
<div class="node">
 
2974
<p><hr>
 
2975
<small class=header>
 
2976
Node:<a name="Customizing%20Debugger%20Interaction">Customizing Debugger Interaction</a>,
 
2977
Previous:<a rel="previous" accesskey="p" href="#Remote%20Debugging">Remote Debugging</a>,
 
2978
Up:<a rel="up" accesskey="u" href="#Invocation">Invocation</a>
 
2979
</small>
 
2980
 
 
2981
<br>
 
2982
</div>
 
2983
 
 
2984
<h3 class="section">Customizing Interaction with the Inferior Debugger</h3>
 
2985
 
 
2986
   <p>These settings control the interaction of <small>DDD</small> with its inferior
 
2987
debugger.
 
2988
 
 
2989
<ul class="menu">
 
2990
<li><a accesskey="1" href="#Debugger%20Invocation">Debugger Invocation</a>: 
 
2991
<li><a accesskey="2" href="#Debugger%20Initialization">Debugger Initialization</a>: 
 
2992
<li><a accesskey="3" href="#Debugger%20Communication">Debugger Communication</a>: 
 
2993
</ul>
 
2994
 
 
2995
<div class="node">
 
2996
<p><hr>
 
2997
<small class=header>
 
2998
Node:<a name="Debugger%20Invocation">Debugger Invocation</a>,
 
2999
Next:<a rel="next" accesskey="n" href="#Debugger%20Initialization">Debugger Initialization</a>,
 
3000
Up:<a rel="up" accesskey="u" href="#Customizing%20Debugger%20Interaction">Customizing Debugger Interaction</a>
 
3001
</small>
 
3002
 
 
3003
<br>
 
3004
</div>
 
3005
 
 
3006
<h4 class="subsection">Invoking an Inferior Debugger</h4>
 
3007
 
 
3008
   <p>To choose the default inferior debugger, select <code>Edit =&gt;
 
3009
Preferences =&gt; Startup =&gt; Debugger Type</code>.  You can
 
3010
 
 
3011
     <ul>
 
3012
<li>have <small>DDD</small> determine the appropriate inferior debugger
 
3013
automatically from its command-line arguments.  Set <code>Determine
 
3014
Automatically from Arguments</code> to enable. 
 
3015
<li>have <small>DDD</small> start the debugger of your choice, as specified in
 
3016
<code>Debugger Type</code>. 
 
3017
</ul>
 
3018
 
 
3019
   <p>The following <small>DDD</small> resources control the invocation of the
 
3020
inferior debugger (see <a href="#Customizing">Customizing</a>).
 
3021
 
 
3022
<p>
 
3023
<table width="100%">
 
3024
<tr>
 
3025
<td align="left"><b>autoDebugger</b><i> </i>(<i>class AutoDebugger</i>)<i>
 
3026
     </i></td>
 
3027
<td align="right">Resource</td>
 
3028
</tr>
 
3029
</table>
 
3030
<table width="95%" align="center">
 
3031
<tr><td>
 
3032
If this is <code>on</code> (default), <small>DDD</small> will attempt to determine
 
3033
the debugger type from its arguments, possibly overriding the
 
3034
<code>debugger</code> resource (see below).  If this is <code>off</code>,
 
3035
<small>DDD</small> will invoke the debugger specified by the <code>debugger</code>
 
3036
resource regardless of <small>DDD</small> arguments. 
 
3037
</td></tr>
 
3038
</table>
 
3039
 
 
3040
<p>
 
3041
<table width="100%">
 
3042
<tr>
 
3043
<td align="left"><b>debugger</b><i> </i>(<i>class Debugger</i>)<i>
 
3044
     </i></td>
 
3045
<td align="right">Resource</td>
 
3046
</tr>
 
3047
</table>
 
3048
<table width="95%" align="center">
 
3049
<tr><td>
 
3050
The type of the inferior debugger to invoke (<code>gdb</code>, <code>dbx</code>,
 
3051
<code>ladebug</code>, <code>xdb</code>, <code>jdb</code>, <code>pydb</code>, <code>perl</code>, or
 
3052
<code>bash</code>).
 
3053
 
 
3054
     <p>This resource is usually set through the <code>--gdb</code>, <code>--dbx</code>,
 
3055
<code>--ladebug</code>, <code>--xdb</code>, <code>--jdb</code>, <code>--pydb</code>,
 
3056
<code>--perl</code>, and <code>--bash</code> options; See <a href="#Options">Options</a>, for details. 
 
3057
</td></tr>
 
3058
</table>
 
3059
 
 
3060
<p>
 
3061
<table width="100%">
 
3062
<tr>
 
3063
<td align="left"><b>debuggerCommand</b><i> </i>(<i>class DebuggerCommand</i>)<i>
 
3064
     </i></td>
 
3065
<td align="right">Resource</td>
 
3066
</tr>
 
3067
</table>
 
3068
<table width="95%" align="center">
 
3069
<tr><td>
 
3070
The name under which the inferior debugger is to be invoked.  If this
 
3071
string is empty (default), the debugger type (<code>debugger</code> resource)
 
3072
is used.
 
3073
 
 
3074
     <p>This resource is usually set through the <code>--debugger</code> option;
 
3075
See <a href="#Options">Options</a>, for details. 
 
3076
</td></tr>
 
3077
</table>
 
3078
 
 
3079
<div class="node">
 
3080
<p><hr>
 
3081
<small class=header>
 
3082
Node:<a name="Debugger%20Initialization">Debugger Initialization</a>,
 
3083
Next:<a rel="next" accesskey="n" href="#Debugger%20Communication">Debugger Communication</a>,
 
3084
Previous:<a rel="previous" accesskey="p" href="#Debugger%20Invocation">Debugger Invocation</a>,
 
3085
Up:<a rel="up" accesskey="u" href="#Customizing%20Debugger%20Interaction">Customizing Debugger Interaction</a>
 
3086
</small>
 
3087
 
 
3088
<br>
 
3089
</div>
 
3090
 
 
3091
<h4 class="subsection">Initializing the Inferior Debugger</h4>
 
3092
 
 
3093
   <p><small>DDD</small> uses a number of resources to initialize the
 
3094
inferior debugger (see <a href="#Customizing">Customizing</a>).
 
3095
 
 
3096
<ul class="menu">
 
3097
<li><a accesskey="1" href="#GDB%20Initialization">GDB Initialization</a>: 
 
3098
<li><a accesskey="2" href="#DBX%20Initialization">DBX Initialization</a>: 
 
3099
<li><a accesskey="3" href="#XDB%20Initialization">XDB Initialization</a>: 
 
3100
<li><a accesskey="4" href="#JDB%20Initialization">JDB Initialization</a>: 
 
3101
<li><a accesskey="5" href="#PYDB%20Initialization">PYDB Initialization</a>: 
 
3102
<li><a accesskey="6" href="#Perl%20Initialization">Perl Initialization</a>: 
 
3103
<li><a accesskey="7" href="#Bash%20Initialization">Bash Initialization</a>: 
 
3104
<li><a accesskey="8" href="#Finding%20a%20Place%20to%20Start">Finding a Place to Start</a>: 
 
3105
<li><a accesskey="9" href="#Opening%20the%20Selection">Opening the Selection</a>: 
 
3106
</ul>
 
3107
 
 
3108
<div class="node">
 
3109
<p><hr>
 
3110
<small class=header>
 
3111
Node:<a name="GDB%20Initialization">GDB Initialization</a>,
 
3112
Next:<a rel="next" accesskey="n" href="#DBX%20Initialization">DBX Initialization</a>,
 
3113
Up:<a rel="up" accesskey="u" href="#Debugger%20Initialization">Debugger Initialization</a>
 
3114
</small>
 
3115
 
 
3116
<br>
 
3117
</div>
 
3118
 
 
3119
<h5 class="subsubsection">GDB Initialization</h5>
 
3120
 
 
3121
<p>
 
3122
<table width="100%">
 
3123
<tr>
 
3124
<td align="left"><b>gdbInitCommands</b><i> </i>(<i>class InitCommands</i>)<i>
 
3125
     </i></td>
 
3126
<td align="right">Resource</td>
 
3127
</tr>
 
3128
</table>
 
3129
<table width="95%" align="center">
 
3130
<tr><td>
 
3131
This string contains a list of newline-separated commands that are
 
3132
initially sent to <small>GDB</small>.  As a side-effect, all settings
 
3133
specified in this resource are considered fixed and cannot be changed
 
3134
through the <small>GDB</small> settings panel, unless preceded by white
 
3135
space.  By default, the <code>gdbInitCommands</code> resource contains some
 
3136
settings vital to <small>DDD</small>:
 
3137
 
 
3138
     <pre class="example">            Ddd*gdbInitCommands: \
 
3139
            set height 0\n\
 
3140
            set width 0\n\
 
3141
             set verbose off\n\
 
3142
            set prompt (gdb) \n
 
3143
          </pre>
 
3144
 
 
3145
     <p>While the <code>set height</code>, <code>set width</code>, and <code>set
 
3146
prompt</code> settings are fixed, the <code>set verbose</code> settings can be
 
3147
changed through the <small>GDB</small> settings panel (although being reset
 
3148
upon each new <small>DDD</small> invocation).
 
3149
 
 
3150
     <p>Do not use this resource to customize <small>GDB</small>; instead, use a
 
3151
personal <code>~/.gdbinit</code> file.  See your <small>GDB</small>
 
3152
documentation for details. 
 
3153
</td></tr>
 
3154
</table>
 
3155
 
 
3156
<p>
 
3157
<table width="100%">
 
3158
<tr>
 
3159
<td align="left"><b>gdbSettings</b><i> </i>(<i>class Settings</i>)<i>
 
3160
     </i></td>
 
3161
<td align="right">Resource</td>
 
3162
</tr>
 
3163
</table>
 
3164
<table width="95%" align="center">
 
3165
<tr><td>
 
3166
This string contains a list of newline-separated commands that are
 
3167
also initially sent to <small>GDB</small>.  Its default value is
 
3168
 
 
3169
     <pre class="example">            Ddd*gdbSettings: \
 
3170
            set print asm-demangle on\n
 
3171
          </pre>
 
3172
 
 
3173
     <p>This resource is used to save and restore the debugger settings. 
 
3174
</td></tr>
 
3175
</table>
 
3176
 
 
3177
<p>
 
3178
<table width="100%">
 
3179
<tr>
 
3180
<td align="left"><b>sourceInitCommands</b><i> </i>(<i>class SourceInitCommands</i>)<i>
 
3181
     </i></td>
 
3182
<td align="right">Resource</td>
 
3183
</tr>
 
3184
</table>
 
3185
<table width="95%" align="center">
 
3186
<tr><td>
 
3187
If <code>on</code> (default), <small>DDD</small> writes all <small>GDB</small> initialization
 
3188
commands into a temporary file and makes <small>GDB</small> read this file, rather than
 
3189
sending each initialization command separately.  This results in faster
 
3190
startup (especially if you have several user-defined commands).  If
 
3191
<code>off</code>, <small>DDD</small> makes <small>GDB</small> process each command separately. 
 
3192
</td></tr>
 
3193
</table>
 
3194
 
 
3195
<div class="node">
 
3196
<p><hr>
 
3197
<small class=header>
 
3198
Node:<a name="DBX%20Initialization">DBX Initialization</a>,
 
3199
Next:<a rel="next" accesskey="n" href="#XDB%20Initialization">XDB Initialization</a>,
 
3200
Previous:<a rel="previous" accesskey="p" href="#GDB%20Initialization">GDB Initialization</a>,
 
3201
Up:<a rel="up" accesskey="u" href="#Debugger%20Initialization">Debugger Initialization</a>
 
3202
</small>
 
3203
 
 
3204
<br>
 
3205
</div>
 
3206
 
 
3207
<h5 class="subsubsection">DBX Initialization</h5>
 
3208
 
 
3209
<p>
 
3210
<table width="100%">
 
3211
<tr>
 
3212
<td align="left"><b>dbxInitCommands</b><i> </i>(<i>class InitCommands</i>)<i>
 
3213
     </i></td>
 
3214
<td align="right">Resource</td>
 
3215
</tr>
 
3216
</table>
 
3217
<table width="95%" align="center">
 
3218
<tr><td>
 
3219
This string contains a list of newline-separated commands that are
 
3220
initially sent to <small>DBX</small>.  By default, it is empty.
 
3221
 
 
3222
     <p>Do not use this resource to customize <small>DBX</small>; instead, use a
 
3223
personal <code>~/.dbxinit</code> or <code>~/.dbxrc</code> file.  See
 
3224
your <small>DBX</small> documentation for details. 
 
3225
</td></tr>
 
3226
</table>
 
3227
 
 
3228
<p>
 
3229
<table width="100%">
 
3230
<tr>
 
3231
<td align="left"><b>dbxSettings</b><i> </i>(<i>class Settings</i>)<i>
 
3232
     </i></td>
 
3233
<td align="right">Resource</td>
 
3234
</tr>
 
3235
</table>
 
3236
<table width="95%" align="center">
 
3237
<tr><td>
 
3238
This string contains a list of newline-separated commands that are
 
3239
also initially sent to <small>DBX</small>.  By default, it is empty. 
 
3240
</td></tr>
 
3241
</table>
 
3242
 
 
3243
<div class="node">
 
3244
<p><hr>
 
3245
<small class=header>
 
3246
Node:<a name="XDB%20Initialization">XDB Initialization</a>,
 
3247
Next:<a rel="next" accesskey="n" href="#JDB%20Initialization">JDB Initialization</a>,
 
3248
Previous:<a rel="previous" accesskey="p" href="#DBX%20Initialization">DBX Initialization</a>,
 
3249
Up:<a rel="up" accesskey="u" href="#Debugger%20Initialization">Debugger Initialization</a>
 
3250
</small>
 
3251
 
 
3252
<br>
 
3253
</div>
 
3254
 
 
3255
<h5 class="subsubsection">XDB Initialization</h5>
 
3256
 
 
3257
<p>
 
3258
<table width="100%">
 
3259
<tr>
 
3260
<td align="left"><b>xdbInitCommands</b><i> </i>(<i>class InitCommands</i>)<i>
 
3261
     </i></td>
 
3262
<td align="right">Resource</td>
 
3263
</tr>
 
3264
</table>
 
3265
<table width="95%" align="center">
 
3266
<tr><td>
 
3267
This string contains a list of newline-separated commands that are
 
3268
initially sent to <small>XDB</small>.  By default, it is empty.
 
3269
 
 
3270
     <p>Do not use this resource to customize <small>DBX</small>; instead, use a
 
3271
personal <code>~/.xdbrc</code> file.  See your <small>XDB</small>
 
3272
documentation for details. 
 
3273
</td></tr>
 
3274
</table>
 
3275
 
 
3276
<p>
 
3277
<table width="100%">
 
3278
<tr>
 
3279
<td align="left"><b>xdbSettings</b><i> </i>(<i>class Settings</i>)<i>
 
3280
     </i></td>
 
3281
<td align="right">Resource</td>
 
3282
</tr>
 
3283
</table>
 
3284
<table width="95%" align="center">
 
3285
<tr><td>
 
3286
This string contains a list of newline-separated commands that are
 
3287
also initially sent to <small>XDB</small>.  By default, it is empty. 
 
3288
</td></tr>
 
3289
</table>
 
3290
 
 
3291
<div class="node">
 
3292
<p><hr>
 
3293
<small class=header>
 
3294
Node:<a name="JDB%20Initialization">JDB Initialization</a>,
 
3295
Next:<a rel="next" accesskey="n" href="#PYDB%20Initialization">PYDB Initialization</a>,
 
3296
Previous:<a rel="previous" accesskey="p" href="#XDB%20Initialization">XDB Initialization</a>,
 
3297
Up:<a rel="up" accesskey="u" href="#Debugger%20Initialization">Debugger Initialization</a>
 
3298
</small>
 
3299
 
 
3300
<br>
 
3301
</div>
 
3302
 
 
3303
<h5 class="subsubsection">JDB Initialization</h5>
 
3304
 
 
3305
<p>
 
3306
<table width="100%">
 
3307
<tr>
 
3308
<td align="left"><b>jdbInitCommands</b><i> </i>(<i>class InitCommands</i>)<i>
 
3309
     </i></td>
 
3310
<td align="right">Resource</td>
 
3311
</tr>
 
3312
</table>
 
3313
<table width="95%" align="center">
 
3314
<tr><td>
 
3315
This string contains a list of newline-separated commands that are
 
3316
initially sent to <small>JDB</small>.  This resource may be used to customize
 
3317
<small>JDB</small>.  By default, it is empty. 
 
3318
</td></tr>
 
3319
</table>
 
3320
 
 
3321
<p>
 
3322
<table width="100%">
 
3323
<tr>
 
3324
<td align="left"><b>jdbSettings</b><i> </i>(<i>class Settings</i>)<i>
 
3325
     </i></td>
 
3326
<td align="right">Resource</td>
 
3327
</tr>
 
3328
</table>
 
3329
<table width="95%" align="center">
 
3330
<tr><td>
 
3331
This string contains a list of newline-separated commands that are
 
3332
also initially sent to <small>JDB</small>.  By default, it is empty.
 
3333
 
 
3334
     <p>This resource is used by <small>DDD</small> to save and restore <small>JDB</small>
 
3335
settings. 
 
3336
</td></tr>
 
3337
</table>
 
3338
 
 
3339
<div class="node">
 
3340
<p><hr>
 
3341
<small class=header>
 
3342
Node:<a name="PYDB%20Initialization">PYDB Initialization</a>,
 
3343
Next:<a rel="next" accesskey="n" href="#Perl%20Initialization">Perl Initialization</a>,
 
3344
Previous:<a rel="previous" accesskey="p" href="#JDB%20Initialization">JDB Initialization</a>,
 
3345
Up:<a rel="up" accesskey="u" href="#Debugger%20Initialization">Debugger Initialization</a>
 
3346
</small>
 
3347
 
 
3348
<br>
 
3349
</div>
 
3350
 
 
3351
<h5 class="subsubsection">PYDB Initialization</h5>
 
3352
 
 
3353
<p>
 
3354
<table width="100%">
 
3355
<tr>
 
3356
<td align="left"><b>pydbInitCommands</b><i> </i>(<i>class InitCommands</i>)<i>
 
3357
     </i></td>
 
3358
<td align="right">Resource</td>
 
3359
</tr>
 
3360
</table>
 
3361
<table width="95%" align="center">
 
3362
<tr><td>
 
3363
This string contains a list of newline-separated commands that are
 
3364
initially sent to <small>PYDB</small>.  By default, it is empty.
 
3365
 
 
3366
     <p>This resource may be used to customize <small>PYDB</small>. 
 
3367
</td></tr>
 
3368
</table>
 
3369
 
 
3370
<p>
 
3371
<table width="100%">
 
3372
<tr>
 
3373
<td align="left"><b>pydbSettings</b><i> </i>(<i>class Settings</i>)<i>
 
3374
     </i></td>
 
3375
<td align="right">Resource</td>
 
3376
</tr>
 
3377
</table>
 
3378
<table width="95%" align="center">
 
3379
<tr><td>
 
3380
This string contains a list of newline-separated commands that are
 
3381
also initially sent to <small>PYDB</small>.  By default, it is empty.
 
3382
 
 
3383
     <p>This resource is used by <small>DDD</small> to save and restore <small>PYDB</small>
 
3384
settings. 
 
3385
</td></tr>
 
3386
</table>
 
3387
 
 
3388
<div class="node">
 
3389
<p><hr>
 
3390
<small class=header>
 
3391
Node:<a name="Perl%20Initialization">Perl Initialization</a>,
 
3392
Next:<a rel="next" accesskey="n" href="#Bash%20Initialization">Bash Initialization</a>,
 
3393
Previous:<a rel="previous" accesskey="p" href="#PYDB%20Initialization">PYDB Initialization</a>,
 
3394
Up:<a rel="up" accesskey="u" href="#Debugger%20Initialization">Debugger Initialization</a>
 
3395
</small>
 
3396
 
 
3397
<br>
 
3398
</div>
 
3399
 
 
3400
<h5 class="subsubsection">Perl Initialization</h5>
 
3401
 
 
3402
<p>
 
3403
<table width="100%">
 
3404
<tr>
 
3405
<td align="left"><b>perlInitCommands</b><i> </i>(<i>class InitCommands</i>)<i>
 
3406
     </i></td>
 
3407
<td align="right">Resource</td>
 
3408
</tr>
 
3409
</table>
 
3410
<table width="95%" align="center">
 
3411
<tr><td>
 
3412
This string contains a list of newline-separated commands that are
 
3413
initially sent to the Perl debugger.  By default, it is empty.
 
3414
 
 
3415
     <p>This resource may be used to customize the Perl debugger. 
 
3416
</td></tr>
 
3417
</table>
 
3418
 
 
3419
<p>
 
3420
<table width="100%">
 
3421
<tr>
 
3422
<td align="left"><b>perlSettings</b><i> </i>(<i>class Settings</i>)<i>
 
3423
     </i></td>
 
3424
<td align="right">Resource</td>
 
3425
</tr>
 
3426
</table>
 
3427
<table width="95%" align="center">
 
3428
<tr><td>
 
3429
This string contains a list of newline-separated commands that are
 
3430
also initially sent to the Perl debugger.  By default, it is empty.
 
3431
 
 
3432
     <p>This resource is used by <small>DDD</small> to save and restore Perl
 
3433
debugger settings. 
 
3434
</td></tr>
 
3435
</table>
 
3436
 
 
3437
<div class="node">
 
3438
<p><hr>
 
3439
<small class=header>
 
3440
Node:<a name="Bash%20Initialization">Bash Initialization</a>,
 
3441
Next:<a rel="next" accesskey="n" href="#Finding%20a%20Place%20to%20Start">Finding a Place to Start</a>,
 
3442
Previous:<a rel="previous" accesskey="p" href="#Perl%20Initialization">Perl Initialization</a>,
 
3443
Up:<a rel="up" accesskey="u" href="#Debugger%20Initialization">Debugger Initialization</a>
 
3444
</small>
 
3445
 
 
3446
<br>
 
3447
</div>
 
3448
 
 
3449
<h5 class="subsubsection">Bash Initialization</h5>
 
3450
 
 
3451
<p>
 
3452
<table width="100%">
 
3453
<tr>
 
3454
<td align="left"><b>bashInitCommands</b><i> </i>(<i>class InitCommands</i>)<i>
 
3455
     </i></td>
 
3456
<td align="right">Resource</td>
 
3457
</tr>
 
3458
</table>
 
3459
<table width="95%" align="center">
 
3460
<tr><td>
 
3461
This string contains a list of newline-separated commands that are
 
3462
initially sent to the Bash debugger.  By default, it is empty.
 
3463
 
 
3464
     <p>This resource may be used to customize the Bash debugger. 
 
3465
</td></tr>
 
3466
</table>
 
3467
 
 
3468
<p>
 
3469
<table width="100%">
 
3470
<tr>
 
3471
<td align="left"><b>bash</b><i> </i>(<i>class Settings</i>)<i>
 
3472
     </i></td>
 
3473
<td align="right">Resource</td>
 
3474
</tr>
 
3475
</table>
 
3476
<table width="95%" align="center">
 
3477
<tr><td>
 
3478
This string contains a list of newline-separated commands that are
 
3479
also initially sent to the Perl debugger.  By default, it is empty.
 
3480
 
 
3481
     <p>This resource is used by <small>DDD</small> to save and restore Bash
 
3482
debugger settings. 
 
3483
</td></tr>
 
3484
</table>
 
3485
 
 
3486
<div class="node">
 
3487
<p><hr>
 
3488
<small class=header>
 
3489
Node:<a name="Finding%20a%20Place%20to%20Start">Finding a Place to Start</a>,
 
3490
Next:<a rel="next" accesskey="n" href="#Opening%20the%20Selection">Opening the Selection</a>,
 
3491
Previous:<a rel="previous" accesskey="p" href="#Bash%20Initialization">Bash Initialization</a>,
 
3492
Up:<a rel="up" accesskey="u" href="#Debugger%20Initialization">Debugger Initialization</a>
 
3493
</small>
 
3494
 
 
3495
<br>
 
3496
</div>
 
3497
 
 
3498
<h5 class="subsubsection">Finding a Place to Start</h5>
 
3499
 
 
3500
<p>
 
3501
<table width="100%">
 
3502
<tr>
 
3503
<td align="left"><b>initSymbols</b><i> </i>(<i>class InitSymbols</i>)<i>
 
3504
     </i></td>
 
3505
<td align="right">Resource</td>
 
3506
</tr>
 
3507
</table>
 
3508
<table width="95%" align="center">
 
3509
<tr><td>
 
3510
When loading an executable, <small>DDD</small> queries the inferior debugger for the
 
3511
initial source location--typically the <code>main</code> function.  If this
 
3512
location is not found, <small>DDD</small> tries other symbols from this
 
3513
newline-separated list.  The default value makes <small>DDD</small> look for a
 
3514
variety of main functions (especially FORTRAN main functions):
 
3515
     <pre class="example">          main\n\
 
3516
          MAIN\n\
 
3517
          main_\n\
 
3518
          MAIN_\n\
 
3519
          main__\n\
 
3520
          MAIN__\n\
 
3521
          _main\n\
 
3522
          _MAIN\n\
 
3523
          __main\n\
 
3524
          __MAIN
 
3525
          </pre>
 
3526
     </td></tr>
 
3527
</table>
 
3528
 
 
3529
<div class="node">
 
3530
<p><hr>
 
3531
<small class=header>
 
3532
Node:<a name="Opening%20the%20Selection">Opening the Selection</a>,
 
3533
Previous:<a rel="previous" accesskey="p" href="#Finding%20a%20Place%20to%20Start">Finding a Place to Start</a>,
 
3534
Up:<a rel="up" accesskey="u" href="#Debugger%20Initialization">Debugger Initialization</a>
 
3535
</small>
 
3536
 
 
3537
<br>
 
3538
</div>
 
3539
 
 
3540
<h5 class="subsubsection">Opening the Selection</h5>
 
3541
 
 
3542
<p>
 
3543
<table width="100%">
 
3544
<tr>
 
3545
<td align="left"><b>openSelection</b><i> </i>(<i>class OpenSelection</i>)<i>
 
3546
     </i></td>
 
3547
<td align="right">Resource</td>
 
3548
</tr>
 
3549
</table>
 
3550
<table width="95%" align="center">
 
3551
<tr><td>
 
3552
If this is <code>on</code>, <small>DDD</small> invoked without argument checks
 
3553
whether the current selection or clipboard contains the file name or
 
3554
URL of an executable program.  If this is so, <small>DDD</small>
 
3555
will automatically open this program for debugging.  If this resource
 
3556
is <code>off</code> (default), <small>DDD</small> invoked without arguments will
 
3557
always start without a debugged program. 
 
3558
</td></tr>
 
3559
</table>
 
3560
 
 
3561
<div class="node">
 
3562
<p><hr>
 
3563
<small class=header>
 
3564
Node:<a name="Debugger%20Communication">Debugger Communication</a>,
 
3565
Previous:<a rel="previous" accesskey="p" href="#Debugger%20Initialization">Debugger Initialization</a>,
 
3566
Up:<a rel="up" accesskey="u" href="#Customizing%20Debugger%20Interaction">Customizing Debugger Interaction</a>
 
3567
</small>
 
3568
 
 
3569
<br>
 
3570
</div>
 
3571
 
 
3572
<h4 class="subsection">Communication with the Inferior Debugger</h4>
 
3573
 
 
3574
   <p>The following resources control the communication with the inferior
 
3575
debugger.
 
3576
 
 
3577
<p>
 
3578
<table width="100%">
 
3579
<tr>
 
3580
<td align="left"><b>blockTTYInput</b><i> </i>(<i>class BlockTTYInput</i>)<i>
 
3581
     </i></td>
 
3582
<td align="right">Resource</td>
 
3583
</tr>
 
3584
</table>
 
3585
<table width="95%" align="center">
 
3586
<tr><td>
 
3587
Whether <small>DDD</small> should block when reading data from the inferior debugger
 
3588
via the pseudo-tty interface.  Most <small>UNIX</small> systems except <small>GNU</small>/Linux
 
3589
<em>require</em> this; set it to <code>on</code>.  On <small>GNU</small>/Linux, set it to
 
3590
<code>off</code>.  The value <code>auto</code> (default) will always select the
 
3591
"best" choice (that is, the best choice known to the <small>DDD</small>
 
3592
developers). 
 
3593
</td></tr>
 
3594
</table>
 
3595
 
 
3596
<p>
 
3597
<table width="100%">
 
3598
<tr>
 
3599
<td align="left"><b>bufferGDBOutput</b><i> </i>(<i>class BufferGDBOutput</i>)<i>
 
3600
     </i></td>
 
3601
<td align="right">Resource</td>
 
3602
</tr>
 
3603
</table>
 
3604
<table width="95%" align="center">
 
3605
<tr><td>
 
3606
If this is <code>on</code>, all output from the inferior debugger is buffered
 
3607
until a debugger prompt appears.  This makes it easier for <small>DDD</small> to
 
3608
parse the output, but has the drawback that interaction with a running
 
3609
debuggee in the debugger console is not possible.  If <code>off</code>, output
 
3610
is shown as soon as it arrives, enabling interaction, but making it
 
3611
harder for <small>DDD</small> to parse the output.  If <code>auto</code> (default), output
 
3612
is buffered if and only if the execution window is open, which redirects
 
3613
debuggee output and thus enables interaction.  See <a href="#Using%20the%20Execution%20Window">Using the Execution Window</a>, for details. 
 
3614
</td></tr>
 
3615
</table>
 
3616
 
 
3617
<p>
 
3618
<table width="100%">
 
3619
<tr>
 
3620
<td align="left"><b>contInterruptDelay</b><i> </i>(<i>class InterruptDelay</i>)<i>
 
3621
     </i></td>
 
3622
<td align="right">Resource</td>
 
3623
</tr>
 
3624
</table>
 
3625
<table width="95%" align="center">
 
3626
<tr><td>
 
3627
The time (in ms) to wait before automatically interrupting a <code>cont</code>
 
3628
command.  <small>DDD</small> cannot interrupt a <code>cont</code> command immediately,
 
3629
because this may disturb the status change of the process.  Default is
 
3630
<code>200</code>. 
 
3631
</td></tr>
 
3632
</table>
 
3633
 
 
3634
<p>
 
3635
<table width="100%">
 
3636
<tr>
 
3637
<td align="left"><b>displayTimeout</b><i> </i>(<i>class DisplayTimeout</i>)<i>
 
3638
     </i></td>
 
3639
<td align="right">Resource</td>
 
3640
</tr>
 
3641
</table>
 
3642
<table width="95%" align="center">
 
3643
<tr><td>
 
3644
The time (in ms) to wait for the inferior debugger to finish a partial
 
3645
display information.  Default is <code>2000</code>. 
 
3646
</td></tr>
 
3647
</table>
 
3648
 
 
3649
<p>
 
3650
<table width="100%">
 
3651
<tr>
 
3652
<td align="left"><b>positionTimeout</b><i> </i>(<i>class PositionTimeout</i>)<i>
 
3653
     </i></td>
 
3654
<td align="right">Resource</td>
 
3655
</tr>
 
3656
</table>
 
3657
<table width="95%" align="center">
 
3658
<tr><td>
 
3659
The time (in ms) to wait for the inferior debugger to finish a partial
 
3660
position information.  Default is <code>500</code>. 
 
3661
</td></tr>
 
3662
</table>
 
3663
 
 
3664
<p>
 
3665
<table width="100%">
 
3666
<tr>
 
3667
<td align="left"><b>questionTimeout</b><i> </i>(<i>class QuestionTimeout</i>)<i>
 
3668
     </i></td>
 
3669
<td align="right">Resource</td>
 
3670
</tr>
 
3671
</table>
 
3672
<table width="95%" align="center">
 
3673
<tr><td>
 
3674
The time (in seconds) to wait for the inferior debugger to reply. 
 
3675
Default is <code>10</code>. 
 
3676
</td></tr>
 
3677
</table>
 
3678
 
 
3679
<p>
 
3680
<table width="100%">
 
3681
<tr>
 
3682
<td align="left"><b>runInterruptDelay</b><i> </i>(<i>class InterruptDelay</i>)<i>
 
3683
     </i></td>
 
3684
<td align="right">Resource</td>
 
3685
</tr>
 
3686
</table>
 
3687
<table width="95%" align="center">
 
3688
<tr><td>
 
3689
The time (in ms) to wait before automatically interrupting a <code>run</code>
 
3690
command.  <small>DDD</small> cannot interrupt a <code>cont</code> command immediately,
 
3691
because this may disturb process creation.  Default is <code>2000</code>. 
 
3692
</td></tr>
 
3693
</table>
 
3694
 
 
3695
<p>
 
3696
<table width="100%">
 
3697
<tr>
 
3698
<td align="left"><b>stopAndContinue</b><i> </i>(<i>class StopAndContinue</i>)<i>
 
3699
     </i></td>
 
3700
<td align="right">Resource</td>
 
3701
</tr>
 
3702
</table>
 
3703
<table width="95%" align="center">
 
3704
<tr><td>
 
3705
If <code>on</code> (default), debugger commands interrupt program execution,
 
3706
resuming execution after the command has completed.  This only happens
 
3707
if the last debugger command was either a <code>run</code> or a
 
3708
<code>continue</code> command.  If <code>off</code>, debugger commands do not
 
3709
interrupt program execution. 
 
3710
</td></tr>
 
3711
</table>
 
3712
 
 
3713
<p>
 
3714
<table width="100%">
 
3715
<tr>
 
3716
<td align="left"><b>synchronousDebugger</b><i> </i>(<i>class SynchronousDebugger</i>)<i>
 
3717
     </i></td>
 
3718
<td align="right">Resource</td>
 
3719
</tr>
 
3720
</table>
 
3721
<table width="95%" align="center">
 
3722
<tr><td>
 
3723
If <code>on</code>, X events are not processed while the debugger is busy. 
 
3724
This may result in slightly better performance on single-processor
 
3725
systems.  See <a href="#Options">Options</a>, for the <code>--sync-debugger</code> option. 
 
3726
</td></tr>
 
3727
</table>
 
3728
 
 
3729
<p>
 
3730
<table width="100%">
 
3731
<tr>
 
3732
<td align="left"><b>terminateOnEOF</b><i> </i>(<i>class TerminateOnEOF</i>)<i>
 
3733
     </i></td>
 
3734
<td align="right">Resource</td>
 
3735
</tr>
 
3736
</table>
 
3737
<table width="95%" align="center">
 
3738
<tr><td>
 
3739
If <code>on</code>, <small>DDD</small> terminates the inferior debugger when
 
3740
<small>DDD</small> detects an EOF condition (that is, as soon as the inferior
 
3741
debugger closes its output channel).  This was the default behavior in
 
3742
<small>DDD</small> 2.x and earlier.  If <code>off</code> (default), <small>DDD</small> takes
 
3743
no special action. 
 
3744
</td></tr>
 
3745
</table>
 
3746
 
 
3747
<p>
 
3748
<table width="100%">
 
3749
<tr>
 
3750
<td align="left"><b>useTTYCommand</b><i> </i>(<i>class UseTTYCommand</i>)<i>
 
3751
     </i></td>
 
3752
<td align="right">Resource</td>
 
3753
</tr>
 
3754
</table>
 
3755
<table width="95%" align="center">
 
3756
<tr><td>
 
3757
If <code>on</code>, use the <small>GDB</small> <code>tty</code> command for redirecting
 
3758
input/output to the separate execution window.  If <code>off</code>, use
 
3759
explicit redirection through shell redirection operators <code>&lt;</code> and
 
3760
<code>&gt;</code>.  The default is <code>off</code> (explicit redirection), since on
 
3761
some systems, the <code>tty</code> command does not work properly on some
 
3762
<small>GDB</small> versions. 
 
3763
</td></tr>
 
3764
</table>
 
3765
 
 
3766
<div class="node">
 
3767
<p><hr>
 
3768
<small class=header>
 
3769
Node:<a name="Windows">Windows</a>,
 
3770
Next:<a rel="next" accesskey="n" href="#Navigating">Navigating</a>,
 
3771
Previous:<a rel="previous" accesskey="p" href="#Invocation">Invocation</a>,
 
3772
Up:<a rel="up" accesskey="u" href="#Top">Top</a>
 
3773
</small>
 
3774
 
 
3775
<br>
 
3776
</div>
 
3777
 
 
3778
<h2 class="chapter">The DDD Windows</h2>
 
3779
 
 
3780
   <p><small>DDD</small> is composed of three main windows.  From top to bottom, we
 
3781
have:
 
3782
 
 
3783
     <ul>
 
3784
<li>The <dfn>Data Window</dfn> shows the current data of the debugged program. 
 
3785
See <a href="#Displaying%20Values">Displaying Values</a>, for details. 
 
3786
<li>The <dfn>Source Window</dfn> shows the current source code of the debugged
 
3787
program.  See <a href="#Navigating">Navigating</a>, for details. 
 
3788
<li>The <dfn>Debugger Console</dfn> accepts debugger commands and shows debugger
 
3789
messages.  See <a href="#Commands">Commands</a>, for details. 
 
3790
</ul>
 
3791
 
 
3792
<br><p>
 
3793
<div align="center"><img src="PICS/ddd-all.jpg" alt="PICS/ddd-all.jpg"></div>
 
3794
<br><p>
 
3795
   <p>Besides these three main windows, there are some other optional windows:
 
3796
 
 
3797
     <ul>
 
3798
<li>The <dfn>Command Tool</dfn> offers buttons for frequently used commands. 
 
3799
It is usually placed on the source window. 
 
3800
See <a href="#Command%20Tool">Command Tool</a>, for details. 
 
3801
<li>The <dfn>Machine Code Window</dfn> shows the current machine code.  It is
 
3802
usually placed beneath the current source.  See <a href="#Machine%20Code">Machine Code</a>, for
 
3803
details. 
 
3804
<li>The <dfn>Execution Window</dfn> shows the input and output of the debugged
 
3805
program.  See <a href="#Using%20the%20Execution%20Window">Using the Execution Window</a>, for details. 
 
3806
</ul>
 
3807
 
 
3808
<ul class="menu">
 
3809
<li><a accesskey="1" href="#Menu%20Bar">Menu Bar</a>:                     All <small>DDD</small> pull-down menus. 
 
3810
<li><a accesskey="2" href="#Tool%20Bar">Tool Bar</a>:                     The <small>DDD</small> icon buttons. 
 
3811
<li><a accesskey="3" href="#Command%20Tool">Command Tool</a>:                 The floating command tool. 
 
3812
<li><a accesskey="4" href="#Getting%20Help">Getting Help</a>:                 What does this thing mean? 
 
3813
<li><a accesskey="5" href="#Undo%20and%20Redo">Undo and Redo</a>:                Oops! 
 
3814
<li><a accesskey="6" href="#Customizing">Customizing</a>:                  You can customize <small>DDD</small>
 
3815
</ul>
 
3816
 
 
3817
<div class="node">
 
3818
<p><hr>
 
3819
<small class=header>
 
3820
Node:<a name="Menu%20Bar">Menu Bar</a>,
 
3821
Next:<a rel="next" accesskey="n" href="#Tool%20Bar">Tool Bar</a>,
 
3822
Up:<a rel="up" accesskey="u" href="#Windows">Windows</a>
 
3823
</small>
 
3824
 
 
3825
<br>
 
3826
</div>
 
3827
 
 
3828
<h3 class="section">The Menu Bar</h3>
 
3829
 
 
3830
   <p>The <small>DDD</small> Menu Bar gives you access to all <small>DDD</small> functions.
 
3831
 
 
3832
     <dl>
 
3833
<dt><code>File</code>
 
3834
     <dd>Perform file-related operations such as selecting programs, processes,
 
3835
and sessions, printing graphs, recompiling, as well as exiting
 
3836
<small>DDD</small>.
 
3837
 
 
3838
     <br><dt><code>Edit</code>
 
3839
     <dd>Perform standard editing operations, such as cutting, copying, pasting,
 
3840
and killing selected text.  Also allows editing <small>DDD</small> options and
 
3841
preferences.
 
3842
 
 
3843
     <br><dt><code>View</code>
 
3844
     <dd>Allows accessing the individual <small>DDD</small> windows.
 
3845
 
 
3846
     <br><dt><code>Program</code>
 
3847
     <dd>Perform operations related to the program being debugged, such as
 
3848
starting and stopping the program.
 
3849
 
 
3850
     <br><dt><code>Commands</code>
 
3851
     <dd>Perform operations related to <small>DDD</small> commands, such as accessing
 
3852
the command history or defining new commands.
 
3853
 
 
3854
     <br><dt><code>Status</code>
 
3855
     <dd>Examine the program status, such as the stack traces, registers, or
 
3856
threads.
 
3857
 
 
3858
     <br><dt><code>Source</code>
 
3859
     <dd>Perform source-related operations such as looking up items or editing
 
3860
breakpoints.
 
3861
 
 
3862
     <br><dt><code>Data</code>
 
3863
     <dd>Perform data-related operations such as editing displays or layouting
 
3864
the display graph.
 
3865
 
 
3866
     <br><dt><code>Maintenance</code>
 
3867
     <dd>Perform operations that are useful for debugging <small>DDD</small>.  By
 
3868
default, this menu is disabled.
 
3869
 
 
3870
     <br><dt><code>Help</code>
 
3871
     <dd>Give help on <small>DDD</small> usage. 
 
3872
</dl>
 
3873
 
 
3874
   <p>There are two ways of selecting an item from a pull-down menu:
 
3875
 
 
3876
     <ul>
 
3877
<li>Select an item in the menu bar by moving the cursor over it and
 
3878
click <em>mouse button 1</em>.  Then move the cursor over the menu item
 
3879
you want to choose and click left again.
 
3880
 
 
3881
     <li>Select an item in the menu bar by moving the cursor over it and
 
3882
click and hold <em>mouse button 1</em>.  With the mouse button depressed,
 
3883
move the cursor over the menu item you want, then release it to make
 
3884
your selection. 
 
3885
</ul>
 
3886
 
 
3887
   <p>The menus can also be <dfn>torn off</dfn> (i.e. turned into a persistent
 
3888
window) by selecting the dashed line at the top.
 
3889
 
 
3890
   <p>If a command in the pull-down menu is not applicable in a given
 
3891
situation, the command is <dfn>disabled</dfn> and its name appears faded. 
 
3892
You cannot invoke items that are faded.  For example, many commands on
 
3893
the <code>Edit</code> menu appear faded until you select text on which they
 
3894
are to operate; after you select a block of text, edit commands are
 
3895
enabled.
 
3896
 
 
3897
<ul class="menu">
 
3898
<li><a accesskey="1" href="#File%20Menu">File Menu</a>:                    Selecting programs and processes. 
 
3899
<li><a accesskey="2" href="#Edit%20Menu">Edit Menu</a>:                    Cut, copy, paste, and preferences. 
 
3900
<li><a accesskey="3" href="#View%20Menu">View Menu</a>:                    All <small>DDD</small> windows. 
 
3901
<li><a accesskey="4" href="#Program%20Menu">Program Menu</a>:                 Starting and stopping. 
 
3902
<li><a accesskey="5" href="#Commands%20Menu">Commands Menu</a>:                All <small>DDD</small> commands. 
 
3903
<li><a accesskey="6" href="#Status%20Menu">Status Menu</a>:                  Examining the program status. 
 
3904
<li><a accesskey="7" href="#Source%20Menu">Source Menu</a>:                  Navigating around. 
 
3905
<li><a accesskey="8" href="#Data%20Menu">Data Menu</a>:                    Examining data. 
 
3906
<li><a accesskey="9" href="#Maintenance%20Menu">Maintenance Menu</a>:             Maintaining <small>DDD</small>. 
 
3907
<li><a href="#Help%20Menu">Help Menu</a>:                    Getting help. 
 
3908
<li><a href="#Customizing%20the%20Menu%20Bar">Customizing the Menu Bar</a>:     Alternate key bindings, etc. 
 
3909
</ul>
 
3910
 
 
3911
<div class="node">
 
3912
<p><hr>
 
3913
<small class=header>
 
3914
Node:<a name="File%20Menu">File Menu</a>,
 
3915
Next:<a rel="next" accesskey="n" href="#Edit%20Menu">Edit Menu</a>,
 
3916
Up:<a rel="up" accesskey="u" href="#Menu%20Bar">Menu Bar</a>
 
3917
</small>
 
3918
 
 
3919
<br>
 
3920
</div>
 
3921
 
 
3922
<h4 class="subsection">The File Menu</h4>
 
3923
 
 
3924
   <p>The <code>File</code> menu contains file-related operations such as selecting
 
3925
programs, processes, and sessions, printing graphs, recompiling, as well
 
3926
as exiting <small>DDD</small>.
 
3927
 
 
3928
     <dl>
 
3929
<dt><code>Open Program</code>
 
3930
     <dd><dt><code>Open Class</code>
 
3931
     <dd>Open a program or class to be debugged (&lt;Ctrl+O&gt;).  See <a href="#Opening%20Programs">Opening Programs</a>, for details.
 
3932
 
 
3933
     <br><dt><code>Open Recent</code>
 
3934
     <dd>Re-open a recently opened program to be debugged.  See <a href="#Opening%20Programs">Opening Programs</a>, for details.
 
3935
 
 
3936
     <br><dt><code>Open Core Dump</code>
 
3937
     <dd>Open a core dump for the currently debugged program.  See <a href="#Opening%20Core%20Dumps">Opening Core Dumps</a>, for details.
 
3938
 
 
3939
     <br><dt><code>Open Source</code>
 
3940
     <dd>Open a source file of the currently debugged program.  See <a href="#Opening%20Source%20Files">Opening Source Files</a>, for details.
 
3941
 
 
3942
     <br><dt><code>Open Session</code>
 
3943
     <dd>Resume a previously saved <small>DDD</small> session (&lt;Ctrl+N&gt;).  See <a href="#Resuming%20Sessions">Resuming Sessions</a>, for details.
 
3944
 
 
3945
     <br><dt><code>Save Session As</code>
 
3946
     <dd>Save the current <small>DDD</small> session such that you can resume it later
 
3947
(&lt;Ctrl+S&gt;).  See <a href="#Saving%20Sessions">Saving Sessions</a>, for details.
 
3948
 
 
3949
     <br><dt><code>Attach to Process</code>
 
3950
     <dd>Attach to a running process of the debugged program.  See <a href="#Attaching%20to%20a%20Process">Attaching to a Process</a>, for details.
 
3951
 
 
3952
     <br><dt><code>Detach Process</code>
 
3953
     <dd>Detach from the running process.  See <a href="#Attaching%20to%20a%20Process">Attaching to a Process</a>, for
 
3954
details.
 
3955
 
 
3956
     <br><dt><code>Print Graph</code>
 
3957
     <dd>Print the current graph on a printer.  See <a href="#Printing%20the%20Graph">Printing the Graph</a>, for
 
3958
details.
 
3959
 
 
3960
     <br><dt><code>Change Directory</code>
 
3961
     <dd>Change the working directory of your program.  See <a href="#Working%20Directory">Working Directory</a>,
 
3962
for details.
 
3963
 
 
3964
     <br><dt><code>Make</code>
 
3965
     <dd>Run the <code>make</code> program (&lt;Ctrl+M&gt;).  See <a href="#Recompiling">Recompiling</a>, for
 
3966
details.
 
3967
 
 
3968
     <br><dt><code>Close</code>
 
3969
     <dd>Close this <small>DDD</small> window (&lt;Ctrl+W&gt;).  See <a href="#Quitting">Quitting</a>, for details.
 
3970
 
 
3971
     <br><dt><code>Restart</code>
 
3972
     <dd>Restart <small>DDD</small>.
 
3973
 
 
3974
     <br><dt><code>Exit</code>
 
3975
     <dd>Exit <small>DDD</small> (&lt;Ctrl+Q&gt;).  See <a href="#Quitting">Quitting</a>, for details. 
 
3976
</dl>
 
3977
 
 
3978
<div class="node">
 
3979
<p><hr>
 
3980
<small class=header>
 
3981
Node:<a name="Edit%20Menu">Edit Menu</a>,
 
3982
Next:<a rel="next" accesskey="n" href="#View%20Menu">View Menu</a>,
 
3983
Previous:<a rel="previous" accesskey="p" href="#File%20Menu">File Menu</a>,
 
3984
Up:<a rel="up" accesskey="u" href="#Menu%20Bar">Menu Bar</a>
 
3985
</small>
 
3986
 
 
3987
<br>
 
3988
</div>
 
3989
 
 
3990
<h4 class="subsection">The Edit Menu</h4>
 
3991
 
 
3992
   <p>The <code>Edit</code> menu contains standard editing operations, such as
 
3993
cutting, copying, pasting, and killing selected text.  Also allows
 
3994
editing <small>DDD</small> options and preferences.
 
3995
 
 
3996
     <dl>
 
3997
<dt><code>Undo</code>
 
3998
     <dd>Undo the most recent action (&lt;Ctrl+Z&gt;).  Almost all commands can be
 
3999
undone this way.  See <a href="#Undo%20and%20Redo">Undo and Redo</a>, for details.
 
4000
 
 
4001
     <br><dt><code>Redo</code>
 
4002
     <dd>Redo the action most recently undone (&lt;Ctrl+Y&gt;).  Every command
 
4003
undone can be redone this way.  See <a href="#Undo%20and%20Redo">Undo and Redo</a>, for details.
 
4004
 
 
4005
     <br><dt><code>Cut</code>
 
4006
     <dd>Removes the selected text block from the current text area and makes it
 
4007
the X clipboard selection (&lt;Ctrl+X&gt; or &lt;Shift+Del&gt;;
 
4008
See <a href="#Customizing%20the%20Edit%20Menu">Customizing the Edit Menu</a>, for details).  Before executing this
 
4009
command, you have to select a region in a text area--either with the
 
4010
mouse or with the usual text selection keys.
 
4011
 
 
4012
     <p>This item can also be applied to displays (see <a href="#Deleting%20Displays">Deleting Displays</a>).
 
4013
 
 
4014
     <br><dt><code>Copy</code>
 
4015
     <dd>Makes a selected text block the X clipboard selection (&lt;Ctrl+C&gt; or
 
4016
&lt;Ctrl+Ins&gt;; See <a href="#Customizing%20the%20Edit%20Menu">Customizing the Edit Menu</a>, for details).  You
 
4017
can select text by selecting a text region with the usual text selection
 
4018
keys or with the mouse.  See <a href="#Customizing%20the%20Edit%20Menu">Customizing the Edit Menu</a>, for changing
 
4019
the default accelerator.
 
4020
 
 
4021
     <p>This item can also be applied to displays (see <a href="#Deleting%20Displays">Deleting Displays</a>).
 
4022
 
 
4023
     <br><dt><code>Paste</code>
 
4024
     <dd>Inserts the current value of the X clipboard selection in the most
 
4025
recently selected text area (&lt;Ctrl+V&gt; or &lt;Shift+Ins&gt;;
 
4026
See <a href="#Customizing%20the%20Edit%20Menu">Customizing the Edit Menu</a>, for details).  You can paste in text
 
4027
you have placed in the clipboard using <code>Copy</code> or <code>Cut</code>.  You
 
4028
can also use <code>Paste</code> to insert text that was pasted into the
 
4029
clipboard from other applications.
 
4030
 
 
4031
     <br><dt><code>Clear</code>
 
4032
     <dd>Clears the most recently selected text area (&lt;Ctrl+U&gt;).
 
4033
 
 
4034
     <br><dt><code>Delete</code>
 
4035
     <dd>Removes the selected text block from the most recently selected text
 
4036
area, but does not make it the X clipboard selection.
 
4037
 
 
4038
     <p>This item can also be applied to displays (see <a href="#Deleting%20Displays">Deleting Displays</a>).
 
4039
 
 
4040
     <br><dt><code>Select All</code>
 
4041
     <dd>Selects all characters from the most recently selected text area
 
4042
(&lt;Ctrl+A&gt; or or &lt;Ctrl+Shift+A&gt;; see <a href="#Customizing%20the%20Edit%20Menu">Customizing the Edit Menu</a>, for details).
 
4043
 
 
4044
     <br><dt><code>Preferences</code>
 
4045
     <dd>Allows you to customize <small>DDD</small> interactively.  See <a href="#Customizing">Customizing</a>,
 
4046
for details.
 
4047
 
 
4048
     <br><dt><code>Debugger Settings</code>
 
4049
     <dd>Allows you to customize the inferior debugger.  See <a href="#Debugger%20Settings">Debugger Settings</a>, for details.
 
4050
 
 
4051
     <br><dt><code>Save Options</code>
 
4052
     <dd>If set, all preferences and settings will be saved for the next <small>DDD</small>
 
4053
invocation.  See <a href="#Saving%20Options">Saving Options</a>, for details. 
 
4054
</dl>
 
4055
 
 
4056
<div class="node">
 
4057
<p><hr>
 
4058
<small class=header>
 
4059
Node:<a name="View%20Menu">View Menu</a>,
 
4060
Next:<a rel="next" accesskey="n" href="#Program%20Menu">Program Menu</a>,
 
4061
Previous:<a rel="previous" accesskey="p" href="#Edit%20Menu">Edit Menu</a>,
 
4062
Up:<a rel="up" accesskey="u" href="#Menu%20Bar">Menu Bar</a>
 
4063
</small>
 
4064
 
 
4065
<br>
 
4066
</div>
 
4067
 
 
4068
<h4 class="subsection">The View Menu</h4>
 
4069
 
 
4070
   <p>The <code>View</code> menu allows accessing the individual <small>DDD</small>
 
4071
windows.
 
4072
 
 
4073
     <dl>
 
4074
<dt><code>Command Tool</code>
 
4075
     <dd>Open and recenter the command tool (&lt;Alt+8&gt;).  See <a href="#Command%20Tool">Command Tool</a>,
 
4076
for details.
 
4077
 
 
4078
     <br><dt><code>Execution Window</code>
 
4079
     <dd>Open the separate execution window (&lt;Alt+9&gt;).  See <a href="#Using%20the%20Execution%20Window">Using the Execution Window</a>, for details.
 
4080
 
 
4081
     <br><dt><code>Debugger Console</code>
 
4082
     <dd>Open the debugger console (&lt;Alt+1&gt;).  See <a href="#Commands">Commands</a>, for details.
 
4083
 
 
4084
     <br><dt><code>Source Window</code>
 
4085
     <dd>Open the source window (&lt;Alt+2&gt;).  See <a href="#Navigating">Navigating</a>, for details.
 
4086
 
 
4087
     <br><dt><code>Data Window</code>
 
4088
     <dd>Open the data window (&lt;Alt+3&gt;).  See <a href="#Displaying%20Values">Displaying Values</a>, for details.
 
4089
 
 
4090
     <br><dt><code>Machine Code Window</code>
 
4091
     <dd>Show machine code (&lt;Alt+4&gt;).  See <a href="#Machine%20Code">Machine Code</a>, for details. 
 
4092
</dl>
 
4093
 
 
4094
<div class="node">
 
4095
<p><hr>
 
4096
<small class=header>
 
4097
Node:<a name="Program%20Menu">Program Menu</a>,
 
4098
Next:<a rel="next" accesskey="n" href="#Commands%20Menu">Commands Menu</a>,
 
4099
Previous:<a rel="previous" accesskey="p" href="#View%20Menu">View Menu</a>,
 
4100
Up:<a rel="up" accesskey="u" href="#Menu%20Bar">Menu Bar</a>
 
4101
</small>
 
4102
 
 
4103
<br>
 
4104
</div>
 
4105
 
 
4106
<h4 class="subsection">The Program Menu</h4>
 
4107
 
 
4108
   <p>The <code>Program</code> menu performs operations related to the program being
 
4109
debugged, such as starting and stopping the program.
 
4110
 
 
4111
   <p>Most of these operations are also found on the command tool
 
4112
(see <a href="#Command%20Tool">Command Tool</a>).
 
4113
 
 
4114
     <dl>
 
4115
<dt><code>Run</code>
 
4116
     <dd>Start program execution, prompting for program arguments (&lt;F2&gt;). 
 
4117
See <a href="#Starting%20Program%20Execution">Starting Program Execution</a>, for details.
 
4118
 
 
4119
     <br><dt><code>Run Again</code>
 
4120
     <dd>Start program execution with the most recently used arguments (&lt;F3&gt;). 
 
4121
See <a href="#Starting%20Program%20Execution">Starting Program Execution</a>, for details.
 
4122
 
 
4123
     <br><dt><code>Run in Execution Window</code>
 
4124
     <dd>If enabled, start next program execution in separate execution window. 
 
4125
See <a href="#Using%20the%20Execution%20Window">Using the Execution Window</a>, for details.
 
4126
 
 
4127
     <br><dt><code>Step</code>
 
4128
     <dd>Continue running your program until control reaches a different source
 
4129
line, then stop it and return control to <small>DDD</small> (&lt;F5&gt;). 
 
4130
See <a href="#Resuming%20Execution">Resuming Execution</a>, for details.
 
4131
 
 
4132
     <br><dt><code>Step Instruction</code>
 
4133
     <dd>Execute one machine instruction, then stop and return to <small>DDD</small>
 
4134
(&lt;Shift+F5&gt;).  See <a href="#Machine%20Code%20Execution">Machine Code Execution</a>, for details.
 
4135
 
 
4136
     <br><dt><code>Next</code>
 
4137
     <dd>Continue to the next source line in the current (innermost) stack frame
 
4138
(&lt;F6&gt;).  This is similar to <code>Step</code>, but function calls that
 
4139
appear within the line of code are executed without stopping. 
 
4140
See <a href="#Resuming%20Execution">Resuming Execution</a>, for details.
 
4141
 
 
4142
     <br><dt><code>Next Instruction</code>
 
4143
     <dd>Execute one machine instruction, but if it is a function call,
 
4144
proceed until the function returns (&lt;Shift+F6&gt;). 
 
4145
See <a href="#Machine%20Code%20Execution">Machine Code Execution</a>, for details.
 
4146
 
 
4147
     <br><dt><code>Until</code>
 
4148
     <dd>Continue running until a source line past the current line, in the
 
4149
current stack frame, is reached (&lt;F7&gt;).  See <a href="#Resuming%20Execution">Resuming Execution</a>,
 
4150
for details.
 
4151
 
 
4152
     <br><dt><code>Finish</code>
 
4153
     <dd>Continue running until just after function in the selected stack frame
 
4154
returns (&lt;F8&gt;).  Print the returned value (if any).  See <a href="#Resuming%20Execution">Resuming Execution</a>, for details.
 
4155
 
 
4156
     <br><dt><code>Continue</code>
 
4157
     <dd>Resume program execution, at the address where your program last stopped
 
4158
(&lt;F9&gt;); any breakpoints set at that address are bypassed. 
 
4159
See <a href="#Resuming%20Execution">Resuming Execution</a>, for details.
 
4160
 
 
4161
     <br><dt><code>Continue Without Signal</code>
 
4162
     <dd>Continue execution without giving a signal (&lt;Shift+F9&gt;).  This is
 
4163
useful when your program stopped on account of a signal and would
 
4164
ordinary see the signal when resumed with <code>Continue</code>. 
 
4165
See <a href="#Signals">Signals</a>, for details.
 
4166
 
 
4167
     <br><dt><code>Kill</code>
 
4168
     <dd>Kill the process of the debugged program (&lt;F4&gt;).  See <a href="#Killing%20the%20Program">Killing the Program</a>, for details.
 
4169
 
 
4170
     <br><dt><code>Interrupt</code>
 
4171
     <dd>Interrupt program execution (&lt;Esc&gt; or &lt;Ctrl+C&gt;;
 
4172
see <a href="#Customizing%20the%20Edit%20Menu">Customizing the Edit Menu</a>, for details).  This is equivalent to
 
4173
sending an interrupt signal to the process.  See <a href="#Interrupting">Interrupting</a>, for
 
4174
details.
 
4175
 
 
4176
     <br><dt><code>Abort</code>
 
4177
     <dd>Abort program execution (and maybe debugger execution, too;
 
4178
&lt;Ctrl+\&gt;).  This is equivalent to sending a <code>SIGABRT</code> signal to
 
4179
the process.  See <a href="#Quitting">Quitting</a>, for details. 
 
4180
</dl>
 
4181
 
 
4182
<div class="node">
 
4183
<p><hr>
 
4184
<small class=header>
 
4185
Node:<a name="Commands%20Menu">Commands Menu</a>,
 
4186
Next:<a rel="next" accesskey="n" href="#Status%20Menu">Status Menu</a>,
 
4187
Previous:<a rel="previous" accesskey="p" href="#Program%20Menu">Program Menu</a>,
 
4188
Up:<a rel="up" accesskey="u" href="#Menu%20Bar">Menu Bar</a>
 
4189
</small>
 
4190
 
 
4191
<br>
 
4192
</div>
 
4193
 
 
4194
<h4 class="subsection">The Commands Menu</h4>
 
4195
 
 
4196
   <p>The <code>Commands</code> menu performs operations related to <small>DDD</small>
 
4197
commands, such as accessing the command history or defining new
 
4198
commands.
 
4199
 
 
4200
   <p>Most of these items are not meant to be actually executed via the menu;
 
4201
instead, they serve as <em>reminder</em> for the equivalent keyboard
 
4202
commands.
 
4203
 
 
4204
     <dl>
 
4205
<dt><code>Command History</code>
 
4206
     <dd>View the command history.  See <a href="#Command%20History">Command History</a>, for details.
 
4207
 
 
4208
     <br><dt><code>Previous</code>
 
4209
     <dd>Show the previous command from the command history (&lt;Up&gt;). 
 
4210
See <a href="#Command%20History">Command History</a>, for details.
 
4211
 
 
4212
     <br><dt><code>Next</code>
 
4213
     <dd>Show the next command from the command history (&lt;Down&gt;). 
 
4214
See <a href="#Command%20History">Command History</a>, for details.
 
4215
 
 
4216
     <br><dt><code>Find Backward</code>
 
4217
     <dd>Do an incremental search backward through the command history
 
4218
(&lt;Ctrl+B&gt;).  See <a href="#Command%20History">Command History</a>, for details.
 
4219
 
 
4220
     <br><dt><code>Find Forward</code>
 
4221
     <dd>Do an incremental search forward through the command history (&lt;Ctrl+F&gt;). 
 
4222
See <a href="#Command%20History">Command History</a>, for details.
 
4223
 
 
4224
     <br><dt><code>Quit Search</code>
 
4225
     <dd>Quit incremental search through the command history (&lt;Esc&gt;). 
 
4226
See <a href="#Command%20History">Command History</a>, for details.
 
4227
 
 
4228
     <br><dt><code>Complete</code>
 
4229
     <dd>Complete the current command in the debugger console (&lt;Tab&gt;). 
 
4230
See <a href="#Entering%20Commands">Entering Commands</a>, for details.
 
4231
 
 
4232
     <br><dt><code>Apply</code>
 
4233
     <dd>Apply the current command in the debugger console (&lt;Apply&gt;). 
 
4234
See <a href="#Entering%20Commands">Entering Commands</a>, for details.
 
4235
 
 
4236
     <br><dt><code>Clear Line</code>
 
4237
     <dd>Clear the current command line in the debugger console (&lt;Ctrl+U&gt;). 
 
4238
See <a href="#Entering%20Commands">Entering Commands</a>, for details.
 
4239
 
 
4240
     <br><dt><code>Clear Window</code>
 
4241
     <dd>Clear the debugger console (&lt;Shift+Ctrl+U&gt;).  See <a href="#Entering%20Commands">Entering Commands</a>, for details.
 
4242
 
 
4243
     <br><dt><code>Define Command</code>
 
4244
     <dd>Define a new debugger command.  See <a href="#Defining%20Commands">Defining Commands</a>, for details.
 
4245
 
 
4246
     <br><dt><code>Edit Buttons</code>
 
4247
     <dd>Customize <small>DDD</small> buttons.  See <a href="#Defining%20Buttons">Defining Buttons</a>, for details. 
 
4248
</dl>
 
4249
 
 
4250
<div class="node">
 
4251
<p><hr>
 
4252
<small class=header>
 
4253
Node:<a name="Status%20Menu">Status Menu</a>,
 
4254
Next:<a rel="next" accesskey="n" href="#Source%20Menu">Source Menu</a>,
 
4255
Previous:<a rel="previous" accesskey="p" href="#Commands%20Menu">Commands Menu</a>,
 
4256
Up:<a rel="up" accesskey="u" href="#Menu%20Bar">Menu Bar</a>
 
4257
</small>
 
4258
 
 
4259
<br>
 
4260
</div>
 
4261
 
 
4262
<h4 class="subsection">The Status Menu</h4>
 
4263
 
 
4264
   <p>The <code>Status</code> menu lets you examine the program status, such as the
 
4265
stack traces, registers, or threads.
 
4266
 
 
4267
     <dl>
 
4268
<dt><code>Backtrace</code>
 
4269
     <dd>View the current backtrace.  See <a href="#Backtraces">Backtraces</a>, for a discussion.
 
4270
 
 
4271
     <br><dt><code>Registers</code>
 
4272
     <dd>View the current register contents.  See <a href="#Registers">Registers</a>, for details.
 
4273
 
 
4274
     <br><dt><code>Threads</code>
 
4275
     <dd>View the current threads.  See <a href="#Threads">Threads</a>, for details.
 
4276
 
 
4277
     <br><dt><code>Signals</code>
 
4278
     <dd>View and edit the current signal handling.  See <a href="#Signals">Signals</a>, for details.
 
4279
 
 
4280
     <br><dt><code>Up</code>
 
4281
     <dd>Select the stack frame (i.e. the function) that called this one
 
4282
(&lt;Ctrl+Up&gt;).  This advances toward the outermost frame, to higher
 
4283
frame numbers, to frames that have existed longer.  See <a href="#Stack">Stack</a>, for
 
4284
details.
 
4285
 
 
4286
     <br><dt><code>Down</code>
 
4287
     <dd>Select the stack frame (i.e. the function) that was called by this one
 
4288
(&lt;Ctrl+Down&gt;).  This advances toward the innermost frame, to lower
 
4289
frame numbers, to frames that were created more recently.  See <a href="#Stack">Stack</a>,
 
4290
for details. 
 
4291
</dl>
 
4292
 
 
4293
<div class="node">
 
4294
<p><hr>
 
4295
<small class=header>
 
4296
Node:<a name="Source%20Menu">Source Menu</a>,
 
4297
Next:<a rel="next" accesskey="n" href="#Data%20Menu">Data Menu</a>,
 
4298
Previous:<a rel="previous" accesskey="p" href="#Status%20Menu">Status Menu</a>,
 
4299
Up:<a rel="up" accesskey="u" href="#Menu%20Bar">Menu Bar</a>
 
4300
</small>
 
4301
 
 
4302
<br>
 
4303
</div>
 
4304
 
 
4305
<h4 class="subsection">The Source Menu</h4>
 
4306
 
 
4307
   <p>The <code>Source</code> menu performs source-related operations such as
 
4308
looking up items or editing breakpoints.
 
4309
 
 
4310
     <dl>
 
4311
<dt><code>Breakpoints</code>
 
4312
     <dd>Edit all Breakpoints.  See <a href="#Editing%20all%20Breakpoints">Editing all Breakpoints</a>, for details.
 
4313
 
 
4314
     <br><dt><code>Lookup ()</code>
 
4315
     <dd>Look up the argument <code>()</code> in the source code (&lt;Ctrl+/&gt;). 
 
4316
See <a href="#Looking%20up%20Definitions">Looking up Definitions</a>, for details.
 
4317
 
 
4318
     <br><dt><code>Find &gt;&gt; ()</code>
 
4319
     <dd>Look up the next occurrence of the argument <code>()</code> in the current
 
4320
source code (&lt;Ctrl+.&gt;).  See <a href="#Textual%20Search">Textual Search</a>, for details.
 
4321
 
 
4322
     <br><dt><code>Find &lt;&lt; ()</code>
 
4323
     <dd>Look up the previous occurrence of the argument <code>()</code> in the current
 
4324
source code (&lt;Ctrl+,&gt;).  See <a href="#Textual%20Search">Textual Search</a>, for details.
 
4325
 
 
4326
     <br><dt><code>Find Words Only</code>
 
4327
     <dd>If enabled, find only complete words (&lt;Alt+W&gt;).  See <a href="#Textual%20Search">Textual Search</a>, for details.
 
4328
 
 
4329
     <br><dt><code>Find Case Sensitive</code>
 
4330
     <dd>If enabled, find is case-sensitive (&lt;Alt+I&gt;).  See <a href="#Textual%20Search">Textual Search</a>, for details.
 
4331
 
 
4332
     <br><dt><code>Display Line Numbers</code>
 
4333
     <dd>If enabled, prefix source lines with their line number (&lt;Alt+N&gt;). 
 
4334
See <a href="#Customizing%20Source">Customizing Source</a>, for details.
 
4335
 
 
4336
     <br><dt><code>Display Machine Code</code>
 
4337
     <dd>If enabled, show machine code (&lt;Alt+4&gt;).  See <a href="#Machine%20Code">Machine Code</a>, for details.
 
4338
 
 
4339
     <br><dt><code>Edit Source</code>
 
4340
     <dd>Invoke an editor for the current source file (&lt;Shift+Ctrl+V&gt;). 
 
4341
See <a href="#Editing%20Source%20Code">Editing Source Code</a>, for details.
 
4342
 
 
4343
     <br><dt><code>Reload Source</code>
 
4344
     <dd>Reload the current source file (&lt;Shift+Ctrl+L&gt;).  See <a href="#Editing%20Source%20Code">Editing Source Code</a>, for details. 
 
4345
</dl>
 
4346
 
 
4347
<div class="node">
 
4348
<p><hr>
 
4349
<small class=header>
 
4350
Node:<a name="Data%20Menu">Data Menu</a>,
 
4351
Next:<a rel="next" accesskey="n" href="#Maintenance%20Menu">Maintenance Menu</a>,
 
4352
Previous:<a rel="previous" accesskey="p" href="#Source%20Menu">Source Menu</a>,
 
4353
Up:<a rel="up" accesskey="u" href="#Menu%20Bar">Menu Bar</a>
 
4354
</small>
 
4355
 
 
4356
<br>
 
4357
</div>
 
4358
 
 
4359
<h4 class="subsection">The Data Menu</h4>
 
4360
 
 
4361
   <p>The <code>Data</code> menu performs data-related operations such as editing
 
4362
displays or layouting the display graph.
 
4363
 
 
4364
     <dl>
 
4365
<dt><code>Displays</code>
 
4366
     <dd>Invoke the Display Editor.  See <a href="#Editing%20all%20Displays">Editing all Displays</a>, for details.
 
4367
 
 
4368
     <br><dt><code>Watchpoints</code>
 
4369
     <dd>Edit all Watchpoints.  See <a href="#Editing%20all%20Watchpoints">Editing all Watchpoints</a>, for details.
 
4370
 
 
4371
     <br><dt><code>Memory</code>
 
4372
     <dd>View a memory dump.  See <a href="#Examining%20Memory">Examining Memory</a>, for details.
 
4373
 
 
4374
     <br><dt><code>Print ()</code>
 
4375
     <dd>Print the value of <code>()</code> in the debugger console (&lt;Ctrl+=&gt;). 
 
4376
See <a href="#Printing%20Values">Printing Values</a>, for details.
 
4377
 
 
4378
     <br><dt><code>Display ()</code>
 
4379
     <dd>Display the value of <code>()</code> in the data window (&lt;Ctrl+-&gt;). 
 
4380
See <a href="#Displaying%20Values">Displaying Values</a>, for details.
 
4381
 
 
4382
     <br><dt><code>Detect Aliases</code>
 
4383
     <dd>If enabled, detect shared data structures (&lt;Alt+A&gt;).  See <a href="#Shared%20Structures">Shared Structures</a>, for a discussion.
 
4384
 
 
4385
     <br><dt><code>Display Local Variables</code>
 
4386
     <dd>Show all local variables in a display (&lt;Alt+L&gt;).  See <a href="#Displaying%20Local%20Variables">Displaying Local Variables</a>, for details.
 
4387
 
 
4388
     <br><dt><code>Display Arguments</code>
 
4389
     <dd>Show all arguments of the current function in a display (&lt;Alt+U&gt;). 
 
4390
See <a href="#Displaying%20Local%20Variables">Displaying Local Variables</a>, for details.
 
4391
 
 
4392
     <br><dt><code>Status Displays</code>
 
4393
     <dd>Show current debugging information in a display.  See <a href="#Displaying%20Program%20Status">Displaying Program Status</a>, for details.
 
4394
 
 
4395
     <br><dt><code>Align on Grid</code>
 
4396
     <dd>Align all displays on the grid (&lt;Alt+G&gt;).  See <a href="#Aligning%20Displays">Aligning Displays</a>, for a
 
4397
discussion.
 
4398
 
 
4399
     <br><dt><code>Rotate Graph</code>
 
4400
     <dd>Rotate the graph by 90 degrees (&lt;Alt+R&gt;).  See <a href="#Rotating%20the%20Graph">Rotating the Graph</a>, for details.
 
4401
 
 
4402
     <br><dt><code>Layout Graph</code>
 
4403
     <dd>Layout the graph (&lt;Alt+Y&gt;).  See <a href="#Layouting%20the%20Graph">Layouting the Graph</a>, for details.
 
4404
 
 
4405
     <br><dt><code>Refresh</code>
 
4406
     <dd>Update all values in the data window (&lt;Ctrl+L&gt;).  See <a href="#Refreshing%20the%20Data%20Window">Refreshing the Data Window</a>, for details. 
 
4407
</dl>
 
4408
 
 
4409
<div class="node">
 
4410
<p><hr>
 
4411
<small class=header>
 
4412
Node:<a name="Maintenance%20Menu">Maintenance Menu</a>,
 
4413
Next:<a rel="next" accesskey="n" href="#Help%20Menu">Help Menu</a>,
 
4414
Previous:<a rel="previous" accesskey="p" href="#Data%20Menu">Data Menu</a>,
 
4415
Up:<a rel="up" accesskey="u" href="#Menu%20Bar">Menu Bar</a>
 
4416
</small>
 
4417
 
 
4418
<br>
 
4419
</div>
 
4420
 
 
4421
<h4 class="subsection">The Maintenance Menu</h4>
 
4422
 
 
4423
   <p>The <code>Maintenance</code> menu performs operations that are useful for
 
4424
debugging <small>DDD</small>.
 
4425
 
 
4426
   <p>By default, this menu is disabled; it is enabled by specifically
 
4427
requesting it at <small>DDD</small> invocation (via the <code>--maintenance</code>
 
4428
option; see <a href="#Options">Options</a>).  It is also enabled when <small>DDD</small> gets a
 
4429
fatal signal.
 
4430
 
 
4431
     <dl>
 
4432
<dt><code>Debug </code><small>DDD</small><code></code>
 
4433
     <dd>Invoke a debugger (typically, <small>GDB</small>) and attach it to this <small>DDD</small>
 
4434
process (&lt;F12&gt;).  This is useful only if you are a <small>DDD</small> maintainer.
 
4435
 
 
4436
     <br><dt><code>Dump Core Now</code>
 
4437
     <dd>Make this <small>DDD</small> process dump core.  This can also be achieved by
 
4438
sending <small>DDD</small> a <code>SIGUSR1</code> signal.
 
4439
 
 
4440
     <br><dt><code>Tic Tac Toe</code>
 
4441
     <dd>Invoke a Tic Tac Toe game.  You must try to get three stop signs in a
 
4442
row, while preventing <small>DDD</small> from doing so with its skulls.  Click
 
4443
on <code>New Game</code> to restart.
 
4444
 
 
4445
     <br><dt><code>When </code><small>DDD</small><code> Crashes</code>
 
4446
     <dd>Select what to do when <small>DDD</small> gets a fatal signal.
 
4447
 
 
4448
          <dl>
 
4449
<dt><code>Debug </code><small>DDD</small><code></code>
 
4450
          <dd>Invoke a debugger on the <small>DDD</small> core dump when <small>DDD</small>
 
4451
crashes.  This is useful only if you are a <small>DDD</small> maintainer.
 
4452
 
 
4453
          <br><dt><code>Dump Core</code>
 
4454
          <dd>Just dump core when <small>DDD</small> crashes; don't invoke a debugger.  This
 
4455
is the default setting, as the core dump may contain important
 
4456
information required for debugging <small>DDD</small>.
 
4457
 
 
4458
          <br><dt><code>Do Nothing</code>
 
4459
          <dd>Do not dump core or invoke a debugger when <small>DDD</small> crashes. 
 
4460
</dl>
 
4461
 
 
4462
     <br><dt><code>Remove Menu</code>
 
4463
     <dd>Make this menu inaccessible again. 
 
4464
</dl>
 
4465
 
 
4466
<div class="node">
 
4467
<p><hr>
 
4468
<small class=header>
 
4469
Node:<a name="Help%20Menu">Help Menu</a>,
 
4470
Next:<a rel="next" accesskey="n" href="#Customizing%20the%20Menu%20Bar">Customizing the Menu Bar</a>,
 
4471
Previous:<a rel="previous" accesskey="p" href="#Maintenance%20Menu">Maintenance Menu</a>,
 
4472
Up:<a rel="up" accesskey="u" href="#Menu%20Bar">Menu Bar</a>
 
4473
</small>
 
4474
 
 
4475
<br>
 
4476
</div>
 
4477
 
 
4478
<h4 class="subsection">The Help Menu</h4>
 
4479
 
 
4480
   <p>The <code>Help</code> menu gives help on <small>DDD</small> usage.  See <a href="#Getting%20Help">Getting Help</a>, for a discussion on how to get help within <small>DDD</small>.
 
4481
 
 
4482
     <dl>
 
4483
<dt><code>Overview</code>
 
4484
     <dd>Explains the most important concepts of <small>DDD</small> help.
 
4485
 
 
4486
     <br><dt><code>On Item</code>
 
4487
     <dd>Lets you click on an item to get help on it.
 
4488
 
 
4489
     <br><dt><code>On Window</code>
 
4490
     <dd>Gives you help on this <small>DDD</small> window.
 
4491
 
 
4492
     <br><dt><code>What Now?</code>
 
4493
     <dd>Gives a hint on what to do next.
 
4494
 
 
4495
     <br><dt><code>Tip of the Day</code>
 
4496
     <dd>Shows the current tip of the day.
 
4497
 
 
4498
     <br><dt><code></code><small>DDD</small><code> Reference</code>
 
4499
     <dd>Shows the <small>DDD</small> Manual.
 
4500
 
 
4501
     <br><dt><code></code><small>DDD</small><code> News</code>
 
4502
     <dd>Shows what's new in this <small>DDD</small> release.
 
4503
 
 
4504
     <br><dt><code>Debugger Reference</code>
 
4505
     <dd>Shows the on-line documentation for the inferior debugger.
 
4506
 
 
4507
     <br><dt><code></code><small>DDD</small><code> License</code>
 
4508
     <dd>Shows the <small>DDD</small> License (see <a href="#License">License</a>).
 
4509
 
 
4510
     <br><dt><code></code><small>DDD</small><code> </code><small>WWW</small><code> Page</code>
 
4511
     <dd>Invokes a <small>WWW</small> browser for the <small>DDD</small> <small>WWW</small> page.
 
4512
 
 
4513
     <br><dt><code>About </code><small>DDD</small><code></code>
 
4514
     <dd>Shows version and copyright information. 
 
4515
</dl>
 
4516
 
 
4517
<div class="node">
 
4518
<p><hr>
 
4519
<small class=header>
 
4520
Node:<a name="Customizing%20the%20Menu%20Bar">Customizing the Menu Bar</a>,
 
4521
Previous:<a rel="previous" accesskey="p" href="#Help%20Menu">Help Menu</a>,
 
4522
Up:<a rel="up" accesskey="u" href="#Menu%20Bar">Menu Bar</a>
 
4523
</small>
 
4524
 
 
4525
<br>
 
4526
</div>
 
4527
 
 
4528
<h4 class="subsection">Customizing the Menu Bar</h4>
 
4529
 
 
4530
   <p>The Menu Bar can be customized in various ways (see <a href="#Customizing">Customizing</a>).
 
4531
 
 
4532
<ul class="menu">
 
4533
<li><a accesskey="1" href="#Auto-Raise%20Menus">Auto-Raise Menus</a>: 
 
4534
<li><a accesskey="2" href="#Customizing%20the%20Edit%20Menu">Customizing the Edit Menu</a>: 
 
4535
</ul>
 
4536
 
 
4537
<div class="node">
 
4538
<p><hr>
 
4539
<small class=header>
 
4540
Node:<a name="Auto-Raise%20Menus">Auto-Raise Menus</a>,
 
4541
Next:<a rel="next" accesskey="n" href="#Customizing%20the%20Edit%20Menu">Customizing the Edit Menu</a>,
 
4542
Up:<a rel="up" accesskey="u" href="#Customizing%20the%20Menu%20Bar">Customizing the Menu Bar</a>
 
4543
</small>
 
4544
 
 
4545
<br>
 
4546
</div>
 
4547
 
 
4548
<h5 class="subsubsection">Auto-Raise Menus</h5>
 
4549
 
 
4550
   <p>You can cause pull-down menus to be raised automatically.
 
4551
 
 
4552
<p>
 
4553
<table width="100%">
 
4554
<tr>
 
4555
<td align="left"><b>autoRaiseMenu</b><i> </i>(<i>class AutoRaiseMenu</i>)<i>
 
4556
     </i></td>
 
4557
<td align="right">Resource</td>
 
4558
</tr>
 
4559
</table>
 
4560
<table width="95%" align="center">
 
4561
<tr><td>
 
4562
If <code>on</code> (default), <small>DDD</small> will always keep the pull down menu
 
4563
on top of the <small>DDD</small> main window.  If this setting interferes with
 
4564
your window manager, or if your window manager does not auto-raise
 
4565
windows, set this resource to <code>off</code>. 
 
4566
</td></tr>
 
4567
</table>
 
4568
 
 
4569
<p>
 
4570
<table width="100%">
 
4571
<tr>
 
4572
<td align="left"><b>autoRaiseMenuDelay</b><i> </i>(<i>class AutoRaiseMenuDelay</i>)<i>
 
4573
     </i></td>
 
4574
<td align="right">Resource</td>
 
4575
</tr>
 
4576
</table>
 
4577
<table width="95%" align="center">
 
4578
<tr><td>
 
4579
The time (in ms) during which an initial auto-raised window blocks
 
4580
further auto-raises.  This is done to prevent two overlapping
 
4581
auto-raised windows from entering an <em>auto-raise loop</em>.  Default is
 
4582
<code>100</code>. 
 
4583
</td></tr>
 
4584
</table>
 
4585
 
 
4586
<div class="node">
 
4587
<p><hr>
 
4588
<small class=header>
 
4589
Node:<a name="Customizing%20the%20Edit%20Menu">Customizing the Edit Menu</a>,
 
4590
Previous:<a rel="previous" accesskey="p" href="#Auto-Raise%20Menus">Auto-Raise Menus</a>,
 
4591
Up:<a rel="up" accesskey="u" href="#Customizing%20the%20Menu%20Bar">Customizing the Menu Bar</a>
 
4592
</small>
 
4593
 
 
4594
<br>
 
4595
</div>
 
4596
 
 
4597
<h5 class="subsubsection">Customizing the Edit Menu</h5>
 
4598
 
 
4599
   <p>In the Menu Bar, the <code>Edit</code> Menu can be customized in various ways. 
 
4600
Use <code>Edit =&gt; Preferences =&gt; Startup</code> to customize
 
4601
these keys.
 
4602
 
 
4603
   <p>The &lt;Ctrl+C&gt; key can be bound to different actions, each in
 
4604
accordance with a specific style guide.
 
4605
 
 
4606
     <dl>
 
4607
<dt><code>Copy</code>
 
4608
     <dd>This setting binds &lt;Ctrl+C&gt; to the Copy operation, as specified by
 
4609
the KDE style guide.  In this setting, use &lt;ESC&gt; to interrupt the
 
4610
debuggee.
 
4611
 
 
4612
     <br><dt><code>Interrupt</code>
 
4613
     <dd></dl>
 
4614
   This (default) setting binds &lt;Ctrl+C&gt; to the Interrupt operation, as
 
4615
used in several <small>UNIX</small> command-line programs.  In this setting, use
 
4616
&lt;Ctrl+Ins&gt; to copy text to the clipboard.
 
4617
 
 
4618
   <p>The &lt;Ctrl+A&gt; key can be bound to different actions, too.
 
4619
 
 
4620
     <dl>
 
4621
<dt><code>Select All</code>
 
4622
     <dd>This (default) setting binds &lt;Ctrl+A&gt; to the <code>Select All</code>
 
4623
operation, as specified by the KDE style guide.  In this setting, use
 
4624
&lt;Home&gt; to move the cursor to the beginning of a line.
 
4625
 
 
4626
     <br><dt><code>Beginning of Line</code>
 
4627
     <dd>This setting binds &lt;Ctrl+A&gt; to the <code>Beginning of Line</code>
 
4628
operation, as used in several <small>UNIX</small> text-editing programs.  In this
 
4629
setting, use &lt;Ctrl+Shift+A&gt; to select all text. 
 
4630
</dl>
 
4631
 
 
4632
   <p>Here are the related <small>DDD</small> resources:
 
4633
 
 
4634
<p>
 
4635
<table width="100%">
 
4636
<tr>
 
4637
<td align="left"><b>cutCopyPasteBindings</b><i> </i>(<i>class BindingStyle</i>)<i>
 
4638
     </i></td>
 
4639
<td align="right">Resource</td>
 
4640
</tr>
 
4641
</table>
 
4642
<table width="95%" align="center">
 
4643
<tr><td>
 
4644
Controls the key bindings for clipboard operations.
 
4645
 
 
4646
          <ul>
 
4647
<li>If this is <code>Motif</code> (default), Cut/Copy/Paste is on
 
4648
&lt;Shift+Del&gt;/&lt;Ctrl+Ins&gt;/&lt;Shift+Ins&gt;.  This is conformant to
 
4649
the M*tif style guide. 
 
4650
<li>If this is <code>KDE</code>, Cut/Copy/Paste is on
 
4651
&lt;Ctrl+X&gt;/&lt;Ctrl+C&gt;/&lt;Ctrl+V&gt;.  This is conformant to the KDE
 
4652
style guide.  Note that this means that &lt;Ctrl+C&gt; no longer
 
4653
interrupts the debuggee; use &lt;ESC&gt; instead. 
 
4654
</ul>
 
4655
     </td></tr>
 
4656
</table>
 
4657
 
 
4658
<p>
 
4659
<table width="100%">
 
4660
<tr>
 
4661
<td align="left"><b>selectAllBindings</b><i> </i>(<i>class BindingStyle</i>)<i>
 
4662
     </i></td>
 
4663
<td align="right">Resource</td>
 
4664
</tr>
 
4665
</table>
 
4666
<table width="95%" align="center">
 
4667
<tr><td>
 
4668
Controls the key bindings for the <code>Select All</code> operation.
 
4669
 
 
4670
          <ul>
 
4671
<li>If this is <code>Motif</code>, Select All is on &lt;Shift+Ctrl+A&gt;. 
 
4672
<li>If this is <code>KDE</code> (default), Select All is on &lt;Ctrl+A&gt;.  This is
 
4673
conformant to the KDE style guide.  Note that this means that
 
4674
&lt;Ctrl+A&gt; no longer moves the cursor to the beginning of a line; use
 
4675
&lt;Home&gt; instead. 
 
4676
</ul>
 
4677
     </td></tr>
 
4678
</table>
 
4679
 
 
4680
<div class="node">
 
4681
<p><hr>
 
4682
<small class=header>
 
4683
Node:<a name="Tool%20Bar">Tool Bar</a>,
 
4684
Next:<a rel="next" accesskey="n" href="#Command%20Tool">Command Tool</a>,
 
4685
Previous:<a rel="previous" accesskey="p" href="#Menu%20Bar">Menu Bar</a>,
 
4686
Up:<a rel="up" accesskey="u" href="#Windows">Windows</a>
 
4687
</small>
 
4688
 
 
4689
<br>
 
4690
</div>
 
4691
 
 
4692
<h3 class="section">The Tool Bar</h3>
 
4693
 
 
4694
   <p>Some <small>DDD</small> commands require an <em>argument</em>.  This argument
 
4695
is specified in the <em>argument field</em>, labeled <code>():</code>. 
 
4696
Basically, there are four ways to set arguments:
 
4697
 
 
4698
     <ul>
 
4699
<li>You can <em>key in</em> the argument manually. 
 
4700
<li>You can <em>paste</em> the current selection into the argument field
 
4701
(typically using <kbd>mouse button 2</kbd>).  To clear old contents
 
4702
beforehand, click on the <code>():</code> label. 
 
4703
<li>You can <em>select an item</em> from the source and data windows.  This
 
4704
will automatically copy the item to the argument field. 
 
4705
<li>You can select a <em>previously used argument</em> from the drop-down
 
4706
menu at the right of the argument field. 
 
4707
</ul>
 
4708
 
 
4709
   <p>Using <small>GDB</small> and Perl, the argument field provides a completion mechanism. 
 
4710
You can enter the first few characters of an item an press the &lt;TAB&gt;
 
4711
key to complete it.  Pressing &lt;TAB&gt; again shows alternative
 
4712
completions.
 
4713
 
 
4714
   <p>After having entered an argument, you can select one of the buttons on
 
4715
the right.  Most of these buttons also have menus associated with them;
 
4716
this is indicated by a small arrow in the upper right corner.  Pressing
 
4717
and holding <em>mouse button 1</em> on such a button will pop up a menu
 
4718
with further operations.
 
4719
 
 
4720
<br><p>
 
4721
<div align="center"><img src="PICS/ddd-toolbar.jpg" alt="PICS/ddd-toolbar.jpg"></div>
 
4722
<br><p>
 
4723
   <p>These are the buttons of the tool bar.  Note that not all buttons may be
 
4724
inactive, depending on the current state and the capabilities of the
 
4725
inferior debugger.
 
4726
 
 
4727
     <dl>
 
4728
<dt><code>Lookup</code>
 
4729
     <dd>
 
4730
 
 
4731
     <p>Look up the argument <code>()</code> in the source code.  See <a href="#Looking%20up%20Definitions">Looking up Definitions</a>, for details.
 
4732
 
 
4733
     <br><dt><code>Find &gt;&gt;</code>
 
4734
     <dd>
 
4735
 
 
4736
     <p>Look up the next occurrence of the argument <code>()</code> in the current
 
4737
source code.  See <a href="#Textual%20Search">Textual Search</a>, for details.
 
4738
 
 
4739
     <br><dt><code>Break/Clear</code>
 
4740
     <dd>
 
4741
 
 
4742
     <p>Toggle a breakpoint (see <a href="#Breakpoints">Breakpoints</a>) at the location <code>()</code>.
 
4743
 
 
4744
          <dl>
 
4745
<dt><code>Break</code>
 
4746
          <dd>If there is no breakpoint at <code>()</code>, then this button is labeled
 
4747
<code>Break</code>.  Clicking on <code>Break</code> sets a breakpoint at the
 
4748
location <code>()</code>.  See <a href="#Setting%20Breakpoints">Setting Breakpoints</a>, for details.
 
4749
 
 
4750
          <br><dt><code>Clear</code>
 
4751
          <dd>If there already is a breakpoint at <code>()</code>, then this button is
 
4752
labeled <code>Clear</code>.  Clicking on <code>Clear</code> clears (deletes) the
 
4753
breakpoint at the location <code>()</code>.  See <a href="#Deleting%20Breakpoints">Deleting Breakpoints</a>, for
 
4754
details. 
 
4755
</dl>
 
4756
 
 
4757
     <br><dt><code>Watch/Unwatch</code>
 
4758
     <dd>
 
4759
 
 
4760
     <p>Toggle a watchpoint (see <a href="#Watchpoints">Watchpoints</a>) on the expression <code>()</code>.
 
4761
 
 
4762
          <dl>
 
4763
<dt><code>Watch</code>
 
4764
          <dd>If <code>()</code> is not being watched, then this button is labeled
 
4765
<code>Watch</code>.  Clicking on <code>Watch</code> creates a watchpoint on the
 
4766
expression <code>()</code>.  See <a href="#Setting%20Watchpoints">Setting Watchpoints</a>, for details.
 
4767
 
 
4768
          <br><dt><code>Unwatch</code>
 
4769
          <dd>If <code>()</code> is being watched, then this button is labeled
 
4770
<code>Unwatch</code>.  Clicking on <code>Unwatch</code> clears (deletes) the
 
4771
watchpoint on <code>()</code>.  See <a href="#Deleting%20Watchpoints">Deleting Watchpoints</a>, for details. 
 
4772
</dl>
 
4773
 
 
4774
     <br><dt><code>Print</code>
 
4775
     <dd>
 
4776
 
 
4777
     <p>Print the value of <code>()</code> in the debugger console.  See <a href="#Printing%20Values">Printing Values</a>, for details.
 
4778
 
 
4779
     <br><dt><code>Display</code>
 
4780
     <dd>
 
4781
 
 
4782
     <p>Display the value of <code>()</code> in the data window.  See <a href="#Displaying%20Values">Displaying Values</a>, for details.
 
4783
 
 
4784
     <br><dt><code>Plot</code>
 
4785
     <dd>
 
4786
 
 
4787
     <p>Plot <code>()</code> in a plot window.  See <a href="#Plotting%20Values">Plotting Values</a>, for details.
 
4788
 
 
4789
     <br><dt><code>Show/Hide</code>
 
4790
     <dd>
 
4791
 
 
4792
     <p>Toggle details of the selected display(s).  See <a href="#Showing%20and%20Hiding%20Details">Showing and Hiding Details</a>, for a discussion.
 
4793
 
 
4794
     <br><dt><code>Rotate</code>
 
4795
     <dd>
 
4796
 
 
4797
     <p>Rotate the selected display(s).  See <a href="#Rotating%20Displays">Rotating Displays</a>, for details.
 
4798
 
 
4799
     <br><dt><code>Set</code>
 
4800
     <dd>
 
4801
 
 
4802
     <p>Set (change) the value of <code>()</code>.  See <a href="#Assignment">Assignment</a>, for details.
 
4803
 
 
4804
     <br><dt><code>Undisp</code>
 
4805
     <dd>
 
4806
 
 
4807
     <p>Undisplay (delete) the selected display(s).  See <a href="#Deleting%20Displays">Deleting Displays</a>,
 
4808
for details. 
 
4809
</dl>
 
4810
 
 
4811
<ul class="menu">
 
4812
<li><a accesskey="1" href="#Customizing%20the%20Tool%20Bar">Customizing the Tool Bar</a>: 
 
4813
</ul>
 
4814
 
 
4815
<div class="node">
 
4816
<p><hr>
 
4817
<small class=header>
 
4818
Node:<a name="Customizing%20the%20Tool%20Bar">Customizing the Tool Bar</a>,
 
4819
Up:<a rel="up" accesskey="u" href="#Tool%20Bar">Tool Bar</a>
 
4820
</small>
 
4821
 
 
4822
<br>
 
4823
</div>
 
4824
 
 
4825
<h4 class="subsection">Customizing the Tool Bar</h4>
 
4826
 
 
4827
   <p>The <small>DDD</small> tool bar buttons can appear in a variety of styles,
 
4828
customized via <code>Edit =&gt; Preferences =&gt; Startup</code>.
 
4829
 
 
4830
     <dl>
 
4831
<dt><code>Images</code>
 
4832
     <dd>This lets each tool bar button show an image illustrating the action.
 
4833
 
 
4834
     <br><dt><code>Captions</code>
 
4835
     <dd>This shows the action name below the image. 
 
4836
</dl>
 
4837
 
 
4838
   <p>The default is to have images as well as captions, but you can choose to
 
4839
have only images (saving space) or only captions.
 
4840
 
 
4841
<br><p>
 
4842
<div align="center"><img src="PICS/ddd-toolbars.jpg" alt="PICS/ddd-toolbars.jpg"></div>
 
4843
<br><p>
 
4844
   <p>If you choose to have neither images nor captions, tool bar buttons are
 
4845
labeled like other buttons, as in <small>DDD</small> 2.x.  Note that this
 
4846
implies that in the stacked window configuration, the common tool bar
 
4847
cannot be displayed; it is replaced by two separate tool bars, as in
 
4848
<small>DDD</small> 2.x.
 
4849
 
 
4850
   <p>If you enable <code>Flat</code> buttons (default), the border of tool bar
 
4851
buttons will appear only if the mouse pointer is over them.  This
 
4852
latest-and-greatest <small>GUI</small> invention can be disabled, such that
 
4853
the button border is always shown.
 
4854
 
 
4855
   <p>If you enable <code>Color</code> buttons, tool bar images will be colored when
 
4856
entered.  If <small>DDD</small> was built using M*tif 2.0 and later, you can
 
4857
also choose a third setting, where buttons appear in color all the time.
 
4858
 
 
4859
   <p>Here are the related resources (see <a href="#Customizing">Customizing</a>):
 
4860
 
 
4861
<p>
 
4862
<table width="100%">
 
4863
<tr>
 
4864
<td align="left"><b>activeButtonColorKey</b><i> </i>(<i>class ColorKey</i>)<i>
 
4865
     </i></td>
 
4866
<td align="right">Resource</td>
 
4867
</tr>
 
4868
</table>
 
4869
<table width="95%" align="center">
 
4870
<tr><td>
 
4871
The <small>XPM</small> color key to use for the images of active buttons
 
4872
(entered or armed).  <code>c</code> means color, <code>g</code> (default) means
 
4873
grey, and <code>m</code> means monochrome. 
 
4874
</td></tr>
 
4875
</table>
 
4876
 
 
4877
<p>
 
4878
<table width="100%">
 
4879
<tr>
 
4880
<td align="left"><b>buttonCaptions</b><i> </i>(<i>class ButtonCaptions</i>)<i>
 
4881
     </i></td>
 
4882
<td align="right">Resource</td>
 
4883
</tr>
 
4884
</table>
 
4885
<table width="95%" align="center">
 
4886
<tr><td>
 
4887
Whether the tool bar buttons should be shown using captions
 
4888
(<code>on</code>, default) or not (<code>off</code>).  If neither captions nor
 
4889
images are enabled, tool bar buttons are shown using ordinary labels. 
 
4890
See also <code>buttonImages</code>, below. 
 
4891
</td></tr>
 
4892
</table>
 
4893
 
 
4894
<p>
 
4895
<table width="100%">
 
4896
<tr>
 
4897
<td align="left"><b>buttonCaptionGeometry</b><i> </i>(<i>class ButtonCaptionGeometry</i>)<i>
 
4898
     </i></td>
 
4899
<td align="right">Resource</td>
 
4900
</tr>
 
4901
</table>
 
4902
<table width="95%" align="center">
 
4903
<tr><td>
 
4904
The geometry of the caption subimage within the button icons.  Default
 
4905
is <code>29x7+0-0</code>. 
 
4906
</td></tr>
 
4907
</table>
 
4908
 
 
4909
<p>
 
4910
<table width="100%">
 
4911
<tr>
 
4912
<td align="left"><b>buttonImages</b><i> </i>(<i>class ButtonImages</i>)<i>
 
4913
     </i></td>
 
4914
<td align="right">Resource</td>
 
4915
</tr>
 
4916
</table>
 
4917
<table width="95%" align="center">
 
4918
<tr><td>
 
4919
Whether the tool bar buttons should be shown using images (<code>on</code>,
 
4920
default) or not (<code>off</code>).  If neither captions nor images are
 
4921
enabled, tool bar buttons are shown using ordinary labels.  See also
 
4922
<code>buttonCaptions</code>, above. 
 
4923
</td></tr>
 
4924
</table>
 
4925
 
 
4926
<p>
 
4927
<table width="100%">
 
4928
<tr>
 
4929
<td align="left"><b>buttonImageGeometry</b><i> </i>(<i>class ButtonImageGeometry</i>)<i>
 
4930
     </i></td>
 
4931
<td align="right">Resource</td>
 
4932
</tr>
 
4933
</table>
 
4934
<table width="95%" align="center">
 
4935
<tr><td>
 
4936
The geometry of the image within the button icon.  Default is
 
4937
<code>25x21+2+0</code>. 
 
4938
</td></tr>
 
4939
</table>
 
4940
 
 
4941
<p>
 
4942
<table width="100%">
 
4943
<tr>
 
4944
<td align="left"><b>buttonColorKey</b><i> </i>(<i>class ColorKey</i>)<i>
 
4945
     </i></td>
 
4946
<td align="right">Resource</td>
 
4947
</tr>
 
4948
</table>
 
4949
<table width="95%" align="center">
 
4950
<tr><td>
 
4951
The <small>XPM</small> color key to use for the images of inactive buttons
 
4952
(non-entered or insensitive).  <code>c</code> means color, <code>g</code>
 
4953
(default) means grey, and <code>m</code> means monochrome. 
 
4954
</td></tr>
 
4955
</table>
 
4956
 
 
4957
<p>
 
4958
<table width="100%">
 
4959
<tr>
 
4960
<td align="left"><b>flatToolbarButtons</b><i> </i>(<i>class FlatButtons</i>)<i>
 
4961
     </i></td>
 
4962
<td align="right">Resource</td>
 
4963
</tr>
 
4964
</table>
 
4965
<table width="95%" align="center">
 
4966
<tr><td>
 
4967
If <code>on</code> (default), all tool bar buttons with images or captions
 
4968
are given a `flat' appearance--the 3-D border only shows up when the
 
4969
pointer is over the icon.  If <code>off</code>, the 3-D border is shown all
 
4970
the time. 
 
4971
</td></tr>
 
4972
</table>
 
4973
 
 
4974
<p>
 
4975
<table width="100%">
 
4976
<tr>
 
4977
<td align="left"><b>flatDialogButtons</b><i> </i>(<i>class FlatButtons</i>)<i>
 
4978
     </i></td>
 
4979
<td align="right">Resource</td>
 
4980
</tr>
 
4981
</table>
 
4982
<table width="95%" align="center">
 
4983
<tr><td>
 
4984
If <code>on</code> (default), all dialog buttons with images or captions
 
4985
are given a `flat' appearance--the 3-D border only shows up when
 
4986
the pointer is over the icon.  If <code>off</code>, the 3-D border is shown
 
4987
all the time. 
 
4988
</td></tr>
 
4989
</table>
 
4990
 
 
4991
<div class="node">
 
4992
<p><hr>
 
4993
<small class=header>
 
4994
Node:<a name="Command%20Tool">Command Tool</a>,
 
4995
Next:<a rel="next" accesskey="n" href="#Getting%20Help">Getting Help</a>,
 
4996
Previous:<a rel="previous" accesskey="p" href="#Tool%20Bar">Tool Bar</a>,
 
4997
Up:<a rel="up" accesskey="u" href="#Windows">Windows</a>
 
4998
</small>
 
4999
 
 
5000
<br>
 
5001
</div>
 
5002
 
 
5003
<h3 class="section">The Command Tool</h3>
 
5004
 
 
5005
   <p>The command tool is a small window that gives you access to the most
 
5006
frequently used <small>DDD</small> commands.  It can be moved around on top of
 
5007
the <small>DDD</small> windows, but it can also be placed besides them.
 
5008
 
 
5009
   <p>By default, the command tool <em>sticks</em> to the <small>DDD</small> source
 
5010
window: Whenever you move the <small>DDD</small> source window, the command
 
5011
tool follows such that the distance between source window and command
 
5012
tool remains the same.  By default, the command tool is also
 
5013
<em>auto-raised</em>, such that it stays on top of other <small>DDD</small>
 
5014
windows.
 
5015
 
 
5016
   <p>The command tool can be configured to appear as a command tool bar above
 
5017
the source window; see <code>Edit =&gt; Preferences =&gt; Source
 
5018
=&gt; Tool Buttons Location</code> for details.
 
5019
 
 
5020
   <p>Whenever you save <small>DDD</small> state, <small>DDD</small> also saves the distance
 
5021
between command tool and source window, such that you can select your
 
5022
own individual command tool placement.  To move the command tool to its
 
5023
saved position, use <code>View =&gt; Command Tool</code>.
 
5024
 
 
5025
<br><p>
 
5026
<div align="center"><img src="PICS/ddd-tool.jpg" alt="PICS/ddd-tool.jpg"></div>
 
5027
<br><p>
 
5028
   <p>These are the buttons of the command tool.  Note that not all buttons
 
5029
may be inactive, depending on the current state and the capabilities of
 
5030
the inferior debugger.
 
5031
 
 
5032
     <dl>
 
5033
<dt><code>Run</code>
 
5034
     <dd>Start program execution.  When you click this button, your program will
 
5035
begin to execute immediately.  See <a href="#Starting%20Program%20Execution">Starting Program Execution</a>, for
 
5036
details.
 
5037
 
 
5038
     <br><dt><code>Interrupt</code>
 
5039
     <dd>Interrupt program execution.  This is equivalent to sending an interrupt
 
5040
signal to the process.  See <a href="#Interrupting">Interrupting</a>, for details.
 
5041
 
 
5042
     <br><dt><code>Step</code>
 
5043
     <dd>Continue running your program until control reaches a different source
 
5044
line, then stop it and return control to <small>DDD</small>.  See <a href="#Resuming%20Execution">Resuming Execution</a>, for details.
 
5045
 
 
5046
     <br><dt><code>Stepi</code>
 
5047
     <dd>Execute one machine instruction, then stop and return to <small>DDD</small>. 
 
5048
See <a href="#Machine%20Code%20Execution">Machine Code Execution</a>, for details.
 
5049
 
 
5050
     <br><dt><code>Next</code>
 
5051
     <dd>Continue to the next source line in the current (innermost) stack
 
5052
frame.  This is similar to <code>Step</code>, but function calls that appear
 
5053
within the line of code are executed without stopping. 
 
5054
See <a href="#Resuming%20Execution">Resuming Execution</a>, for details.
 
5055
 
 
5056
     <br><dt><code>Nexti</code>
 
5057
     <dd>Execute one machine instruction, but if it is a function call,
 
5058
proceed until the function returns. 
 
5059
See <a href="#Machine%20Code%20Execution">Machine Code Execution</a>, for details.
 
5060
 
 
5061
     <br><dt><code>Until</code>
 
5062
     <dd>Continue running until a source line past the current line, in the
 
5063
current stack frame, is reached.  See <a href="#Resuming%20Execution">Resuming Execution</a>, for details.
 
5064
 
 
5065
     <br><dt><code>Finish</code>
 
5066
     <dd>Continue running until just after function in the selected stack frame
 
5067
returns.  Print the returned value (if any).  See <a href="#Resuming%20Execution">Resuming Execution</a>,
 
5068
for details.
 
5069
 
 
5070
     <br><dt><code>Cont</code>
 
5071
     <dd>Resume program execution, at the address where your program last
 
5072
stopped; any breakpoints set at that address are bypassed. 
 
5073
See <a href="#Resuming%20Execution">Resuming Execution</a>, for details.
 
5074
 
 
5075
     <br><dt><code>Kill</code>
 
5076
     <dd>Kill the process of the debugged program.  See <a href="#Killing%20the%20Program">Killing the Program</a>,
 
5077
for details.
 
5078
 
 
5079
     <br><dt><code>Up</code>
 
5080
     <dd>Select the stack frame (i.e. the function) that called this one.  This
 
5081
advances toward the outermost frame, to higher frame numbers, to frames
 
5082
that have existed longer.  See <a href="#Stack">Stack</a>, for details.
 
5083
 
 
5084
     <br><dt><code>Down</code>
 
5085
     <dd>Select the stack frame (i.e. the function) that was called by this one. 
 
5086
This advances toward the innermost frame, to lower frame numbers, to
 
5087
frames that were created more recently.  See <a href="#Stack">Stack</a>, for details.
 
5088
 
 
5089
     <br><dt><code>Undo</code>
 
5090
     <dd>Undo the most recent action.  Almost all commands can be undone this
 
5091
way.  See <a href="#Undo%20and%20Redo">Undo and Redo</a>, for details.
 
5092
 
 
5093
     <br><dt><code>Redo</code>
 
5094
     <dd>Redo the action most recently undone.  Every command undone can be
 
5095
redone this way.  See <a href="#Undo%20and%20Redo">Undo and Redo</a>, for details.
 
5096
 
 
5097
     <br><dt><code>Edit</code>
 
5098
     <dd>Invoke an editor for the current source file.  See <a href="#Editing%20Source%20Code">Editing Source Code</a>, for details.
 
5099
 
 
5100
     <br><dt><code>Make</code>
 
5101
     <dd>Run the <code>make</code> program with the most recently given arguments. 
 
5102
See <a href="#Recompiling">Recompiling</a>, for details. 
 
5103
</dl>
 
5104
 
 
5105
<ul class="menu">
 
5106
<li><a accesskey="1" href="#Customizing%20the%20Command%20Tool">Customizing the Command Tool</a>: 
 
5107
<li><a accesskey="2" href="#Customizing%20Tool%20Position">Customizing Tool Position</a>: 
 
5108
</ul>
 
5109
 
 
5110
<div class="node">
 
5111
<p><hr>
 
5112
<small class=header>
 
5113
Node:<a name="Customizing%20the%20Command%20Tool">Customizing the Command Tool</a>,
 
5114
Next:<a rel="next" accesskey="n" href="#Customizing%20Tool%20Position">Customizing Tool Position</a>,
 
5115
Up:<a rel="up" accesskey="u" href="#Command%20Tool">Command Tool</a>
 
5116
</small>
 
5117
 
 
5118
<br>
 
5119
</div>
 
5120
 
 
5121
<h4 class="subsection">Customizing the Command Tool</h4>
 
5122
 
 
5123
   <p>The Command Tool can be customized in various ways.
 
5124
 
 
5125
<ul class="menu">
 
5126
<li><a accesskey="1" href="#Disabling%20the%20Command%20Tool">Disabling the Command Tool</a>: 
 
5127
</ul>
 
5128
 
 
5129
   <p>See <a href="#Customizing%20Buttons">Customizing Buttons</a>, for details on customizing the tool buttons.
 
5130
 
 
5131
<div class="node">
 
5132
<p><hr>
 
5133
<small class=header>
 
5134
Node:<a name="Disabling%20the%20Command%20Tool">Disabling the Command Tool</a>,
 
5135
Up:<a rel="up" accesskey="u" href="#Customizing%20the%20Command%20Tool">Customizing the Command Tool</a>
 
5136
</small>
 
5137
 
 
5138
<br>
 
5139
</div>
 
5140
 
 
5141
<h5 class="subsubsection">Disabling the Command Tool</h5>
 
5142
 
 
5143
   <p>You can disable the command tool and show its buttons in a separate row
 
5144
beneath the tool bar.  To disable the command tool, set <code>Edit
 
5145
=&gt; Preferences =&gt; Source =&gt; Tool Buttons Location
 
5146
=&gt; Source Window</code>.
 
5147
 
 
5148
<br><p>
 
5149
<div align="center"><img src="PICS/ddd-source-prefs.jpg" alt="PICS/ddd-source-prefs.jpg"></div>
 
5150
<br><p>
 
5151
   <p>Here's the related resource:
 
5152
 
 
5153
<p>
 
5154
<table width="100%">
 
5155
<tr>
 
5156
<td align="left"><b>commandToolBar</b><i> </i>(<i>class ToolBar</i>)<i>
 
5157
     </i></td>
 
5158
<td align="right">Resource</td>
 
5159
</tr>
 
5160
</table>
 
5161
<table width="95%" align="center">
 
5162
<tr><td>
 
5163
Whether the tool buttons should be shown in a tool bar above the source
 
5164
window (<code>on</code>) or within the command tool (<code>off</code>, default). 
 
5165
Enabling the command tool bar disables the command tool and vice versa. 
 
5166
</td></tr>
 
5167
</table>
 
5168
 
 
5169
<div class="node">
 
5170
<p><hr>
 
5171
<small class=header>
 
5172
Node:<a name="Customizing%20Tool%20Position">Customizing Tool Position</a>,
 
5173
Previous:<a rel="previous" accesskey="p" href="#Customizing%20the%20Command%20Tool">Customizing the Command Tool</a>,
 
5174
Up:<a rel="up" accesskey="u" href="#Command%20Tool">Command Tool</a>
 
5175
</small>
 
5176
 
 
5177
<br>
 
5178
</div>
 
5179
 
 
5180
<h4 class="subsection">Command Tool Position</h4>
 
5181
 
 
5182
   <p>The following resources control the position of the command tool
 
5183
(see <a href="#Customizing">Customizing</a>):
 
5184
 
 
5185
<p>
 
5186
<table width="100%">
 
5187
<tr>
 
5188
<td align="left"><b>autoRaiseTool</b><i> </i>(<i>class AutoRaiseTool</i>)<i>
 
5189
     </i></td>
 
5190
<td align="right">Resource</td>
 
5191
</tr>
 
5192
</table>
 
5193
<table width="95%" align="center">
 
5194
<tr><td>
 
5195
If <code>on</code> (default), <small>DDD</small> will always keep the command tool on
 
5196
top of other <small>DDD</small> windows.  If this setting interferes with your
 
5197
window manager, or if your window manager keeps the command tool on top
 
5198
anyway, set this resource to <code>off</code>. 
 
5199
</td></tr>
 
5200
</table>
 
5201
 
 
5202
<p>
 
5203
<table width="100%">
 
5204
<tr>
 
5205
<td align="left"><b>stickyTool</b><i> </i>(<i>class StickyTool</i>)<i>
 
5206
     </i></td>
 
5207
<td align="right">Resource</td>
 
5208
</tr>
 
5209
</table>
 
5210
<table width="95%" align="center">
 
5211
<tr><td>
 
5212
If <code>on</code> (default), the command tool automatically follows every
 
5213
movement of the source window.  Whenever the source window is moved, the
 
5214
command tool is moved by the same offset such that its position relative
 
5215
to the source window remains unchanged.  If <code>off</code>, the command tool
 
5216
does not follow source window movements. 
 
5217
</td></tr>
 
5218
</table>
 
5219
 
 
5220
<p>
 
5221
<table width="100%">
 
5222
<tr>
 
5223
<td align="left"><b>toolRightOffset</b><i> </i>(<i>class Offset</i>)<i>
 
5224
     </i></td>
 
5225
<td align="right">Resource</td>
 
5226
</tr>
 
5227
</table>
 
5228
<table width="95%" align="center">
 
5229
<tr><td>
 
5230
The distance between the right border of the command tool and the
 
5231
right border of the source text (in pixels).  Default is 8. 
 
5232
</td></tr>
 
5233
</table>
 
5234
 
 
5235
<p>
 
5236
<table width="100%">
 
5237
<tr>
 
5238
<td align="left"><b>toolTopOffset</b><i> </i>(<i>class Offset</i>)<i>
 
5239
     </i></td>
 
5240
<td align="right">Resource</td>
 
5241
</tr>
 
5242
</table>
 
5243
<table width="95%" align="center">
 
5244
<tr><td>
 
5245
The distance between the upper border of the command tool and the
 
5246
upper border of the source text (in pixels).  Default is 8. 
 
5247
</td></tr>
 
5248
</table>
 
5249
 
 
5250
<ul class="menu">
 
5251
<li><a accesskey="1" href="#Customizing%20Tool%20Decoration">Customizing Tool Decoration</a>: 
 
5252
</ul>
 
5253
 
 
5254
<div class="node">
 
5255
<p><hr>
 
5256
<small class=header>
 
5257
Node:<a name="Customizing%20Tool%20Decoration">Customizing Tool Decoration</a>,
 
5258
Up:<a rel="up" accesskey="u" href="#Customizing%20Tool%20Position">Customizing Tool Position</a>
 
5259
</small>
 
5260
 
 
5261
<br>
 
5262
</div>
 
5263
 
 
5264
<h5 class="subsubsection">Customizing Tool Decoration</h5>
 
5265
 
 
5266
   <p>The following resources control the decoration of the command tool
 
5267
(see <a href="#Customizing">Customizing</a>):
 
5268
 
 
5269
<p>
 
5270
<table width="100%">
 
5271
<tr>
 
5272
<td align="left"><b>decorateTool</b><i> </i>(<i>class Decorate</i>)<i>
 
5273
     </i></td>
 
5274
<td align="right">Resource</td>
 
5275
</tr>
 
5276
</table>
 
5277
<table width="95%" align="center">
 
5278
<tr><td>
 
5279
This resource controls the decoration of the command tool.
 
5280
 
 
5281
          <ul>
 
5282
<li>If this is <code>off</code>, the command tool is created as a <em>transient
 
5283
window</em>.  Several window managers keep transient windows automatically
 
5284
on top of their parents, which is appropriate for the command tool. 
 
5285
However, your window manager may be configured not to decorate transient
 
5286
windows, which means that you cannot easily move the command tool
 
5287
around.
 
5288
 
 
5289
          <li>If this is <code>on</code>, <small>DDD</small> realizes the command tool as a
 
5290
<em>top-level window</em>.  Such windows are always decorated by the
 
5291
window manager.  However, top-level windows are not automatically kept
 
5292
on top of other windows, such that you may wish to set the
 
5293
<code>autoRaiseTool</code> resource, too.
 
5294
 
 
5295
          <li>If this is <code>auto</code> (default), <small>DDD</small> checks whether the window
 
5296
manager decorates transients.  If yes, the command tool is realized as a
 
5297
transient window (as in the <code>off</code> setting); if no, the command tool
 
5298
is realized as a top-level window (as in the <code>on</code> setting).  Hence,
 
5299
the command tool is always decorated using the "best" method, but the
 
5300
extra check takes some time. 
 
5301
</ul>
 
5302
     </td></tr>
 
5303
</table>
 
5304
 
 
5305
<div class="node">
 
5306
<p><hr>
 
5307
<small class=header>
 
5308
Node:<a name="Getting%20Help">Getting Help</a>,
 
5309
Next:<a rel="next" accesskey="n" href="#Undo%20and%20Redo">Undo and Redo</a>,
 
5310
Previous:<a rel="previous" accesskey="p" href="#Command%20Tool">Command Tool</a>,
 
5311
Up:<a rel="up" accesskey="u" href="#Windows">Windows</a>
 
5312
</small>
 
5313
 
 
5314
<br>
 
5315
</div>
 
5316
 
 
5317
<h3 class="section">Getting Help</h3>
 
5318
 
 
5319
   <p><small>DDD</small> has an extensive on-line help system.  Here's how to get
 
5320
help while working with <small>DDD</small>.
 
5321
 
 
5322
     <ul>
 
5323
<li>You can get a short help text on most <small>DDD</small> buttons by simply
 
5324
moving the mouse pointer on it and leave it there.  After a second, a
 
5325
small window (called <dfn>button tip</dfn>; also known as <dfn>tool tip</dfn> or
 
5326
<dfn>balloon help</dfn>) pops up, giving a hint on the button's meaning.  The
 
5327
button tip disappears as soon as you move the mouse pointer to another
 
5328
item.
 
5329
 
 
5330
     <li>The <dfn>status line</dfn> also displays information about the currently selected
 
5331
item.  By clicking on the status line, you can redisplay the most
 
5332
recent messages.
 
5333
 
 
5334
     <li>You can get detailed help on any visible <small>DDD</small> item.  Just
 
5335
point on the item you want help and press the <code>F1</code> key.  This
 
5336
pops up a detailed help text.
 
5337
 
 
5338
     <li>The <small>DDD</small> dialogs all contain <code>Help</code> buttons that give
 
5339
detailed information about the dialog.
 
5340
 
 
5341
     <li>You can get help on debugger commands by entering <code>help</code> at the
 
5342
debugger prompt.  See <a href="#Entering%20Commands">Entering Commands</a>, for details on entering
 
5343
commands.
 
5344
 
 
5345
     <li>If you are totally stuck, try <code>Help =&gt; What Now?</code> (the
 
5346
<code>What Now?</code> item in the <code>Help</code> menu) or press &lt;Ctrl+F1&gt;. 
 
5347
Depending on the current state, <small>DDD</small> will give you some hints on
 
5348
what you can do next.
 
5349
 
 
5350
     <li>Of course, you can always refer to the <em>on-line documentation</em>:
 
5351
 
 
5352
          <ul>
 
5353
<li><code>Help =&gt; </code><small>DDD</small><code> Reference</code> gives you access to the
 
5354
<small>DDD</small> manual, the ultimate <small>DDD</small> reference.
 
5355
 
 
5356
          <li><code>Help =&gt; Debugger Reference</code> shows you the
 
5357
on-line documentation of the inferior debugger.
 
5358
 
 
5359
          <li><code>Help =&gt; </code><small>DDD</small><code> </code><small>WWW</small><code> Page</code> gives you access to the
 
5360
latest and greatest information on <small>DDD</small>. 
 
5361
</ul>
 
5362
 
 
5363
     <li>Finally, the <small>DDD</small> <dfn>Tip Of The Day</dfn> gives you important hints
 
5364
with each new <small>DDD</small> invocation. 
 
5365
</ul>
 
5366
 
 
5367
   <p>All these functions can be customized in various ways
 
5368
(see <a href="#Customizing%20Help">Customizing Help</a>).
 
5369
 
 
5370
   <p>If, after all, you made a mistake, don't worry: almost every <small>DDD</small>
 
5371
command can be undone.  See <a href="#Undo%20and%20Redo">Undo and Redo</a>, for details.
 
5372
 
 
5373
<div class="node">
 
5374
<p><hr>
 
5375
<small class=header>
 
5376
Node:<a name="Undo%20and%20Redo">Undo and Redo</a>,
 
5377
Next:<a rel="next" accesskey="n" href="#Customizing">Customizing</a>,
 
5378
Previous:<a rel="previous" accesskey="p" href="#Getting%20Help">Getting Help</a>,
 
5379
Up:<a rel="up" accesskey="u" href="#Windows">Windows</a>
 
5380
</small>
 
5381
 
 
5382
<br>
 
5383
</div>
 
5384
 
 
5385
<h3 class="section">Undoing and Redoing Commands</h3>
 
5386
 
 
5387
   <p>Almost every <small>DDD</small> command can be undone, using <code>Edit
 
5388
=&gt; Undo</code> or the <code>Undo</code> button on the command tool.
 
5389
 
 
5390
   <p>Likewise, <code>Edit =&gt; Redo</code> repeats the command most recently
 
5391
undone.
 
5392
 
 
5393
   <p>The <code>Edit</code> menu shows which commands are to be undone and redone
 
5394
next; this is also indicated by the popup help on the <code>Undo</code> and
 
5395
<code>Redo</code> buttons.
 
5396
 
 
5397
<div class="node">
 
5398
<p><hr>
 
5399
<small class=header>
 
5400
Node:<a name="Customizing">Customizing</a>,
 
5401
Previous:<a rel="previous" accesskey="p" href="#Undo%20and%20Redo">Undo and Redo</a>,
 
5402
Up:<a rel="up" accesskey="u" href="#Windows">Windows</a>
 
5403
</small>
 
5404
 
 
5405
<br>
 
5406
</div>
 
5407
 
 
5408
<h3 class="section">Customizing DDD</h3>
 
5409
 
 
5410
   <p><small>DDD</small> is controlled by several <em>resources</em>--user-defined
 
5411
variables that take specific values in order to control and customize
 
5412
<small>DDD</small> behavior.
 
5413
 
 
5414
   <p>Most <small>DDD</small> resources can be set interactively while <small>DDD</small> is
 
5415
running or when invoking <small>DDD</small>.  See <a href="#Resource%20Index">Resource Index</a>, for the full list
 
5416
of <small>DDD</small> resources.
 
5417
 
 
5418
   <p>We first discuss how customizing works in general; then we turn to
 
5419
customizing parts of <small>DDD</small> introduced so far.
 
5420
 
 
5421
<ul class="menu">
 
5422
<li><a accesskey="1" href="#How%20Customizing%20Works">How Customizing Works</a>: 
 
5423
<li><a accesskey="2" href="#Customizing%20Help">Customizing Help</a>: 
 
5424
<li><a accesskey="3" href="#Customizing%20Undo">Customizing Undo</a>: 
 
5425
<li><a accesskey="4" href="#Customizing%20Windows">Customizing Windows</a>: 
 
5426
<li><a accesskey="5" href="#Debugger%20Settings">Debugger Settings</a>: 
 
5427
</ul>
 
5428
 
 
5429
<div class="node">
 
5430
<p><hr>
 
5431
<small class=header>
 
5432
Node:<a name="How%20Customizing%20Works">How Customizing Works</a>,
 
5433
Next:<a rel="next" accesskey="n" href="#Customizing%20Help">Customizing Help</a>,
 
5434
Up:<a rel="up" accesskey="u" href="#Customizing">Customizing</a>
 
5435
</small>
 
5436
 
 
5437
<br>
 
5438
</div>
 
5439
 
 
5440
<h4 class="subsection">How Customizing DDD Works</h4>
 
5441
 
 
5442
<ul class="menu">
 
5443
<li><a accesskey="1" href="#Resources">Resources</a>: 
 
5444
<li><a accesskey="2" href="#Changing%20Resources">Changing Resources</a>: 
 
5445
<li><a accesskey="3" href="#Saving%20Options">Saving Options</a>: 
 
5446
</ul>
 
5447
 
 
5448
<div class="node">
 
5449
<p><hr>
 
5450
<small class=header>
 
5451
Node:<a name="Resources">Resources</a>,
 
5452
Next:<a rel="next" accesskey="n" href="#Changing%20Resources">Changing Resources</a>,
 
5453
Up:<a rel="up" accesskey="u" href="#How%20Customizing%20Works">How Customizing Works</a>
 
5454
</small>
 
5455
 
 
5456
<br>
 
5457
</div>
 
5458
 
 
5459
<h5 class="subsubsection">Resources</h5>
 
5460
 
 
5461
   <p>Just like any X program, <small>DDD</small> has a number of places to get
 
5462
resource values from.  For <small>DDD</small>, the most important places to
 
5463
specify resources are:
 
5464
 
 
5465
     <ul>
 
5466
<li>The <code>~/.ddd/init</code> file (<code>~</code> stands for your home
 
5467
directory).  This file is read in by <small>DDD</small> upon start-up; the
 
5468
resources specified herein override all other sources (except for
 
5469
resources given implicitly by command-line options).
 
5470
 
 
5471
     <p>If the environment variable <code>DDD_STATE</code> is set, its value
 
5472
is used instead of <code>~/.ddd/</code>.
 
5473
 
 
5474
     </p><li>The <code>Ddd</code> application-defaults file.  This file is
 
5475
typically compiled into the <small>DDD</small> executable.  If it exists, its
 
5476
resource values override the values compiled into <small>DDD</small>.  If the
 
5477
versions of the <code>Ddd</code> application-defaults file and the
 
5478
<small>DDD</small> executable do not match, <small>DDD</small> may not function
 
5479
properly; <small>DDD</small> will give you a warning in this case.<a rel="footnote" href="#fn-8"><sup>8</sup></a>
 
5480
 
 
5481
     <li>The command-line options.  These options override all other resource
 
5482
settings.
 
5483
 
 
5484
     <li>If the environment variable <code>DDD_SESSION</code> is set, it
 
5485
indicates the name of a session to start, overriding all options and
 
5486
resources.  This is used by <small>DDD</small> when restarting itself. 
 
5487
</ul>
 
5488
 
 
5489
   <p>Not every resource has a matching command-line option.  Each resource
 
5490
(whether in <code>~/.ddd/init</code> or <code>Ddd</code>) is
 
5491
specified using a line
 
5492
 
 
5493
<pre class="example">     Ddd*<var>resource</var>: <var>value</var>
 
5494
     </pre>
 
5495
 
 
5496
   <p>For instance, to set the <code>pollChildStatus</code> resource to <code>off</code>,
 
5497
you would specify in <code>~/.ddd/init</code>:
 
5498
 
 
5499
<pre class="example">     Ddd*pollChildStatus: off
 
5500
     </pre>
 
5501
 
 
5502
   <p>For more details on the syntax of resource specifications, see the
 
5503
section <cite>RESOURCES</cite> in the <cite>X(1)</cite> manual page.
 
5504
 
 
5505
<div class="node">
 
5506
<p><hr>
 
5507
<small class=header>
 
5508
Node:<a name="Changing%20Resources">Changing Resources</a>,
 
5509
Next:<a rel="next" accesskey="n" href="#Saving%20Options">Saving Options</a>,
 
5510
Previous:<a rel="previous" accesskey="p" href="#Resources">Resources</a>,
 
5511
Up:<a rel="up" accesskey="u" href="#How%20Customizing%20Works">How Customizing Works</a>
 
5512
</small>
 
5513
 
 
5514
<br>
 
5515
</div>
 
5516
 
 
5517
<h5 class="subsubsection">Changing Resources</h5>
 
5518
 
 
5519
   <p>You can change <small>DDD</small> resources by three methods:
 
5520
 
 
5521
     <ul>
 
5522
<li>Use <small>DDD</small> to change the options, notably <code>Edit =&gt;
 
5523
Preferences</code>.  This works for the most important <small>DDD</small> resources. 
 
5524
Be sure to save the options (see <a href="#Saving%20Options">Saving Options</a>) such that they
 
5525
apply to future <small>DDD</small> sessions, too.
 
5526
 
 
5527
     <li>You can also invoke <small>DDD</small> with an appropriate command-line option. 
 
5528
This changes the related <small>DDD</small> resource for this particular
 
5529
<small>DDD</small> invocation.  However, if you save the options (see <a href="#Saving%20Options">Saving Options</a>), the changed resource will also apply to future invocations.
 
5530
 
 
5531
     <li>Finally, you can set the appropriate resource in a file named
 
5532
<code>.ddd/init</code> in your home directory. 
 
5533
See <a href="#Resource%20Index">Resource Index</a>, for a list of <small>DDD</small> resources to be set. 
 
5534
</ul>
 
5535
 
 
5536
<div class="node">
 
5537
<p><hr>
 
5538
<small class=header>
 
5539
Node:<a name="Saving%20Options">Saving Options</a>,
 
5540
Previous:<a rel="previous" accesskey="p" href="#Changing%20Resources">Changing Resources</a>,
 
5541
Up:<a rel="up" accesskey="u" href="#How%20Customizing%20Works">How Customizing Works</a>
 
5542
</small>
 
5543
 
 
5544
<br>
 
5545
</div>
 
5546
 
 
5547
<h5 class="subsubsection">Saving Options</h5>
 
5548
 
 
5549
   <p>You can save the current option settings by setting <code>Edit =&gt;
 
5550
Save Options</code>.  Options are saved in a file named
 
5551
<code>.ddd/init</code> in your home directory when <small>DDD</small> exits.  If a
 
5552
session <var>session</var> is active, options will be saved in
 
5553
<code>~/.ddd/sessions/</code><var>session</var><code>/init</code> instead.
 
5554
 
 
5555
   <p>The options are automatically saved when exiting <small>DDD</small>.  You can turn
 
5556
off this feature by unsetting <code>Edit =&gt; Save Options</code>.  This
 
5557
is tied to the following resource:
 
5558
 
 
5559
<p>
 
5560
<table width="100%">
 
5561
<tr>
 
5562
<td align="left"><b>saveOptionsOnExit</b><i> </i>(<i>class SaveOnExit</i>)<i>
 
5563
     </i></td>
 
5564
<td align="right">Resource</td>
 
5565
</tr>
 
5566
</table>
 
5567
<table width="95%" align="center">
 
5568
<tr><td>
 
5569
If <code>on</code> (default), the current option settings are automatically saved
 
5570
when <small>DDD</small> exits. 
 
5571
</td></tr>
 
5572
</table>
 
5573
 
 
5574
<div class="node">
 
5575
<p><hr>
 
5576
<small class=header>
 
5577
Node:<a name="Customizing%20Help">Customizing Help</a>,
 
5578
Next:<a rel="next" accesskey="n" href="#Customizing%20Undo">Customizing Undo</a>,
 
5579
Previous:<a rel="previous" accesskey="p" href="#How%20Customizing%20Works">How Customizing Works</a>,
 
5580
Up:<a rel="up" accesskey="u" href="#Customizing">Customizing</a>
 
5581
</small>
 
5582
 
 
5583
<br>
 
5584
</div>
 
5585
 
 
5586
<h4 class="subsection">Customizing DDD Help</h4>
 
5587
 
 
5588
   <p><small>DDD</small> Help can be customized in various ways.
 
5589
 
 
5590
<ul class="menu">
 
5591
<li><a accesskey="1" href="#Button%20tips">Button tips</a>:                  Turning off tips. 
 
5592
<li><a accesskey="2" href="#Tip%20of%20the%20day">Tip of the day</a>:               Turning off the tip of the day. 
 
5593
<li><a accesskey="3" href="#Help%20Helpers">Help Helpers</a>:                 Helper programs invoked by Help. 
 
5594
</ul>
 
5595
 
 
5596
<div class="node">
 
5597
<p><hr>
 
5598
<small class=header>
 
5599
Node:<a name="Button%20tips">Button tips</a>,
 
5600
Next:<a rel="next" accesskey="n" href="#Tip%20of%20the%20day">Tip of the day</a>,
 
5601
Up:<a rel="up" accesskey="u" href="#Customizing%20Help">Customizing Help</a>
 
5602
</small>
 
5603
 
 
5604
<br>
 
5605
</div>
 
5606
 
 
5607
<h5 class="subsubsection">Button Tips</h5>
 
5608
 
 
5609
   <p>Button tips are helpful for novices, but may be distracting for
 
5610
experienced users.  You can turn off button tips via <code>Edit
 
5611
=&gt; Preferences =&gt; General =&gt; Automatic display of
 
5612
Button Hints =&gt; as Popup Tips</code>.
 
5613
 
 
5614
   <p>You can also turn off the hint that is displayed in the status line. 
 
5615
Just toggle <code>Edit =&gt; Preferences =&gt; General =&gt;
 
5616
Automatic Display of Button Hints =&gt; in the Status Line</code>.
 
5617
 
 
5618
<br><p>
 
5619
<div align="center"><img src="PICS/ddd-general-prefs.jpg" alt="PICS/ddd-general-prefs.jpg"></div>
 
5620
<br><p>
 
5621
   <p>These are the related <small>DDD</small> resources (see <a href="#Customizing">Customizing</a>):
 
5622
 
 
5623
<p>
 
5624
<table width="100%">
 
5625
<tr>
 
5626
<td align="left"><b>buttonTips</b><i> </i>(<i>class Tips</i>)<i>
 
5627
     </i></td>
 
5628
<td align="right">Resource</td>
 
5629
</tr>
 
5630
</table>
 
5631
<table width="95%" align="center">
 
5632
<tr><td>
 
5633
If <code>on</code> (default), enable button tips. 
 
5634
</td></tr>
 
5635
</table>
 
5636
 
 
5637
<p>
 
5638
<table width="100%">
 
5639
<tr>
 
5640
<td align="left"><b>buttonDocs</b><i> </i>(<i>class Docs</i>)<i>
 
5641
     </i></td>
 
5642
<td align="right">Resource</td>
 
5643
</tr>
 
5644
</table>
 
5645
<table width="95%" align="center">
 
5646
<tr><td>
 
5647
If <code>on</code> (default), show button hints in the status line. 
 
5648
</td></tr>
 
5649
</table>
 
5650
 
 
5651
<div class="node">
 
5652
<p><hr>
 
5653
<small class=header>
 
5654
Node:<a name="Tip%20of%20the%20day">Tip of the day</a>,
 
5655
Next:<a rel="next" accesskey="n" href="#Help%20Helpers">Help Helpers</a>,
 
5656
Previous:<a rel="previous" accesskey="p" href="#Button%20tips">Button tips</a>,
 
5657
Up:<a rel="up" accesskey="u" href="#Customizing%20Help">Customizing Help</a>
 
5658
</small>
 
5659
 
 
5660
<br>
 
5661
</div>
 
5662
 
 
5663
<h5 class="subsubsection">Tip of the day</h5>
 
5664
 
 
5665
   <p>You can turn off the tip of the day by toggling <code>Edit =&gt;
 
5666
Preferences =&gt; Startup =&gt; Startup Windows =&gt; Tip of
 
5667
the Day</code>.
 
5668
 
 
5669
   <p>Here is the related <small>DDD</small> resource (see <a href="#Customizing">Customizing</a>):
 
5670
 
 
5671
<p>
 
5672
<table width="100%">
 
5673
<tr>
 
5674
<td align="left"><b>startupTips</b><i> </i>(<i>class StartupTips</i>)<i>
 
5675
     </i></td>
 
5676
<td align="right">Resource</td>
 
5677
</tr>
 
5678
</table>
 
5679
<table width="95%" align="center">
 
5680
<tr><td>
 
5681
If <code>on</code> (default), show a tip of the day upon <small>DDD</small> startup. 
 
5682
</td></tr>
 
5683
</table>
 
5684
 
 
5685
   <p>See <a href="#Options">Options</a>, for options to set this resource upon <small>DDD</small>
 
5686
invocation.
 
5687
 
 
5688
   <p>The actual tips are controlled by these resources (see <a href="#Customizing">Customizing</a>):
 
5689
 
 
5690
<p>
 
5691
<table width="100%">
 
5692
<tr>
 
5693
<td align="left"><b>startupTipCount</b><i> </i>(<i>class StartupTipCount</i>)<i>
 
5694
     </i></td>
 
5695
<td align="right">Resource</td>
 
5696
</tr>
 
5697
</table>
 
5698
<table width="95%" align="center">
 
5699
<tr><td>
 
5700
The number <var>n</var> of the tip of the day to be shown at startup.  See
 
5701
also the <code>tip</code><var>n</var><code></code> resources. 
 
5702
</td></tr>
 
5703
</table>
 
5704
 
 
5705
<p>
 
5706
<table width="100%">
 
5707
<tr>
 
5708
<td align="left"><b>tip</b><i></i><var>n</var><i> </i>(<i>class Tip</i>)<i>
 
5709
     </i></td>
 
5710
<td align="right">Resource</td>
 
5711
</tr>
 
5712
</table>
 
5713
<table width="95%" align="center">
 
5714
<tr><td>
 
5715
The tip of the day numbered <var>n</var> (a string). 
 
5716
</td></tr>
 
5717
</table>
 
5718
 
 
5719
<div class="node">
 
5720
<p><hr>
 
5721
<small class=header>
 
5722
Node:<a name="Help%20Helpers">Help Helpers</a>,
 
5723
Previous:<a rel="previous" accesskey="p" href="#Tip%20of%20the%20day">Tip of the day</a>,
 
5724
Up:<a rel="up" accesskey="u" href="#Customizing%20Help">Customizing Help</a>
 
5725
</small>
 
5726
 
 
5727
<br>
 
5728
</div>
 
5729
 
 
5730
<h5 class="subsubsection">Help Helpers</h5>
 
5731
 
 
5732
   <p><small>DDD</small> relies on a number of external commands, specified via
 
5733
<code>Edit =&gt; Preferences =&gt; Helpers</code>.
 
5734
 
 
5735
<br><p>
 
5736
<div align="center"><img src="PICS/ddd-helpers.jpg" alt="PICS/ddd-helpers.jpg"></div>
 
5737
<br><p>
 
5738
   <p>To uncompress help texts, you can define a <code>Uncompress</code> command:
 
5739
 
 
5740
<p>
 
5741
<table width="100%">
 
5742
<tr>
 
5743
<td align="left"><b>uncompressCommand</b><i> </i>(<i>class UncompressCommand</i>)<i>
 
5744
     </i></td>
 
5745
<td align="right">Resource</td>
 
5746
</tr>
 
5747
</table>
 
5748
<table width="95%" align="center">
 
5749
<tr><td>
 
5750
The command to uncompress the built-in <small>DDD</small> manual, the
 
5751
<small>DDD</small> license, and the <small>DDD</small> news.  Takes a compressed text
 
5752
from standard input and writes the uncompressed text to standard output. 
 
5753
The default value is <code>gzip -d -c</code>; typical values include
 
5754
<code>zcat</code> and <code>gunzip -c</code>. 
 
5755
</td></tr>
 
5756
</table>
 
5757
 
 
5758
   <p>To view <small>WWW</small> pages, you can define a <code>Web Browser</code> command:
 
5759
 
 
5760
<p>
 
5761
<table width="100%">
 
5762
<tr>
 
5763
<td align="left"><b>wwwCommand</b><i> </i>(<i>class WWWCommand</i>)<i>
 
5764
     </i></td>
 
5765
<td align="right">Resource</td>
 
5766
</tr>
 
5767
</table>
 
5768
<table width="95%" align="center">
 
5769
<tr><td>
 
5770
The command to invoke a <small>WWW</small> browser.  The string <code>@URL@</code> is
 
5771
replaced by the <small>URL</small> to open.  Default is to try a running
 
5772
Netscape first (trying <code>mozilla</code>, then <code>netscape</code>), then
 
5773
<code>$WWWBROWSER</code>, then to invoke a new Netscape process, then to
 
5774
let a running Emacs or XEmacs do the job (via <code>gnudoit</code>), then
 
5775
to invoke Mosaic, then to invoke Lynx in an xterm.
 
5776
 
 
5777
     <p>To specify <code>netscape-6.0</code> as browser, use the setting:
 
5778
 
 
5779
     <pre class="example">          Ddd*wwwCommand: \
 
5780
               netscape-6.0 -remote 'openURL(@URL@)' \
 
5781
            || netscape-6.0 '@URL@'
 
5782
          </pre>
 
5783
 
 
5784
     <p>This command first tries to connect to a running <code>netscape-6.0</code>
 
5785
browser; if this fails, it starts a new <code>netscape-6.0</code> process. 
 
5786
</td></tr>
 
5787
</table>
 
5788
 
 
5789
   <p>This is the default <small>WWW</small> Page shown by <code>Help =&gt; </code><small>DDD</small><code>
 
5790
</code><small>WWW</small><code> Page</code>:
 
5791
 
 
5792
<p>
 
5793
<table width="100%">
 
5794
<tr>
 
5795
<td align="left"><b>wwwPage</b><i> </i>(<i>class </i><small>WWW</small><i>Page</i>)<i>
 
5796
     </i></td>
 
5797
<td align="right">Resource</td>
 
5798
</tr>
 
5799
</table>
 
5800
<table width="95%" align="center">
 
5801
<tr><td>
 
5802
The <small>DDD</small> <small>WWW</small> page.  Value:
 
5803
<a href="http://www.gnu.org/software/ddd/">http://www.gnu.org/software/ddd/</a>
 
5804
</td></tr>
 
5805
</table>
 
5806
 
 
5807
<div class="node">
 
5808
<p><hr>
 
5809
<small class=header>
 
5810
Node:<a name="Customizing%20Undo">Customizing Undo</a>,
 
5811
Next:<a rel="next" accesskey="n" href="#Customizing%20Windows">Customizing Windows</a>,
 
5812
Previous:<a rel="previous" accesskey="p" href="#Customizing%20Help">Customizing Help</a>,
 
5813
Up:<a rel="up" accesskey="u" href="#Customizing">Customizing</a>
 
5814
</small>
 
5815
 
 
5816
<br>
 
5817
</div>
 
5818
 
 
5819
<h4 class="subsection">Customizing Undo</h4>
 
5820
 
 
5821
   <p><small>DDD</small> Undo can be customized in various ways.
 
5822
 
 
5823
   <p>To set a maximum size for the undo buffer, set <code>Edit =&gt;
 
5824
Preferences =&gt; General =&gt; Undo Buffer Size</code>.
 
5825
 
 
5826
   <p>This is related to the <code>maxUndoSize</code> resource:
 
5827
 
 
5828
<p>
 
5829
<table width="100%">
 
5830
<tr>
 
5831
<td align="left"><b>maxUndoSize</b><i> </i>(<i>class MaxUndoSize</i>)<i>
 
5832
     </i></td>
 
5833
<td align="right">Resource</td>
 
5834
</tr>
 
5835
</table>
 
5836
<table width="95%" align="center">
 
5837
<tr><td>
 
5838
The maximum memory usage (in bytes) of the undo buffer.  Useful for
 
5839
limiting <small>DDD</small> memory usage.  A negative value means to place no
 
5840
limit.  Default is <code>2000000</code>, or 2000 kBytes. 
 
5841
</td></tr>
 
5842
</table>
 
5843
 
 
5844
   <p>You can also limit the number of entries in the undo buffer, regardless
 
5845
of size (see <a href="#Customizing">Customizing</a>):
 
5846
 
 
5847
<p>
 
5848
<table width="100%">
 
5849
<tr>
 
5850
<td align="left"><b>maxUndoDepth</b><i> </i>(<i>class MaxUndoDepth</i>)<i>
 
5851
     </i></td>
 
5852
<td align="right">Resource</td>
 
5853
</tr>
 
5854
</table>
 
5855
<table width="95%" align="center">
 
5856
<tr><td>
 
5857
The maximum number of entries in the undo buffer.  This limits the
 
5858
number of actions that can be undone, and the number of states that
 
5859
can be shown in historic mode.  Useful for limiting <small>DDD</small>
 
5860
memory usage.  A negative value (default) means to place no limit. 
 
5861
</td></tr>
 
5862
</table>
 
5863
 
 
5864
   <p>To clear the undo buffer at any time, thus reducing memory usage, use
 
5865
<code>Edit =&gt; Preferences =&gt; General =&gt; Clear Undo
 
5866
Buffer</code>
 
5867
 
 
5868
<div class="node">
 
5869
<p><hr>
 
5870
<small class=header>
 
5871
Node:<a name="Customizing%20Windows">Customizing Windows</a>,
 
5872
Next:<a rel="next" accesskey="n" href="#Debugger%20Settings">Debugger Settings</a>,
 
5873
Previous:<a rel="previous" accesskey="p" href="#Customizing%20Undo">Customizing Undo</a>,
 
5874
Up:<a rel="up" accesskey="u" href="#Customizing">Customizing</a>
 
5875
</small>
 
5876
 
 
5877
<br>
 
5878
</div>
 
5879
 
 
5880
<h4 class="subsection">Customizing the DDD Windows</h4>
 
5881
 
 
5882
   <p>You can customize the <small>DDD</small> Windows in various ways.
 
5883
 
 
5884
<ul class="menu">
 
5885
<li><a accesskey="1" href="#Splash%20Screen">Splash Screen</a>:                Turning off the splash screen. 
 
5886
<li><a accesskey="2" href="#Window%20Layout">Window Layout</a>:                Re-arranging windows. 
 
5887
<li><a accesskey="3" href="#Customizing%20Fonts">Customizing Fonts</a>:            Using alternate fonts. 
 
5888
<li><a accesskey="4" href="#Toggling%20Windows">Toggling Windows</a>:             Turning off windows. 
 
5889
<li><a accesskey="5" href="#Text%20Fields">Text Fields</a>:                  Popdown histories. 
 
5890
<li><a accesskey="6" href="#Icons">Icons</a>:                        Iconifying <small>DDD</small> windows. 
 
5891
<li><a accesskey="7" href="#Adding%20Buttons">Adding Buttons</a>:               Create your own button set. 
 
5892
<li><a accesskey="8" href="#More%20Customizations">More Customizations</a>: 
 
5893
</ul>
 
5894
 
 
5895
<div class="node">
 
5896
<p><hr>
 
5897
<small class=header>
 
5898
Node:<a name="Splash%20Screen">Splash Screen</a>,
 
5899
Next:<a rel="next" accesskey="n" href="#Window%20Layout">Window Layout</a>,
 
5900
Up:<a rel="up" accesskey="u" href="#Customizing%20Windows">Customizing Windows</a>
 
5901
</small>
 
5902
 
 
5903
<br>
 
5904
</div>
 
5905
 
 
5906
<h5 class="subsubsection">Splash Screen</h5>
 
5907
 
 
5908
   <p>You can turn off the <small>DDD</small> splash screen shown upon startup.  Just
 
5909
select <code>Edit =&gt; Preferences =&gt; Startup </code><small>DDD</small><code>
 
5910
Splash Screen</code>.
 
5911
 
 
5912
<br><p>
 
5913
<div align="center"><img src="PICS/ddd-startup-prefs.jpg" alt="PICS/ddd-startup-prefs.jpg"></div>
 
5914
<br><p>
 
5915
   <p>The value applies only to the next <small>DDD</small> invocation.
 
5916
 
 
5917
   <p>This setting is related to the following resource:
 
5918
 
 
5919
<p>
 
5920
<table width="100%">
 
5921
<tr>
 
5922
<td align="left"><b>splashScreen</b><i> </i>(<i>class SplashScreen</i>)<i>
 
5923
     </i></td>
 
5924
<td align="right">Resource</td>
 
5925
</tr>
 
5926
</table>
 
5927
<table width="95%" align="center">
 
5928
<tr><td>
 
5929
If <code>on</code> (default), show a <small>DDD</small> splash screen upon
 
5930
start-up. 
 
5931
</td></tr>
 
5932
</table>
 
5933
 
 
5934
   <p>You can also customize the appearance of the splash screen
 
5935
(see <a href="#Customizing">Customizing</a>):
 
5936
 
 
5937
<p>
 
5938
<table width="100%">
 
5939
<tr>
 
5940
<td align="left"><b>splashScreenColorKey</b><i> </i>(<i>class ColorKey</i>)<i>
 
5941
     </i></td>
 
5942
<td align="right">Resource</td>
 
5943
</tr>
 
5944
</table>
 
5945
<table width="95%" align="center">
 
5946
<tr><td>
 
5947
The color key to use for the <small>DDD</small> splash screen.  Possible
 
5948
values include:
 
5949
 
 
5950
          <ul>
 
5951
<li><code>c</code> (default) for a color visual,
 
5952
<li><code>g</code> for a multi-level greyscale visual,
 
5953
<li><code>g4</code> for a 4-level greyscale visual, and
 
5954
<li><code>m</code> for a dithered monochrome visual. 
 
5955
<li><code>best</code> chooses the best visual available for your display. 
 
5956
</ul>
 
5957
 
 
5958
     <p>Please note: if <small>DDD</small> runs on a monochrome display, or if <small>DDD</small> was
 
5959
compiled without the <small>XPM</small> library, only the monochrome version
 
5960
(<code>m</code>) can be shown. 
 
5961
</td></tr>
 
5962
</table>
 
5963
 
 
5964
<div class="node">
 
5965
<p><hr>
 
5966
<small class=header>
 
5967
Node:<a name="Window%20Layout">Window Layout</a>,
 
5968
Next:<a rel="next" accesskey="n" href="#Customizing%20Fonts">Customizing Fonts</a>,
 
5969
Previous:<a rel="previous" accesskey="p" href="#Splash%20Screen">Splash Screen</a>,
 
5970
Up:<a rel="up" accesskey="u" href="#Customizing%20Windows">Customizing Windows</a>
 
5971
</small>
 
5972
 
 
5973
<br>
 
5974
</div>
 
5975
 
 
5976
<h5 class="subsubsection">Window Layout</h5>
 
5977
 
 
5978
   <p>By default, <small>DDD</small> stacks commands, source, and data in one single
 
5979
top-level window.  To have separate top-level windows for source, data,
 
5980
and debugger console, set <code>Edit =&gt; Preferences =&gt;
 
5981
Startup =&gt; Window Layout =&gt; Separate Windows</code>.
 
5982
 
 
5983
<br><p>
 
5984
<div align="center"><img src="PICS/ddd-separate.jpg" alt="PICS/ddd-separate.jpg"></div>
 
5985
<br><p>
 
5986
   <p>Here are the related <small>DDD</small> resources:
 
5987
 
 
5988
<p>
 
5989
<table width="100%">
 
5990
<tr>
 
5991
<td align="left"><b>separateDataWindow</b><i> </i>(<i>class Separate</i>)<i>
 
5992
     </i></td>
 
5993
<td align="right">Resource</td>
 
5994
</tr>
 
5995
</table>
 
5996
<table width="95%" align="center">
 
5997
<tr><td>
 
5998
If <code>on</code>, the data window and the debugger console are realized in
 
5999
different top-level windows.  If <code>off</code> (default), the data window
 
6000
is attached to the debugger console. 
 
6001
</td></tr>
 
6002
</table>
 
6003
 
 
6004
<p>
 
6005
<table width="100%">
 
6006
<tr>
 
6007
<td align="left"><b>separateSourceWindow</b><i> </i>(<i>class Separate</i>)<i>
 
6008
     </i></td>
 
6009
<td align="right">Resource</td>
 
6010
</tr>
 
6011
</table>
 
6012
<table width="95%" align="center">
 
6013
<tr><td>
 
6014
If <code>on</code>, the source window and the debugger console are realized in
 
6015
different top-level windows.  If <code>off</code> (default), the source window
 
6016
is attached to the debugger console. 
 
6017
</td></tr>
 
6018
</table>
 
6019
 
 
6020
   <p>By default, the <small>DDD</small> tool bars are located on top of the window. 
 
6021
If you prefer the tool bar being located at the bottom, as in
 
6022
<small>DDD</small> 2.x and earlier, set <code>Edit =&gt; Preferences
 
6023
=&gt; Startup =&gt; Tool Bar Appearance =&gt; Bottom</code>.
 
6024
 
 
6025
   <p>This is related to the <code>toolbarsAtBottom</code> resource:
 
6026
 
 
6027
<p>
 
6028
<table width="100%">
 
6029
<tr>
 
6030
<td align="left"><b>toolbarsAtBottom</b><i> </i>(<i>class ToolbarsAtBottom</i>)<i>
 
6031
     </i></td>
 
6032
<td align="right">Resource</td>
 
6033
</tr>
 
6034
</table>
 
6035
<table width="95%" align="center">
 
6036
<tr><td>
 
6037
Whether source and data tool bars should be placed above source and
 
6038
data, respectively (<code>off</code>, default), or below, as in <small>DDD</small>
 
6039
2.x (<code>on</code>). 
 
6040
</td></tr>
 
6041
</table>
 
6042
 
 
6043
   <p>The bottom setting is only supported for separate tool bars--that is,
 
6044
you must either choose separate windows or configure the tool bar to
 
6045
have neither images nor captions (see <a href="#Customizing%20the%20Tool%20Bar">Customizing the Tool Bar</a>).
 
6046
 
 
6047
   <p>If you use stacked windows, you can choose whether there should be one
 
6048
tool bar or two tool bars.  By default, <small>DDD</small> uses two tool bars
 
6049
if you use separate windows and disable captions and images, but you can
 
6050
also explicitly change the setting via this resource:
 
6051
 
 
6052
<p>
 
6053
<table width="100%">
 
6054
<tr>
 
6055
<td align="left"><b>commonToolBar</b><i> </i>(<i>class ToolBar</i>)<i>
 
6056
     </i></td>
 
6057
<td align="right">Resource</td>
 
6058
</tr>
 
6059
</table>
 
6060
<table width="95%" align="center">
 
6061
<tr><td>
 
6062
Whether the tool bar buttons should be shown in one common tool bar at
 
6063
the top of the common <small>DDD</small> window (<code>on</code>, default), or
 
6064
whether they should be placed in two separate tool bars, one for data,
 
6065
and one for source operations, as in <small>DDD</small> 2.x (<code>off</code>). 
 
6066
</td></tr>
 
6067
</table>
 
6068
 
 
6069
   <p>You can also change the location of the <em>status line</em>
 
6070
(see <a href="#Customizing">Customizing</a>):
 
6071
 
 
6072
<p>
 
6073
<table width="100%">
 
6074
<tr>
 
6075
<td align="left"><b>statusAtBottom</b><i> </i>(<i>class StatusAtBottom</i>)<i>
 
6076
     </i></td>
 
6077
<td align="right">Resource</td>
 
6078
</tr>
 
6079
</table>
 
6080
<table width="95%" align="center">
 
6081
<tr><td>
 
6082
If <code>on</code> (default), the status line is placed at the bottom of the
 
6083
<small>DDD</small> source window.  If <code>off</code>, the status line is placed at
 
6084
the top of the <small>DDD</small> source window (as in <small>DDD</small> 1.x). 
 
6085
</td></tr>
 
6086
</table>
 
6087
 
 
6088
   <p>See <a href="#Options">Options</a>, for options to set these resources upon <small>DDD</small>
 
6089
invocation.
 
6090
 
 
6091
<div class="node">
 
6092
<p><hr>
 
6093
<small class=header>
 
6094
Node:<a name="Customizing%20Fonts">Customizing Fonts</a>,
 
6095
Next:<a rel="next" accesskey="n" href="#Toggling%20Windows">Toggling Windows</a>,
 
6096
Previous:<a rel="previous" accesskey="p" href="#Window%20Layout">Window Layout</a>,
 
6097
Up:<a rel="up" accesskey="u" href="#Customizing%20Windows">Customizing Windows</a>
 
6098
</small>
 
6099
 
 
6100
<br>
 
6101
</div>
 
6102
 
 
6103
<h5 class="subsubsection">Customizing Fonts</h5>
 
6104
 
 
6105
   <p>You can configure the basic <small>DDD</small> fonts at run-time.  Each
 
6106
font is specified using two members:
 
6107
 
 
6108
     <ul>
 
6109
<li>The <dfn>font family</dfn> is an X font specifications, where the initial
 
6110
<code></code><var>foundry</var><code>-</code> specification may be omitted, as well as any
 
6111
specification after <var>family</var>.  Thus, a pair
 
6112
<code></code><var>family</var><code>-</code><var>weight</var><code></code> usually suffices.
 
6113
 
 
6114
     <li>The <dfn>font size</dfn> is given as (resolution-independent) 1/10 points. 
 
6115
</ul>
 
6116
 
 
6117
   <p>To specify fonts, select <code>Edit =&gt; Preferences =&gt;
 
6118
Fonts</code>.
 
6119
 
 
6120
<br><p>
 
6121
<div align="center"><img src="PICS/ddd-font-prefs.jpg" alt="PICS/ddd-font-prefs.jpg"></div>
 
6122
<br><p>
 
6123
   <p>The <code>Browse</code> button opens a font selection program, where you can
 
6124
select fonts and attributes interactively.  Clicking <code>quit</code> or
 
6125
<code>select</code> in the font selector causes all non-default values to be
 
6126
transferred to the <small>DDD</small> font preferences panel.
 
6127
 
 
6128
   <p>The following fonts can be set using the preferences panel:
 
6129
 
 
6130
     <dl>
 
6131
<dt><code>Default Font</code>
 
6132
     <dd>The default <small>DDD</small> font to use for labels, menus, and buttons. 
 
6133
Default is <code>helvetica-bold</code>.
 
6134
 
 
6135
     <br><dt><code>Variable Width</code>
 
6136
     <dd>The variable width <small>DDD</small> font to use for help texts and messages. 
 
6137
Default is <code>helvetica-medium</code>.
 
6138
 
 
6139
     <br><dt><code>Fixed Width</code>
 
6140
     <dd>The fixed width <small>DDD</small> font to use for source code, the debugger
 
6141
console, text fields, and the execution window.  Default
 
6142
is <code>lucidatypewriter-medium</code>.
 
6143
 
 
6144
     <br><dt><code>Data</code>
 
6145
     <dd>The <small>DDD</small> font to use for data displays.  Default
 
6146
is <code>lucidatypewriter-medium</code>. 
 
6147
</dl>
 
6148
 
 
6149
   <p>Changes in this panel will take effect only in the next <small>DDD</small> session. 
 
6150
To make it effective right now, restart <small>DDD</small> (using <code>File
 
6151
=&gt; Restart </code><small>DDD</small><code></code>).
 
6152
 
 
6153
   <p>After having made changes in the panel, <small>DDD</small> will automatically
 
6154
offer you to restart itself, such that you can see the changes taking
 
6155
effect.
 
6156
 
 
6157
   <p>The <code>Reset</code> button restores the most recently saved preferences.
 
6158
 
 
6159
   <p>Here are the resources related to font specifications:
 
6160
 
 
6161
<p>
 
6162
<table width="100%">
 
6163
<tr>
 
6164
<td align="left"><b>defaultFont</b><i> </i>(<i>class Font</i>)<i>
 
6165
     </i></td>
 
6166
<td align="right">Resource</td>
 
6167
</tr>
 
6168
</table>
 
6169
<table width="95%" align="center">
 
6170
<tr><td>
 
6171
The default <small>DDD</small> font to use for labels, menus, buttons, etc. 
 
6172
The font is specified as an X font spec, where the initial <var>Foundry</var>
 
6173
specification may be omitted, as well as any specification after
 
6174
<var>Family</var>.
 
6175
 
 
6176
     <p>Default value is <code>helvetica-bold</code>.
 
6177
 
 
6178
     <p>To set the default <small>DDD</small> font to, say, <code>helvetica medium</code>,
 
6179
insert a line
 
6180
 
 
6181
     <pre class="example">          Ddd*defaultFont: helvetica-medium
 
6182
          </pre>
 
6183
 
 
6184
     <p>in your <code>~/.ddd/init</code> file. 
 
6185
</td></tr>
 
6186
</table>
 
6187
 
 
6188
<p>
 
6189
<table width="100%">
 
6190
<tr>
 
6191
<td align="left"><b>defaultFontSize</b><i> </i>(<i>class FontSize</i>)<i>
 
6192
     </i></td>
 
6193
<td align="right">Resource</td>
 
6194
</tr>
 
6195
</table>
 
6196
<table width="95%" align="center">
 
6197
<tr><td>
 
6198
The size of the default <small>DDD</small> font, in 1/10 points.  This resource
 
6199
overrides any font size specification in the <code>defaultFont</code> resource
 
6200
(see above).  The default value is <code>120</code> for a 12.0 point font. 
 
6201
</td></tr>
 
6202
</table>
 
6203
 
 
6204
<p>
 
6205
<table width="100%">
 
6206
<tr>
 
6207
<td align="left"><b>variableWidthFont</b><i> </i>(<i>class Font</i>)<i>
 
6208
     </i></td>
 
6209
<td align="right">Resource</td>
 
6210
</tr>
 
6211
</table>
 
6212
<table width="95%" align="center">
 
6213
<tr><td>
 
6214
The variable width <small>DDD</small> font to use for help texts and messages. 
 
6215
The font is specified as an X font spec, where the initial <var>Foundry</var>
 
6216
specification may be omitted, as well as any specification after
 
6217
<var>Family</var>.
 
6218
 
 
6219
     <p>Default value is <code>helvetica-medium-r</code>.
 
6220
 
 
6221
     <p>To set the variable width <small>DDD</small> font family to, say,
 
6222
<code>times</code>, insert a line
 
6223
 
 
6224
     <pre class="example">          Ddd*fixedWidthFont: times-medium
 
6225
          </pre>
 
6226
 
 
6227
     <p>in your <code>~/.ddd/init</code> file. 
 
6228
</td></tr>
 
6229
</table>
 
6230
 
 
6231
<p>
 
6232
<table width="100%">
 
6233
<tr>
 
6234
<td align="left"><b>variableWidthFontSize</b><i> </i>(<i>class FontSize</i>)<i>
 
6235
     </i></td>
 
6236
<td align="right">Resource</td>
 
6237
</tr>
 
6238
</table>
 
6239
<table width="95%" align="center">
 
6240
<tr><td>
 
6241
The size of the variable width <small>DDD</small> font, in 1/10 points.  This
 
6242
resource overrides any font size specification in the
 
6243
<code>variableWidthFont</code> resource (see above).  The default value is
 
6244
<code>120</code> for a 12.0 point font. 
 
6245
</td></tr>
 
6246
</table>
 
6247
 
 
6248
<p>
 
6249
<table width="100%">
 
6250
<tr>
 
6251
<td align="left"><b>fixedWidthFont</b><i> </i>(<i>class Font</i>)<i>
 
6252
     </i></td>
 
6253
<td align="right">Resource</td>
 
6254
</tr>
 
6255
</table>
 
6256
<table width="95%" align="center">
 
6257
<tr><td>
 
6258
The fixed width <small>DDD</small> font to use for source code, the debugger
 
6259
console, text fields, and the execution window.  The font
 
6260
is specified as an X font spec, where the initial <var>Foundry</var>
 
6261
specification may be omitted, as well as any specification after
 
6262
<var>Family</var>.
 
6263
 
 
6264
     <p>Default value is <code>lucidatypewriter-medium</code>.
 
6265
 
 
6266
     <p>To set the fixed width <small>DDD</small> font family to, say, <code>courier</code>,
 
6267
insert a line
 
6268
 
 
6269
     <pre class="example">          Ddd*fixedWidthFont: courier-medium
 
6270
          </pre>
 
6271
 
 
6272
     <p>in your <code>~/.ddd/init</code> file. 
 
6273
</td></tr>
 
6274
</table>
 
6275
 
 
6276
<p>
 
6277
<table width="100%">
 
6278
<tr>
 
6279
<td align="left"><b>fixedWidthFontSize</b><i> </i>(<i>class FontSize</i>)<i>
 
6280
     </i></td>
 
6281
<td align="right">Resource</td>
 
6282
</tr>
 
6283
</table>
 
6284
<table width="95%" align="center">
 
6285
<tr><td>
 
6286
The size of the fixed width <small>DDD</small> font, in 1/10 points.  This
 
6287
resource overrides any font size specification in the
 
6288
<code>fixedWidthFont</code> resource (see above).  The default value is
 
6289
<code>120</code> for a 12.0 point font. 
 
6290
</td></tr>
 
6291
</table>
 
6292
 
 
6293
<p>
 
6294
<table width="100%">
 
6295
<tr>
 
6296
<td align="left"><b>dataFont</b><i> </i>(<i>class Font</i>)<i>
 
6297
     </i></td>
 
6298
<td align="right">Resource</td>
 
6299
</tr>
 
6300
</table>
 
6301
<table width="95%" align="center">
 
6302
<tr><td>
 
6303
The fixed width <small>DDD</small> font to use data displays.  The font
 
6304
is specified as an X font spec, where the initial <var>Foundry</var>
 
6305
specification may be omitted, as well as any specification after
 
6306
<var>Family</var>.
 
6307
 
 
6308
     <p>Default value is <code>lucidatypewriter-medium</code>.
 
6309
 
 
6310
     <p>To set the <small>DDD</small> data font family to, say, <code>courier</code>,
 
6311
insert a line
 
6312
 
 
6313
     <pre class="example">          Ddd*dataFont: courier-medium
 
6314
          </pre>
 
6315
 
 
6316
     <p>in your <code>~/.ddd/init</code> file. 
 
6317
</td></tr>
 
6318
</table>
 
6319
 
 
6320
<p>
 
6321
<table width="100%">
 
6322
<tr>
 
6323
<td align="left"><b>dataFontSize</b><i> </i>(<i>class FontSize</i>)<i>
 
6324
     </i></td>
 
6325
<td align="right">Resource</td>
 
6326
</tr>
 
6327
</table>
 
6328
<table width="95%" align="center">
 
6329
<tr><td>
 
6330
The size of the <small>DDD</small> data font, in 1/10 points.  This
 
6331
resource overrides any font size specification in the
 
6332
<code>dataFont</code> resource (see above).  The default value is
 
6333
<code>120</code> for a 12.0 point font. 
 
6334
</td></tr>
 
6335
</table>
 
6336
 
 
6337
   <p>As all font size resources have the same class (and by default the
 
6338
same value), you can easily change the default <small>DDD</small> font size
 
6339
to, say, 9.0 points by inserting a line
 
6340
 
 
6341
<pre class="example">     Ddd*FontSize: 90
 
6342
     </pre>
 
6343
 
 
6344
<p>in your <code>~/.ddd/init</code> file.
 
6345
 
 
6346
   <p>Here's how to specify the command to select fonts:
 
6347
 
 
6348
<p>
 
6349
<table width="100%">
 
6350
<tr>
 
6351
<td align="left"><b>fontSelectCommand</b><i> </i>(<i>class FontSelectCommand</i>)<i>
 
6352
     </i></td>
 
6353
<td align="right">Resource</td>
 
6354
</tr>
 
6355
</table>
 
6356
<table width="95%" align="center">
 
6357
<tr><td>
 
6358
A command to select from a list of fonts.  The string <code>@FONT@</code> is
 
6359
replaced by the current <small>DDD</small> default font; the string
 
6360
<code>@TYPE@</code> is replaced by a symbolic name of the <small>DDD</small> font
 
6361
to edit.  The program must either place the name of the selected font in
 
6362
the <code>PRIMARY</code> selection or print the selected font on standard
 
6363
output.  A typical value is:
 
6364
     <pre class="example">          Ddd*fontSelectCommand: xfontsel -print
 
6365
          </pre>
 
6366
     </td></tr>
 
6367
</table>
 
6368
 
 
6369
   <p>See <a href="#Options">Options</a>, for options to set these resources upon <small>DDD</small>
 
6370
invocation.
 
6371
 
 
6372
<div class="node">
 
6373
<p><hr>
 
6374
<small class=header>
 
6375
Node:<a name="Toggling%20Windows">Toggling Windows</a>,
 
6376
Next:<a rel="next" accesskey="n" href="#Text%20Fields">Text Fields</a>,
 
6377
Previous:<a rel="previous" accesskey="p" href="#Customizing%20Fonts">Customizing Fonts</a>,
 
6378
Up:<a rel="up" accesskey="u" href="#Customizing%20Windows">Customizing Windows</a>
 
6379
</small>
 
6380
 
 
6381
<br>
 
6382
</div>
 
6383
 
 
6384
<h5 class="subsubsection">Toggling Windows</h5>
 
6385
 
 
6386
   <p>In the default stacked window setting, you can turn the individual
 
6387
<small>DDD</small> windows on and off by toggling the respective items in the
 
6388
<code>View</code> menu (see <a href="#View%20Menu">View Menu</a>).  When using separate windows
 
6389
(see <a href="#Window%20Layout">Window Layout</a>), you can close the individual windows via
 
6390
<code>File =&gt; Close</code> or by closing them via your window manager.
 
6391
 
 
6392
   <p>Whether windows are opened or closed when starting <small>DDD</small> is
 
6393
controlled by the following resources, immediately tied to the
 
6394
<code>View</code> menu items:
 
6395
 
 
6396
<p>
 
6397
<table width="100%">
 
6398
<tr>
 
6399
<td align="left"><b>openDataWindow</b><i> </i>(<i>class Window</i>)<i>
 
6400
     </i></td>
 
6401
<td align="right">Resource</td>
 
6402
</tr>
 
6403
</table>
 
6404
<table width="95%" align="center">
 
6405
<tr><td>
 
6406
If <code>off</code> (default), the data window is closed upon start-up. 
 
6407
</td></tr>
 
6408
</table>
 
6409
 
 
6410
<p>
 
6411
<table width="100%">
 
6412
<tr>
 
6413
<td align="left"><b>openDebuggerConsole</b><i> </i>(<i>class Window</i>)<i>
 
6414
     </i></td>
 
6415
<td align="right">Resource</td>
 
6416
</tr>
 
6417
</table>
 
6418
<table width="95%" align="center">
 
6419
<tr><td>
 
6420
If <code>off</code>, the debugger console is closed upon start-up. 
 
6421
</td></tr>
 
6422
</table>
 
6423
 
 
6424
<p>
 
6425
<table width="100%">
 
6426
<tr>
 
6427
<td align="left"><b>openSourceWindow</b><i> </i>(<i>class Window</i>)<i>
 
6428
     </i></td>
 
6429
<td align="right">Resource</td>
 
6430
</tr>
 
6431
</table>
 
6432
<table width="95%" align="center">
 
6433
<tr><td>
 
6434
If <code>off</code>, the source window is closed upon start-up. 
 
6435
</td></tr>
 
6436
</table>
 
6437
 
 
6438
   <p>See <a href="#Options">Options</a>, for options to set these resources upon <small>DDD</small>
 
6439
invocation.
 
6440
 
 
6441
<div class="node">
 
6442
<p><hr>
 
6443
<small class=header>
 
6444
Node:<a name="Text%20Fields">Text Fields</a>,
 
6445
Next:<a rel="next" accesskey="n" href="#Icons">Icons</a>,
 
6446
Previous:<a rel="previous" accesskey="p" href="#Toggling%20Windows">Toggling Windows</a>,
 
6447
Up:<a rel="up" accesskey="u" href="#Customizing%20Windows">Customizing Windows</a>
 
6448
</small>
 
6449
 
 
6450
<br>
 
6451
</div>
 
6452
 
 
6453
<h5 class="subsubsection">Text Fields</h5>
 
6454
 
 
6455
   <p>The <small>DDD</small> text fields can be customized using the following
 
6456
resources:
 
6457
 
 
6458
<p>
 
6459
<table width="100%">
 
6460
<tr>
 
6461
<td align="left"><b>popdownHistorySize</b><i> </i>(<i>class HistorySize</i>)<i>
 
6462
     </i></td>
 
6463
<td align="right">Resource</td>
 
6464
</tr>
 
6465
</table>
 
6466
<table width="95%" align="center">
 
6467
<tr><td>
 
6468
The maximum number of items to display in pop-down value histories.  A
 
6469
value of <code>0</code> (default) means an unlimited number of values. 
 
6470
</td></tr>
 
6471
</table>
 
6472
 
 
6473
<p>
 
6474
<table width="100%">
 
6475
<tr>
 
6476
<td align="left"><b>sortPopdownHistory</b><i> </i>(<i>class SortPopdownHistory</i>)<i>
 
6477
     </i></td>
 
6478
<td align="right">Resource</td>
 
6479
</tr>
 
6480
</table>
 
6481
<table width="95%" align="center">
 
6482
<tr><td>
 
6483
If <code>on</code> (default), items in the pop-down value histories are sorted
 
6484
alphabetically.  If <code>off</code>, most recently used values will appear at
 
6485
the top. 
 
6486
</td></tr>
 
6487
</table>
 
6488
 
 
6489
<div class="node">
 
6490
<p><hr>
 
6491
<small class=header>
 
6492
Node:<a name="Icons">Icons</a>,
 
6493
Next:<a rel="next" accesskey="n" href="#Adding%20Buttons">Adding Buttons</a>,
 
6494
Previous:<a rel="previous" accesskey="p" href="#Text%20Fields">Text Fields</a>,
 
6495
Up:<a rel="up" accesskey="u" href="#Customizing%20Windows">Customizing Windows</a>
 
6496
</small>
 
6497
 
 
6498
<br>
 
6499
</div>
 
6500
 
 
6501
<h5 class="subsubsection">Icons</h5>
 
6502
 
 
6503
   <p>If you frequently switch between <small>DDD</small> and other multi-window
 
6504
applications, you may like to set <code>Edit =&gt; Preferences
 
6505
=&gt; General =&gt; Iconify all windows at once</code>.  This
 
6506
way, all <small>DDD</small> windows are iconified and deiconified as a group.
 
6507
 
 
6508
   <p>This is tied to the following resource:
 
6509
 
 
6510
<p>
 
6511
<table width="100%">
 
6512
<tr>
 
6513
<td align="left"><b>groupIconify</b><i> </i>(<i>class GroupIconify</i>)<i>
 
6514
     </i></td>
 
6515
<td align="right">Resource</td>
 
6516
</tr>
 
6517
</table>
 
6518
<table width="95%" align="center">
 
6519
<tr><td>
 
6520
If this is <code>on</code>, (un)iconifying any <small>DDD</small> window
 
6521
causes all other <small>DDD</small> windows to (un)iconify as well. 
 
6522
Default is <code>off</code>, meaning that each <small>DDD</small> window can
 
6523
be iconified on its own. 
 
6524
</td></tr>
 
6525
</table>
 
6526
 
 
6527
   <p>If you want to keep <small>DDD</small> off your desktop during a longer
 
6528
computation, you may like to set <code>Edit =&gt; Preferences
 
6529
=&gt; General =&gt; Uniconify when ready</code>.  This way, you can
 
6530
iconify <small>DDD</small> while it is busy on a command (e.g. running a
 
6531
program); <small>DDD</small> will automatically pop up again after becoming
 
6532
ready (e.g. after the debugged program has stopped at a breakpoint). 
 
6533
See <a href="#Program%20Stop">Program Stop</a>, for a discussion.
 
6534
 
 
6535
   <p>Here is the related resource:
 
6536
 
 
6537
<p>
 
6538
<table width="100%">
 
6539
<tr>
 
6540
<td align="left"><b>uniconifyWhenReady</b><i> </i>(<i>class UniconifyWhenReady</i>)<i>
 
6541
     </i></td>
 
6542
<td align="right">Resource</td>
 
6543
</tr>
 
6544
</table>
 
6545
<table width="95%" align="center">
 
6546
<tr><td>
 
6547
If this is <code>on</code> (default), the <small>DDD</small> windows are uniconified
 
6548
automatically whenever <small>GDB</small> becomes ready.  This way, you can iconify
 
6549
<small>DDD</small> during some longer operation and have it uniconify itself as
 
6550
soon as the program stops.  Setting this to <code>off</code> leaves the
 
6551
<small>DDD</small> windows iconified. 
 
6552
</td></tr>
 
6553
</table>
 
6554
 
 
6555
<div class="node">
 
6556
<p><hr>
 
6557
<small class=header>
 
6558
Node:<a name="Adding%20Buttons">Adding Buttons</a>,
 
6559
Next:<a rel="next" accesskey="n" href="#More%20Customizations">More Customizations</a>,
 
6560
Previous:<a rel="previous" accesskey="p" href="#Icons">Icons</a>,
 
6561
Up:<a rel="up" accesskey="u" href="#Customizing%20Windows">Customizing Windows</a>
 
6562
</small>
 
6563
 
 
6564
<br>
 
6565
</div>
 
6566
 
 
6567
<h5 class="subsubsection">Adding Buttons</h5>
 
6568
 
 
6569
   <p>You can extend <small>DDD</small> with new buttons.  See <a href="#Defining%20Buttons">Defining Buttons</a>,
 
6570
for details.
 
6571
 
 
6572
<div class="node">
 
6573
<p><hr>
 
6574
<small class=header>
 
6575
Node:<a name="More%20Customizations">More Customizations</a>,
 
6576
Previous:<a rel="previous" accesskey="p" href="#Adding%20Buttons">Adding Buttons</a>,
 
6577
Up:<a rel="up" accesskey="u" href="#Customizing%20Windows">Customizing Windows</a>
 
6578
</small>
 
6579
 
 
6580
<br>
 
6581
</div>
 
6582
 
 
6583
<h5 class="subsubsection">More Customizations</h5>
 
6584
 
 
6585
   <p>You can change just about any label, color, keyboard mapping, etc.  by
 
6586
changing resources from the <code>Ddd</code> application defaults file which
 
6587
comes with the <small>DDD</small> source distribution.  Here's how it works:
 
6588
 
 
6589
     <ul>
 
6590
<li>Identify the appropriate resource in the <code>Ddd</code> file.
 
6591
 
 
6592
     <li>Copy the resource line to your <code>~/.ddd/init</code> file
 
6593
and change it at will. 
 
6594
</ul>
 
6595
 
 
6596
   <p>See <a href="#Application%20Defaults">Application Defaults</a>, for details on the application-defaults
 
6597
file.
 
6598
 
 
6599
<div class="node">
 
6600
<p><hr>
 
6601
<small class=header>
 
6602
Node:<a name="Debugger%20Settings">Debugger Settings</a>,
 
6603
Previous:<a rel="previous" accesskey="p" href="#Customizing%20Windows">Customizing Windows</a>,
 
6604
Up:<a rel="up" accesskey="u" href="#Customizing">Customizing</a>
 
6605
</small>
 
6606
 
 
6607
<br>
 
6608
</div>
 
6609
 
 
6610
<h4 class="subsection">Debugger Settings</h4>
 
6611
 
 
6612
   <p>For most inferior debuggers, you can change their internal settings
 
6613
using <code>Edit =&gt; Settings</code>.  Using the settings editor, you
 
6614
can determine whether C++ names are to be demangled, how many array
 
6615
elements are to print, and so on.
 
6616
 
 
6617
<br><p>
 
6618
<div align="center"><img src="PICS/ddd-settings.jpg" alt="PICS/ddd-settings.jpg"></div>
 
6619
<br><p>
 
6620
   <p>The capabilities of the settings editor depend on the capabilities of
 
6621
your inferior debugger.  Clicking on <code>?</code> gives an an explanation on
 
6622
the specific item; the <small>GDB</small> documentation gives more details.
 
6623
 
 
6624
   <p>Use <code>Edit =&gt; Undo</code> to undo changes.  Clicking on
 
6625
<code>Reset</code> restores the most recently saved settings.
 
6626
 
 
6627
   <p>Some debugger settings are insensitive and cannot be changed, because
 
6628
doing so would endanger <small>DDD</small> operation.  See the
 
6629
<code>gdbInitCommands</code> and <code>dbxInitCommands</code> resources for details.
 
6630
 
 
6631
   <p>All debugger settings (except source and object paths) are saved with
 
6632
<small>DDD</small> options.
 
6633
 
 
6634
<div class="node">
 
6635
<p><hr>
 
6636
<small class=header>
 
6637
Node:<a name="Navigating">Navigating</a>,
 
6638
Next:<a rel="next" accesskey="n" href="#Stopping">Stopping</a>,
 
6639
Previous:<a rel="previous" accesskey="p" href="#Windows">Windows</a>,
 
6640
Up:<a rel="up" accesskey="u" href="#Top">Top</a>
 
6641
</small>
 
6642
 
 
6643
<br>
 
6644
</div>
 
6645
 
 
6646
<h2 class="chapter">Navigating through the Code</h2>
 
6647
 
 
6648
   <p>This chapter discusses how to access code from within <small>DDD</small>.
 
6649
 
 
6650
<ul class="menu">
 
6651
<li><a accesskey="1" href="#Compiling%20for%20Debugging">Compiling for Debugging</a>:      Always use `-g' to compile. 
 
6652
<li><a accesskey="2" href="#Opening%20Files">Opening Files</a>:                How to open a program for debugging. 
 
6653
<li><a accesskey="3" href="#Looking%20up%20Items">Looking up Items</a>:             Searching files and functions. 
 
6654
<li><a accesskey="4" href="#Customizing%20Source">Customizing Source</a>:           Arranging the source window. 
 
6655
</ul>
 
6656
 
 
6657
<div class="node">
 
6658
<p><hr>
 
6659
<small class=header>
 
6660
Node:<a name="Compiling%20for%20Debugging">Compiling for Debugging</a>,
 
6661
Next:<a rel="next" accesskey="n" href="#Opening%20Files">Opening Files</a>,
 
6662
Up:<a rel="up" accesskey="u" href="#Navigating">Navigating</a>
 
6663
</small>
 
6664
 
 
6665
<br>
 
6666
</div>
 
6667
 
 
6668
<h3 class="section">Compiling for Debugging</h3>
 
6669
 
 
6670
   <p>In order to debug a program effectively, you need to generate debugging
 
6671
information when you compile it.  This debugging information is stored
 
6672
in the object file; it describes the data type of each variable or
 
6673
function and the correspondence between source line numbers and
 
6674
addresses in the executable code.<a rel="footnote" href="#fn-9"><sup>9</sup></a>
 
6675
 
 
6676
   <p>To request debugging information, specify the <code>-g</code> option when you
 
6677
run the compiler.
 
6678
 
 
6679
   <p>Many C compilers are unable to handle the <code>-g</code> and <code>-O</code>
 
6680
options together.  Using those compilers, you cannot generate optimized
 
6681
executables containing debugging information.
 
6682
 
 
6683
   <p><small>GCC</small>, the <small>GNU</small> C compiler, supports <code>-g</code> with or without
 
6684
<code>-O</code>, making it possible to debug optimized code.  We recommend
 
6685
that you <em>always</em> use <code>-g</code> whenever you compile a program. 
 
6686
You may think your program is correct, but there is no sense in pushing
 
6687
your luck.
 
6688
 
 
6689
   <p>When you debug a program compiled with <code>-g -O</code>, remember that the
 
6690
optimizer is rearranging your code; the debugger shows you what is
 
6691
really there.  Do not be too surprised when the execution path does not
 
6692
exactly match your source file!  An extreme example: if you define a
 
6693
variable, but never use it, <small>DDD</small> never sees that
 
6694
variable--because the compiler optimizes it out of existence.
 
6695
 
 
6696
<div class="node">
 
6697
<p><hr>
 
6698
<small class=header>
 
6699
Node:<a name="Opening%20Files">Opening Files</a>,
 
6700
Next:<a rel="next" accesskey="n" href="#Looking%20up%20Items">Looking up Items</a>,
 
6701
Previous:<a rel="previous" accesskey="p" href="#Compiling%20for%20Debugging">Compiling for Debugging</a>,
 
6702
Up:<a rel="up" accesskey="u" href="#Navigating">Navigating</a>
 
6703
</small>
 
6704
 
 
6705
<br>
 
6706
</div>
 
6707
 
 
6708
<h3 class="section">Opening Files</h3>
 
6709
 
 
6710
   <p>If you did not invoke <small>DDD</small> specifying a program to be debugged,
 
6711
you can use the <code>File</code> menu to open programs, core dumps and
 
6712
sources.
 
6713
 
 
6714
<ul class="menu">
 
6715
<li><a accesskey="1" href="#Opening%20Programs">Opening Programs</a>:             How to open a program for debugging. 
 
6716
<li><a accesskey="2" href="#Opening%20Core%20Dumps">Opening Core Dumps</a>:           Analyze a previous crash. 
 
6717
<li><a accesskey="3" href="#Opening%20Source%20Files">Opening Source Files</a>:         Open a source file of the program. 
 
6718
<li><a accesskey="4" href="#Filtering%20Files">Filtering Files</a>:              <small>DDD</small> only lists matching files. 
 
6719
</ul>
 
6720
 
 
6721
<div class="node">
 
6722
<p><hr>
 
6723
<small class=header>
 
6724
Node:<a name="Opening%20Programs">Opening Programs</a>,
 
6725
Next:<a rel="next" accesskey="n" href="#Opening%20Core%20Dumps">Opening Core Dumps</a>,
 
6726
Up:<a rel="up" accesskey="u" href="#Opening%20Files">Opening Files</a>
 
6727
</small>
 
6728
 
 
6729
<br>
 
6730
</div>
 
6731
 
 
6732
<h4 class="subsection">Opening Programs</h4>
 
6733
 
 
6734
   <p>To open a program to be debugged, select <code>File =&gt; Open
 
6735
Program</code>.<a rel="footnote" href="#fn-10"><sup>10</sup></a>
 
6736
Click on <code>Open</code> to open the program
 
6737
 
 
6738
   <p>In <small>JDB</small>, select <code>File =&gt; Open Class</code> instead.  This gives you
 
6739
a list of available classes to choose from.
 
6740
 
 
6741
<br><p>
 
6742
<div align="center"><img src="PICS/ddd-open.jpg" alt="PICS/ddd-open.jpg"></div>
 
6743
<br><p>
 
6744
   <p>To re-open a recently debugged program or class, select <code>File
 
6745
=&gt; Open Recent</code> and choose a program or class from the list.
 
6746
 
 
6747
   <p>If no sources are found, See <a href="#Source%20Path">Source Path</a>, for specifying source
 
6748
directories.
 
6749
 
 
6750
<div class="node">
 
6751
<p><hr>
 
6752
<small class=header>
 
6753
Node:<a name="Opening%20Core%20Dumps">Opening Core Dumps</a>,
 
6754
Next:<a rel="next" accesskey="n" href="#Opening%20Source%20Files">Opening Source Files</a>,
 
6755
Previous:<a rel="previous" accesskey="p" href="#Opening%20Programs">Opening Programs</a>,
 
6756
Up:<a rel="up" accesskey="u" href="#Opening%20Files">Opening Files</a>
 
6757
</small>
 
6758
 
 
6759
<br>
 
6760
</div>
 
6761
 
 
6762
<h4 class="subsection">Opening Core Dumps</h4>
 
6763
 
 
6764
   <p>If a previous run of the program has crashed and you want to find out
 
6765
why, you can have <small>DDD</small> examine its <dfn>core dump</dfn>.<a rel="footnote" href="#fn-11"><sup>11</sup></a>
 
6766
 
 
6767
   <p>To open a core dump for the program, select <code>File =&gt; Open
 
6768
Core Dump</code>.  Click on <code>Open</code> to open the core dump.
 
6769
 
 
6770
   <p>Before <code>Open Core Dump</code>, you should first use <code>File =&gt;
 
6771
Open Program</code> to specify the program that generated the core dump and to
 
6772
load its symbol table.
 
6773
 
 
6774
<div class="node">
 
6775
<p><hr>
 
6776
<small class=header>
 
6777
Node:<a name="Opening%20Source%20Files">Opening Source Files</a>,
 
6778
Next:<a rel="next" accesskey="n" href="#Filtering%20Files">Filtering Files</a>,
 
6779
Previous:<a rel="previous" accesskey="p" href="#Opening%20Core%20Dumps">Opening Core Dumps</a>,
 
6780
Up:<a rel="up" accesskey="u" href="#Opening%20Files">Opening Files</a>
 
6781
</small>
 
6782
 
 
6783
<br>
 
6784
</div>
 
6785
 
 
6786
<h4 class="subsection">Opening Source Files</h4>
 
6787
 
 
6788
   <p>To open a source file of the debugged program, select <code>File
 
6789
=&gt; Open Source</code>.
 
6790
 
 
6791
     <ul>
 
6792
<li>Using <small>GDB</small>, this gives you a list of the sources used for compiling your
 
6793
program.
 
6794
 
 
6795
     <li>Using other inferior debuggers, this gives you a list of accessible
 
6796
source files, which may or may not be related to your program. 
 
6797
</ul>
 
6798
 
 
6799
   <p>Click on <code>Open</code> to open the source file.  See <a href="#Source%20Path">Source Path</a>, if no
 
6800
sources are found.
 
6801
 
 
6802
<div class="node">
 
6803
<p><hr>
 
6804
<small class=header>
 
6805
Node:<a name="Filtering%20Files">Filtering Files</a>,
 
6806
Previous:<a rel="previous" accesskey="p" href="#Opening%20Source%20Files">Opening Source Files</a>,
 
6807
Up:<a rel="up" accesskey="u" href="#Opening%20Files">Opening Files</a>
 
6808
</small>
 
6809
 
 
6810
<br>
 
6811
</div>
 
6812
 
 
6813
<h4 class="subsection">Filtering Files</h4>
 
6814
 
 
6815
   <p>When presenting files to be opened, <small>DDD</small> by default filters files
 
6816
when opening execution files, core dumps, or source files, such that the
 
6817
selection shows only suitable files.  This requires that <small>DDD</small>
 
6818
opens each file, which may take time.  See <a href="#Customizing%20File%20Filtering">Customizing File Filtering</a>, if you want to turn off this feature.
 
6819
 
 
6820
<div class="node">
 
6821
<p><hr>
 
6822
<small class=header>
 
6823
Node:<a name="Looking%20up%20Items">Looking up Items</a>,
 
6824
Next:<a rel="next" accesskey="n" href="#Customizing%20Source">Customizing Source</a>,
 
6825
Previous:<a rel="previous" accesskey="p" href="#Opening%20Files">Opening Files</a>,
 
6826
Up:<a rel="up" accesskey="u" href="#Navigating">Navigating</a>
 
6827
</small>
 
6828
 
 
6829
<br>
 
6830
</div>
 
6831
 
 
6832
<h3 class="section">Looking up Items</h3>
 
6833
 
 
6834
   <p>As soon as the source of the debugged program is available, the
 
6835
<em>source window</em> displays its current source text.  (see <a href="#Source%20Path">Source Path</a>, if a source text cannot be found.)
 
6836
 
 
6837
   <p>In the source window, you can lookup and examine function and variable
 
6838
definitions as well as search for arbitrary occurrences in the source
 
6839
text.
 
6840
 
 
6841
<ul class="menu">
 
6842
<li><a accesskey="1" href="#Looking%20up%20Definitions">Looking up Definitions</a>:       Jump towards a specific item. 
 
6843
<li><a accesskey="2" href="#Textual%20Search">Textual Search</a>:               Search within the current source. 
 
6844
<li><a accesskey="3" href="#Looking%20up%20Previous%20Locations">Looking up Previous Locations</a>:   Navigate back and forth. 
 
6845
<li><a accesskey="4" href="#Source%20Path">Source Path</a>:                  Make <small>DDD</small> know where to search. 
 
6846
</ul>
 
6847
 
 
6848
<div class="node">
 
6849
<p><hr>
 
6850
<small class=header>
 
6851
Node:<a name="Looking%20up%20Definitions">Looking up Definitions</a>,
 
6852
Next:<a rel="next" accesskey="n" href="#Textual%20Search">Textual Search</a>,
 
6853
Up:<a rel="up" accesskey="u" href="#Looking%20up%20Items">Looking up Items</a>
 
6854
</small>
 
6855
 
 
6856
<br>
 
6857
</div>
 
6858
 
 
6859
<h4 class="subsection">Looking up Definitions</h4>
 
6860
 
 
6861
   <p>If you wish to lookup a specific function or variable definition whose
 
6862
name is visible in the source text, click with <em>mouse button 1</em> on
 
6863
the function or variable name.  The name is copied to the argument
 
6864
field.  Change the name if desired and click on the <code>Lookup</code> button
 
6865
to find its definition.
 
6866
 
 
6867
<br><p>
 
6868
<div align="center"><img src="PICS/ddd-source-popup.jpg" alt="PICS/ddd-source-popup.jpg"></div>
 
6869
<br><p>
 
6870
   <p>As a faster alternative, you can simply press <em>mouse button 3</em> on the
 
6871
function name and select the <code>Lookup</code> item from the source popup
 
6872
menu.
 
6873
 
 
6874
   <p>As an even faster alternative, you can also double-click on a function
 
6875
call (an identifier followed by a <code>(</code> character) to lookup the
 
6876
function definition.
 
6877
 
 
6878
   <p>If a source file is not found, See <a href="#Source%20Path">Source Path</a>, for specifying source
 
6879
directories.
 
6880
 
 
6881
<div class="node">
 
6882
<p><hr>
 
6883
<small class=header>
 
6884
Node:<a name="Textual%20Search">Textual Search</a>,
 
6885
Next:<a rel="next" accesskey="n" href="#Looking%20up%20Previous%20Locations">Looking up Previous Locations</a>,
 
6886
Previous:<a rel="previous" accesskey="p" href="#Looking%20up%20Definitions">Looking up Definitions</a>,
 
6887
Up:<a rel="up" accesskey="u" href="#Looking%20up%20Items">Looking up Items</a>
 
6888
</small>
 
6889
 
 
6890
<br>
 
6891
</div>
 
6892
 
 
6893
<h4 class="subsection">Textual Search</h4>
 
6894
 
 
6895
   <p>If the item you wish to search is visible in the source text, click with
 
6896
<em>mouse button 1</em> on it.  The identifier is copied to the argument
 
6897
field.  Click on the <code>Find &gt;&gt;</code> button to find following occurrences
 
6898
and on <code>Find &gt;&gt; =&gt; Find &lt;&lt; ()</code> to find previous occurrences.
 
6899
 
 
6900
   <p>By default, <small>DDD</small> finds only complete words.  To search for
 
6901
arbitrary substrings, change the value of the <code>Source =&gt;
 
6902
Find Words Only</code> option.
 
6903
 
 
6904
<div class="node">
 
6905
<p><hr>
 
6906
<small class=header>
 
6907
Node:<a name="Looking%20up%20Previous%20Locations">Looking up Previous Locations</a>,
 
6908
Next:<a rel="next" accesskey="n" href="#Source%20Path">Source Path</a>,
 
6909
Previous:<a rel="previous" accesskey="p" href="#Textual%20Search">Textual Search</a>,
 
6910
Up:<a rel="up" accesskey="u" href="#Looking%20up%20Items">Looking up Items</a>
 
6911
</small>
 
6912
 
 
6913
<br>
 
6914
</div>
 
6915
 
 
6916
<h4 class="subsection">Looking up Previous Locations</h4>
 
6917
 
 
6918
   <p>After looking up a location, use <code>Edit =&gt; Undo</code> (or the
 
6919
<code>Undo</code> button on the command tool) to go back to the original
 
6920
locations.  <code>Edit =&gt; Redo</code> brings you back again to the
 
6921
location you looked for.
 
6922
 
 
6923
<br><p>
 
6924
<div align="center"><img src="PICS/ddd-source.jpg" alt="PICS/ddd-source.jpg"></div>
 
6925
<br><p>
 
6926
<div class="node">
 
6927
<p><hr>
 
6928
<small class=header>
 
6929
Node:<a name="Source%20Path">Source Path</a>,
 
6930
Previous:<a rel="previous" accesskey="p" href="#Looking%20up%20Previous%20Locations">Looking up Previous Locations</a>,
 
6931
Up:<a rel="up" accesskey="u" href="#Looking%20up%20Items">Looking up Items</a>
 
6932
</small>
 
6933
 
 
6934
<br>
 
6935
</div>
 
6936
 
 
6937
<h4 class="subsection">Specifying Source Directories</h4>
 
6938
 
 
6939
   <p>Executable programs sometimes do not record the directories of the
 
6940
source files from which they were compiled, just the names.  Even when
 
6941
they do, the directories could be moved between the compilation and your
 
6942
debugging session.
 
6943
 
 
6944
   <p>Here's how <small>GDB</small> accesses source files; other inferior debuggers have
 
6945
similar methods.
 
6946
 
 
6947
   <p><small>GDB</small> has a list of directories to search for source files; this is called
 
6948
the <dfn>source path</dfn>.  Each time <small>GDB</small> wants a source file, it tries all
 
6949
the directories in the list, in the order they are present in the list,
 
6950
until it finds a file with the desired name.  Note that the executable
 
6951
search path is <em>not</em> used for this purpose.  Neither is the current
 
6952
working directory, unless it happens to be in the source path.
 
6953
 
 
6954
   <p>If <small>GDB</small> cannot find a source file in the source path, and the object
 
6955
program records a directory, <small>GDB</small> tries that directory too.  If the
 
6956
source path is empty, and there is no record of the compilation
 
6957
directory, <small>GDB</small> looks in the current directory as a last resort.
 
6958
 
 
6959
   <p>To specify a source path for your inferior debugger, use <code>Edit
 
6960
=&gt; Debugger Settings</code> (see <a href="#Debugger%20Settings">Debugger Settings</a> and search for
 
6961
appropriate entries (in <small>GDB</small>, this is <code>Search path for source
 
6962
files</code>).
 
6963
 
 
6964
   <p>If <code>Debugger Settings</code> has no suitable entry, you can also specify
 
6965
a source path for the inferior debugger when invoking <small>DDD</small>. 
 
6966
See <a href="#Inferior%20Debugger%20Options">Inferior Debugger Options</a>, for details.
 
6967
 
 
6968
   <p>When using <small>JDB</small>, you can set the <code>CLASSPATH</code> environment variable to
 
6969
specify directories where <small>JDB</small> (and <small>DDD</small>) should search for
 
6970
classes.
 
6971
 
 
6972
   <p>If DDD does not find a source file for any reason, check the
 
6973
following issues:
 
6974
 
 
6975
     <ul>
 
6976
<li>In order to debug a program effectively, you need to generate debugging
 
6977
information when you compile it.  Without debugging information, the
 
6978
inferior debugger will be unable to locate the source code. To request
 
6979
debugging information, specify the <code>-g</code> option when you run the
 
6980
compiler.  See <a href="#Compiling%20for%20Debugging">Compiling for Debugging</a>, for details.
 
6981
 
 
6982
     <li>You may need to tell your inferior debugger where the source code files
 
6983
are.  See <a href="#Source%20Path">Source Path</a>, for details.
 
6984
 
 
6985
     <p>Using <small>GDB</small>, you can also create a local <code>.gdbinit</code> file that
 
6986
contains a line <code>directory </code><var>path</var><code></code>.  Here, <var>path</var> is a
 
6987
colon-separated list of source paths. 
 
6988
</ul>
 
6989
 
 
6990
<div class="node">
 
6991
<p><hr>
 
6992
<small class=header>
 
6993
Node:<a name="Customizing%20Source">Customizing Source</a>,
 
6994
Previous:<a rel="previous" accesskey="p" href="#Looking%20up%20Items">Looking up Items</a>,
 
6995
Up:<a rel="up" accesskey="u" href="#Navigating">Navigating</a>
 
6996
</small>
 
6997
 
 
6998
<br>
 
6999
</div>
 
7000
 
 
7001
<h3 class="section">Customizing the Source Window</h3>
 
7002
 
 
7003
   <p>The source window can be customized in a number of ways, most of them
 
7004
accessed via <code>Edit =&gt; Preferences =&gt; Source</code>.
 
7005
 
 
7006
<br><p>
 
7007
<div align="center"><img src="PICS/ddd-source-prefs.jpg" alt="PICS/ddd-source-prefs.jpg"></div>
 
7008
<br><p>
 
7009
<ul class="menu">
 
7010
<li><a accesskey="1" href="#Customizing%20Glyphs">Customizing Glyphs</a>: 
 
7011
<li><a accesskey="2" href="#Customizing%20Searching">Customizing Searching</a>: 
 
7012
<li><a accesskey="3" href="#Customizing%20Source%20Appearance">Customizing Source Appearance</a>: 
 
7013
<li><a accesskey="4" href="#Customizing%20Source%20Scrolling">Customizing Source Scrolling</a>: 
 
7014
<li><a accesskey="5" href="#Customizing%20Source%20Lookup">Customizing Source Lookup</a>: 
 
7015
<li><a accesskey="6" href="#Customizing%20File%20Filtering">Customizing File Filtering</a>: 
 
7016
</ul>
 
7017
 
 
7018
<div class="node">
 
7019
<p><hr>
 
7020
<small class=header>
 
7021
Node:<a name="Customizing%20Glyphs">Customizing Glyphs</a>,
 
7022
Next:<a rel="next" accesskey="n" href="#Customizing%20Searching">Customizing Searching</a>,
 
7023
Up:<a rel="up" accesskey="u" href="#Customizing%20Source">Customizing Source</a>
 
7024
</small>
 
7025
 
 
7026
<br>
 
7027
</div>
 
7028
 
 
7029
<h4 class="subsection">Customizing Glyphs</h4>
 
7030
 
 
7031
   <p>In the source text, the current execution position and breakpoints are
 
7032
indicated by symbols (<dfn>glyphs</dfn>).  As an alternative, <small>DDD</small> can
 
7033
also indicate these positions using text characters.  If you wish to
 
7034
disable glyphs, set <code>Edit =&gt; Preferences =&gt; Source
 
7035
=&gt; Show Position and Breakpoints =&gt; as Text Characters</code>
 
7036
option.  This also makes <small>DDD</small> run slightly faster, especially
 
7037
when scrolling.
 
7038
 
 
7039
   <p>This setting is tied to this resource:
 
7040
 
 
7041
<p>
 
7042
<table width="100%">
 
7043
<tr>
 
7044
<td align="left"><b>displayGlyphs</b><i> </i>(<i>class DisplayGlyphs</i>)<i>
 
7045
     </i></td>
 
7046
<td align="right">Resource</td>
 
7047
</tr>
 
7048
</table>
 
7049
<table width="95%" align="center">
 
7050
<tr><td>
 
7051
If this is <code>on</code>, the current execution position and breakpoints are
 
7052
displayed as glyphs; otherwise, they are shown through characters in the
 
7053
text.  The default is <code>on</code>.  See <a href="#Options">Options</a>, for the
 
7054
<code>--glyphs</code> and <code>--no-glyphs</code> options. 
 
7055
</td></tr>
 
7056
</table>
 
7057
 
 
7058
   <p>You can further control glyphs using the following resources:
 
7059
 
 
7060
<p>
 
7061
<table width="100%">
 
7062
<tr>
 
7063
<td align="left"><b>cacheGlyphImages</b><i> </i>(<i>class CacheMachineCode</i>)<i>
 
7064
     </i></td>
 
7065
<td align="right">Resource</td>
 
7066
</tr>
 
7067
</table>
 
7068
<table width="95%" align="center">
 
7069
<tr><td>
 
7070
Whether to cache (share) glyph images (<code>on</code>) or not (<code>off</code>). 
 
7071
Caching glyph images requires less X resources, but has been reported to
 
7072
fail with OSF/Motif 2.1 on XFree86 servers.  Default is <code>off</code> for
 
7073
OSF/Motif 2.1 or later on <small>GNU</small>/Linux machines, and <code>on</code>
 
7074
otherwise. 
 
7075
</td></tr>
 
7076
</table>
 
7077
 
 
7078
<p>
 
7079
<table width="100%">
 
7080
<tr>
 
7081
<td align="left"><b>glyphUpdateDelay</b><i> </i>(<i>class GlyphUpdateDelay</i>)<i>
 
7082
     </i></td>
 
7083
<td align="right">Resource</td>
 
7084
</tr>
 
7085
</table>
 
7086
<table width="95%" align="center">
 
7087
<tr><td>
 
7088
A delay (in ms) that says how much time to wait before updating glyphs
 
7089
while scrolling the source text.  A small value results in glyphs
 
7090
being scrolled with the text, a large value disables glyphs while
 
7091
scrolling and makes scrolling faster.  Default: <code>10</code>. 
 
7092
</td></tr>
 
7093
</table>
 
7094
 
 
7095
<p>
 
7096
<table width="100%">
 
7097
<tr>
 
7098
<td align="left"><b>maxGlyphs</b><i> </i>(<i>class MaxGlyphs</i>)<i>
 
7099
     </i></td>
 
7100
<td align="right">Resource</td>
 
7101
</tr>
 
7102
</table>
 
7103
<table width="95%" align="center">
 
7104
<tr><td>
 
7105
The maximum number of glyphs to be displayed (default: <code>10</code>). 
 
7106
Raising this value causes more glyphs to be allocated, possibly
 
7107
wasting resources that are never needed. 
 
7108
</td></tr>
 
7109
</table>
 
7110
 
 
7111
<div class="node">
 
7112
<p><hr>
 
7113
<small class=header>
 
7114
Node:<a name="Customizing%20Searching">Customizing Searching</a>,
 
7115
Next:<a rel="next" accesskey="n" href="#Customizing%20Source%20Appearance">Customizing Source Appearance</a>,
 
7116
Previous:<a rel="previous" accesskey="p" href="#Customizing%20Glyphs">Customizing Glyphs</a>,
 
7117
Up:<a rel="up" accesskey="u" href="#Customizing%20Source">Customizing Source</a>
 
7118
</small>
 
7119
 
 
7120
<br>
 
7121
</div>
 
7122
 
 
7123
<h4 class="subsection">Customizing Searching</h4>
 
7124
 
 
7125
   <p>Searching in the source text (see <a href="#Textual%20Search">Textual Search</a>) is controlled by
 
7126
these resources, changed via the <code>Source</code> menu:
 
7127
 
 
7128
<p>
 
7129
<table width="100%">
 
7130
<tr>
 
7131
<td align="left"><b>findCaseSensitive</b><i> </i>(<i>class FindCaseSensitive</i>)<i>
 
7132
     </i></td>
 
7133
<td align="right">Resource</td>
 
7134
</tr>
 
7135
</table>
 
7136
<table width="95%" align="center">
 
7137
<tr><td>
 
7138
If this is <code>on</code> (default), the <code>Find</code> commands are
 
7139
case-sensitive.  Otherwise, occurrences are found regardless of case. 
 
7140
</td></tr>
 
7141
</table>
 
7142
 
 
7143
<p>
 
7144
<table width="100%">
 
7145
<tr>
 
7146
<td align="left"><b>findWordsOnly</b><i> </i>(<i>class FindWordsOnly</i>)<i>
 
7147
     </i></td>
 
7148
<td align="right">Resource</td>
 
7149
</tr>
 
7150
</table>
 
7151
<table width="95%" align="center">
 
7152
<tr><td>
 
7153
If this is <code>on</code> (default), the <code>Find</code> commands find
 
7154
complete words only.  Otherwise, arbitrary occurrences are found. 
 
7155
</td></tr>
 
7156
</table>
 
7157
 
 
7158
<div class="node">
 
7159
<p><hr>
 
7160
<small class=header>
 
7161
Node:<a name="Customizing%20Source%20Appearance">Customizing Source Appearance</a>,
 
7162
Next:<a rel="next" accesskey="n" href="#Customizing%20Source%20Scrolling">Customizing Source Scrolling</a>,
 
7163
Previous:<a rel="previous" accesskey="p" href="#Customizing%20Searching">Customizing Searching</a>,
 
7164
Up:<a rel="up" accesskey="u" href="#Customizing%20Source">Customizing Source</a>
 
7165
</small>
 
7166
 
 
7167
<br>
 
7168
</div>
 
7169
 
 
7170
<h4 class="subsection">Customizing Source Appearance</h4>
 
7171
 
 
7172
   <p>You can have <small>DDD</small> show line numbers within the source window. 
 
7173
Use <code>Edit =&gt; Preferences =&gt; Source =&gt; Display
 
7174
Source Line Numbers</code>.
 
7175
 
 
7176
<p>
 
7177
<table width="100%">
 
7178
<tr>
 
7179
<td align="left"><b>displayLineNumbers</b><i> </i>(<i>class DisplayLineNumbers</i>)<i>
 
7180
     </i></td>
 
7181
<td align="right">Resource</td>
 
7182
</tr>
 
7183
</table>
 
7184
<table width="95%" align="center">
 
7185
<tr><td>
 
7186
If this is <code>on</code>, lines in the source text are prefixed with
 
7187
their respective line number.  The default is <code>off</code>. 
 
7188
</td></tr>
 
7189
</table>
 
7190
 
 
7191
   <p>You can instruct <small>DDD</small> to indent the source code, leaving more
 
7192
room for breakpoints and execution glyphs.  This is done using the
 
7193
<code>Edit =&gt; Preferences =&gt; Source =&gt; Source
 
7194
indentation</code> slider.  The default value is <code>0</code> for no indentation
 
7195
at all.
 
7196
 
 
7197
<p>
 
7198
<table width="100%">
 
7199
<tr>
 
7200
<td align="left"><b>indentSource</b><i> </i>(<i>class Indent</i>)<i>
 
7201
     </i></td>
 
7202
<td align="right">Resource</td>
 
7203
</tr>
 
7204
</table>
 
7205
<table width="95%" align="center">
 
7206
<tr><td>
 
7207
The number of columns to indent the source code, such that there is
 
7208
enough place to display breakpoint locations.  Default: <code>0</code>. 
 
7209
</td></tr>
 
7210
</table>
 
7211
 
 
7212
   <p>By default, <small>DDD</small> uses a minimum indentation for script languages.
 
7213
 
 
7214
<p>
 
7215
<table width="100%">
 
7216
<tr>
 
7217
<td align="left"><b>indentScript</b><i> </i>(<i>class Indent</i>)<i>
 
7218
     </i></td>
 
7219
<td align="right">Resource</td>
 
7220
</tr>
 
7221
</table>
 
7222
<table width="95%" align="center">
 
7223
<tr><td>
 
7224
The minimum indentation for script languages, such as Perl, Python, and
 
7225
Bash.  Default: <code>4</code>. 
 
7226
</td></tr>
 
7227
</table>
 
7228
 
 
7229
   <p>The maximum width of line numbers is controlled by this resource.
 
7230
 
 
7231
<p>
 
7232
<table width="100%">
 
7233
<tr>
 
7234
<td align="left"><b>lineNumberWidth</b><i> </i>(<i>class LineNumberWidth</i>)<i>
 
7235
     </i></td>
 
7236
<td align="right">Resource</td>
 
7237
</tr>
 
7238
</table>
 
7239
<table width="95%" align="center">
 
7240
<tr><td>
 
7241
The number of columns to use for line numbers (if displaying line
 
7242
numbers is enabled).  Line numbers wider than this value extend into
 
7243
the breakpoint space.  Default: <code>4</code>. 
 
7244
</td></tr>
 
7245
</table>
 
7246
 
 
7247
   <p>If your source code uses a tab width different from <code>8</code> (the
 
7248
default), you can set an alternate width using the <code>Edit =&gt;
 
7249
Preferences =&gt; Source =&gt; Tab width</code> slider.
 
7250
 
 
7251
<p>
 
7252
<table width="100%">
 
7253
<tr>
 
7254
<td align="left"><b>tabWidth</b><i> </i>(<i>class TabWidth</i>)<i>
 
7255
     </i></td>
 
7256
<td align="right">Resource</td>
 
7257
</tr>
 
7258
</table>
 
7259
<table width="95%" align="center">
 
7260
<tr><td>
 
7261
The tab width used in the source window (default: <code>8</code>)
 
7262
</td></tr>
 
7263
</table>
 
7264
 
 
7265
<div class="node">
 
7266
<p><hr>
 
7267
<small class=header>
 
7268
Node:<a name="Customizing%20Source%20Scrolling">Customizing Source Scrolling</a>,
 
7269
Next:<a rel="next" accesskey="n" href="#Customizing%20Source%20Lookup">Customizing Source Lookup</a>,
 
7270
Previous:<a rel="previous" accesskey="p" href="#Customizing%20Source%20Appearance">Customizing Source Appearance</a>,
 
7271
Up:<a rel="up" accesskey="u" href="#Customizing%20Source">Customizing Source</a>
 
7272
</small>
 
7273
 
 
7274
<br>
 
7275
</div>
 
7276
 
 
7277
<h4 class="subsection">Customizing Source Scrolling</h4>
 
7278
 
 
7279
   <p>These resources control when the source window is scrolled:
 
7280
 
 
7281
<p>
 
7282
<table width="100%">
 
7283
<tr>
 
7284
<td align="left"><b>linesAboveCursor</b><i> </i>(<i>class LinesAboveCursor</i>)<i>
 
7285
     </i></td>
 
7286
<td align="right">Resource</td>
 
7287
</tr>
 
7288
</table>
 
7289
<table width="95%" align="center">
 
7290
<tr><td>
 
7291
The minimum number of lines to show before the current location. 
 
7292
Default is <code>2</code>. 
 
7293
</td></tr>
 
7294
</table>
 
7295
 
 
7296
<p>
 
7297
<table width="100%">
 
7298
<tr>
 
7299
<td align="left"><b>linesBelowCursor</b><i> </i>(<i>class LinesBelowCursor</i>)<i>
 
7300
     </i></td>
 
7301
<td align="right">Resource</td>
 
7302
</tr>
 
7303
</table>
 
7304
<table width="95%" align="center">
 
7305
<tr><td>
 
7306
The minimum number of lines to show after the current location. 
 
7307
Default is <code>3</code>. 
 
7308
</td></tr>
 
7309
</table>
 
7310
 
 
7311
<div class="node">
 
7312
<p><hr>
 
7313
<small class=header>
 
7314
Node:<a name="Customizing%20Source%20Lookup">Customizing Source Lookup</a>,
 
7315
Next:<a rel="next" accesskey="n" href="#Customizing%20File%20Filtering">Customizing File Filtering</a>,
 
7316
Previous:<a rel="previous" accesskey="p" href="#Customizing%20Source%20Scrolling">Customizing Source Scrolling</a>,
 
7317
Up:<a rel="up" accesskey="u" href="#Customizing%20Source">Customizing Source</a>
 
7318
</small>
 
7319
 
 
7320
<br>
 
7321
</div>
 
7322
 
 
7323
<h4 class="subsection">Customizing Source Lookup</h4>
 
7324
 
 
7325
   <p>Some <small>DBX</small> and <small>XDB</small> variants do not properly handle paths in source file
 
7326
specifications.  If you want the inferior debugger to refer to source
 
7327
locations by source base names only, unset the <code>Edit =&gt;
 
7328
Preferences =&gt; Source =&gt; Refer to Program Sources by full
 
7329
path name</code> option.
 
7330
 
 
7331
   <p>This is related to the following resource:
 
7332
 
 
7333
<p>
 
7334
<table width="100%">
 
7335
<tr>
 
7336
<td align="left"><b>useSourcePath</b><i> </i>(<i>class UseSourcePath</i>)<i>
 
7337
     </i></td>
 
7338
<td align="right">Resource</td>
 
7339
</tr>
 
7340
</table>
 
7341
<table width="95%" align="center">
 
7342
<tr><td>
 
7343
If this is <code>off</code> (default), the inferior debugger refers to
 
7344
source code locations only by their base names.  If this is
 
7345
<code>on</code> (default), <small>DDD</small> uses the full source code paths. 
 
7346
</td></tr>
 
7347
</table>
 
7348
 
 
7349
   <p>By default, <small>DDD</small> caches source files in memory.  This is
 
7350
convenient for remote debugging, since remote file access may be slow. 
 
7351
If you want to reduce memory usage, unset the <code>Edit =&gt;
 
7352
Preferences =&gt; Source =&gt; Cache source files</code> option.
 
7353
 
 
7354
   <p>This is related to the following resource:
 
7355
 
 
7356
<p>
 
7357
<table width="100%">
 
7358
<tr>
 
7359
<td align="left"><b>cacheSourceFiles</b><i> </i>(<i>class CacheSourceFiles</i>)<i>
 
7360
     </i></td>
 
7361
<td align="right">Resource</td>
 
7362
</tr>
 
7363
</table>
 
7364
<table width="95%" align="center">
 
7365
<tr><td>
 
7366
Whether to cache source files (<code>on</code>, default) or not
 
7367
(<code>off</code>).  Caching source files requires more memory, but makes
 
7368
<small>DDD</small> run faster. 
 
7369
</td></tr>
 
7370
</table>
 
7371
 
 
7372
<div class="node">
 
7373
<p><hr>
 
7374
<small class=header>
 
7375
Node:<a name="Customizing%20File%20Filtering">Customizing File Filtering</a>,
 
7376
Previous:<a rel="previous" accesskey="p" href="#Customizing%20Source%20Lookup">Customizing Source Lookup</a>,
 
7377
Up:<a rel="up" accesskey="u" href="#Customizing%20Source">Customizing Source</a>
 
7378
</small>
 
7379
 
 
7380
<br>
 
7381
</div>
 
7382
 
 
7383
<h4 class="subsection">Customizing File Filtering</h4>
 
7384
 
 
7385
   <p>You can control whether <small>DDD</small> should filter files to be opened.
 
7386
 
 
7387
<p>
 
7388
<table width="100%">
 
7389
<tr>
 
7390
<td align="left"><b>filterFiles</b><i> </i>(<i>class FilterFiles</i>)<i>
 
7391
     </i></td>
 
7392
<td align="right">Resource</td>
 
7393
</tr>
 
7394
</table>
 
7395
<table width="95%" align="center">
 
7396
<tr><td>
 
7397
If this is <code>on</code> (default), <small>DDD</small> filters files when opening
 
7398
execution files, core dumps, or source files, such that the selection
 
7399
shows only suitable files.  This requires that <small>DDD</small> opens each
 
7400
file, which may take time.  If this is <code>off</code>, <small>DDD</small> always
 
7401
presents all available files. 
 
7402
</td></tr>
 
7403
</table>
 
7404
 
 
7405
<div class="node">
 
7406
<p><hr>
 
7407
<small class=header>
 
7408
Node:<a name="Stopping">Stopping</a>,
 
7409
Next:<a rel="next" accesskey="n" href="#Running">Running</a>,
 
7410
Previous:<a rel="previous" accesskey="p" href="#Navigating">Navigating</a>,
 
7411
Up:<a rel="up" accesskey="u" href="#Top">Top</a>
 
7412
</small>
 
7413
 
 
7414
<br>
 
7415
</div>
 
7416
 
 
7417
<h2 class="chapter">Stopping the Program</h2>
 
7418
 
 
7419
   <p>The principal purposes of using a debugger are so that you can stop your
 
7420
program before it terminates; or so that, if your program runs into
 
7421
trouble, you can investigate and find out why.
 
7422
 
 
7423
   <p>Inside <small>DDD</small>, your program may stop for any of several reasons,
 
7424
such as a signal, a breakpoint, or reaching a new line after a
 
7425
<small>DDD</small> command such as <code>Step</code>.  You may then examine and
 
7426
change variables, set new breakpoints or remove old ones, and then
 
7427
continue execution.
 
7428
 
 
7429
   <p>The inferior debuggers supported by <small>DDD</small> support two mechanisms
 
7430
for stopping a program upon specific events:
 
7431
 
 
7432
     <ul>
 
7433
 
 
7434
     <li>A <dfn>breakpoint</dfn> makes your program stop whenever a certain point in
 
7435
the program is reached.  For each breakpoint, you can add conditions to
 
7436
control in finer detail whether your program stops.  Typically,
 
7437
breakpoints are set before running the program.
 
7438
 
 
7439
     <li>A <dfn>watchpoint</dfn> is a special breakpoint that stops your program when
 
7440
the value of an expression changes. 
 
7441
</ul>
 
7442
 
 
7443
<ul class="menu">
 
7444
<li><a accesskey="1" href="#Breakpoints">Breakpoints</a>:                  Stop at a certain point. 
 
7445
<li><a accesskey="2" href="#Watchpoints">Watchpoints</a>:                  Stop at a certain condition. 
 
7446
<li><a accesskey="3" href="#Interrupting">Interrupting</a>:                 Stop manually. 
 
7447
<li><a accesskey="4" href="#Stopping%20X%20Programs">Stopping X Programs</a>:          Take care of grabbed pointers! 
 
7448
</ul>
 
7449
 
 
7450
<div class="node">
 
7451
<p><hr>
 
7452
<small class=header>
 
7453
Node:<a name="Breakpoints">Breakpoints</a>,
 
7454
Next:<a rel="next" accesskey="n" href="#Watchpoints">Watchpoints</a>,
 
7455
Up:<a rel="up" accesskey="u" href="#Stopping">Stopping</a>
 
7456
</small>
 
7457
 
 
7458
<br>
 
7459
</div>
 
7460
 
 
7461
<h3 class="section">Breakpoints</h3>
 
7462
 
 
7463
<ul class="menu">
 
7464
<li><a accesskey="1" href="#Setting%20Breakpoints">Setting Breakpoints</a>: 
 
7465
<li><a accesskey="2" href="#Deleting%20Breakpoints">Deleting Breakpoints</a>: 
 
7466
<li><a accesskey="3" href="#Disabling%20Breakpoints">Disabling Breakpoints</a>: 
 
7467
<li><a accesskey="4" href="#Temporary%20Breakpoints">Temporary Breakpoints</a>: 
 
7468
<li><a accesskey="5" href="#Editing%20Breakpoint%20Properties">Editing Breakpoint Properties</a>: 
 
7469
<li><a accesskey="6" href="#Breakpoint%20Conditions">Breakpoint Conditions</a>: 
 
7470
<li><a accesskey="7" href="#Breakpoint%20Ignore%20Counts">Breakpoint Ignore Counts</a>: 
 
7471
<li><a accesskey="8" href="#Breakpoint%20Commands">Breakpoint Commands</a>: 
 
7472
<li><a accesskey="9" href="#Moving%20and%20Copying%20Breakpoints">Moving and Copying Breakpoints</a>: 
 
7473
<li><a href="#Looking%20up%20Breakpoints">Looking up Breakpoints</a>: 
 
7474
<li><a href="#Editing%20all%20Breakpoints">Editing all Breakpoints</a>: 
 
7475
<li><a href="#Hardware-Assisted%20Breakpoints">Hardware-Assisted Breakpoints</a>: 
 
7476
</ul>
 
7477
 
 
7478
<div class="node">
 
7479
<p><hr>
 
7480
<small class=header>
 
7481
Node:<a name="Setting%20Breakpoints">Setting Breakpoints</a>,
 
7482
Next:<a rel="next" accesskey="n" href="#Deleting%20Breakpoints">Deleting Breakpoints</a>,
 
7483
Up:<a rel="up" accesskey="u" href="#Breakpoints">Breakpoints</a>
 
7484
</small>
 
7485
 
 
7486
<br>
 
7487
</div>
 
7488
 
 
7489
<h4 class="subsection">Setting Breakpoints</h4>
 
7490
 
 
7491
   <p>You can set breakpoints by location or by name.
 
7492
 
 
7493
<h5 class="subsubsection">Setting Breakpoints by Location</h5>
 
7494
 
 
7495
   <p>Breakpoints are set at a specific location in the program.
 
7496
 
 
7497
   <p>If the source line is visible, click with <em>mouse button 1</em> on the
 
7498
left of the source line and then on the <code>Break</code> button.
 
7499
 
 
7500
   <p>As a faster alternative, you can simply press <em>mouse button 3</em> on
 
7501
the left of the source line and select the <code>Set Breakpoint</code> item
 
7502
from the line popup menu.
 
7503
 
 
7504
<br><p>
 
7505
<div align="center"><img src="PICS/ddd-line-popup.jpg" alt="PICS/ddd-line-popup.jpg"></div>
 
7506
<br><p>
 
7507
   <p>As an even faster alternative, you can simply double-click on the left
 
7508
of the source line to set a breakpoint.
 
7509
 
 
7510
   <p>As yet another alternative, you can select <code>Source =&gt;
 
7511
Breakpoints</code>.  Click on the <code>Break</code> button and enter the location.
 
7512
 
 
7513
   <p>(If you find this number of alternatives confusing, be aware that
 
7514
<small>DDD</small> users fall into three categories, which must all be
 
7515
supported.  <em>Novice users</em> explore <small>DDD</small> and may prefer to
 
7516
use one single mouse button.  <em>Advanced users</em> know how to use
 
7517
shortcuts and prefer popup menus.  <em>Experienced users</em> prefer the
 
7518
command line interface.)
 
7519
 
 
7520
   <p>Breakpoints are indicated by a plain stop sign, or as <code>#</code><var>n</var><code></code>,
 
7521
where <var>n</var> is the breakpoint number.  A greyed out stop sign (or
 
7522
<code>_</code><var>n</var><code>_</code>) indicates a disabled breakpoint.  A stop sign with a
 
7523
question mark (or <code>?</code><var>n</var><code>?</code>) indicates a conditional breakpoint
 
7524
or a breakpoint with an ignore count set.
 
7525
 
 
7526
   <p>If you set a breakpoint by mistake, use <code>Edit =&gt; Undo</code> to delete
 
7527
it again.
 
7528
 
 
7529
<h5 class="subsubsection">Setting Breakpoints by Name</h5>
 
7530
 
 
7531
   <p>If the function name is visible, click with <em>mouse button 1</em> on the
 
7532
function name.  The function name is then copied to the argument field. 
 
7533
Click on the <code>Break</code> button to set a breakpoint there.
 
7534
 
 
7535
   <p>As a shorter alternative, you can simply press <em>mouse button 3</em> on
 
7536
the function name and select the <code>Break at</code> item from the popup
 
7537
menu.
 
7538
 
 
7539
   <p>As yet another alternative, you can click on <code>Break...</code> from
 
7540
the Breakpoint editor (invoked through <code>Source =&gt;
 
7541
Breakpoints</code>) and enter the function name.
 
7542
 
 
7543
<h5 class="subsubsection">Setting Regexp Breakpoints</h5>
 
7544
 
 
7545
   <p>Using <small>GDB</small>, you can also set a breakpoint on all functions that match a
 
7546
given string.  <code>Break =&gt; Set Breakpoints at Regexp ()</code> sets
 
7547
a breakpoint on all functions whose name matches the <em>regular
 
7548
expression</em> given in <code>()</code>.  Here are some examples:
 
7549
 
 
7550
     <ul>
 
7551
<li>To set a breakpoint on every function that starts with <code>Xm</code>, set
 
7552
<code>()</code> to <code>^Xm</code>. 
 
7553
<li>To set a breakpoint on every member of class <code>Date</code>, set
 
7554
<code>()</code> to <code>^Date::</code>. 
 
7555
<li>To set a breakpoint on every function whose name contains
 
7556
<code>_fun</code>, set <code>()</code> to <code>_fun</code>. 
 
7557
<li>To set a breakpoint on every function that ends in <code>_test</code>,
 
7558
set <code>()</code> to <code>_test$</code>. 
 
7559
</ul>
 
7560
 
 
7561
<div class="node">
 
7562
<p><hr>
 
7563
<small class=header>
 
7564
Node:<a name="Deleting%20Breakpoints">Deleting Breakpoints</a>,
 
7565
Next:<a rel="next" accesskey="n" href="#Disabling%20Breakpoints">Disabling Breakpoints</a>,
 
7566
Previous:<a rel="previous" accesskey="p" href="#Setting%20Breakpoints">Setting Breakpoints</a>,
 
7567
Up:<a rel="up" accesskey="u" href="#Breakpoints">Breakpoints</a>
 
7568
</small>
 
7569
 
 
7570
<br>
 
7571
</div>
 
7572
 
 
7573
<h4 class="subsection">Deleting Breakpoints</h4>
 
7574
 
 
7575
   <p>To delete a visible breakpoint, click with <em>mouse button 1</em> on the
 
7576
breakpoint.  The breakpoint location is copied to the argument field. 
 
7577
Click on the <code>Clear</code> button to delete all breakpoints there.
 
7578
 
 
7579
   <p>If the function name is visible, click with <em>mouse button 1</em> on the
 
7580
function name.  The function name is copied to the argument field. 
 
7581
Click on the <code>Clear</code> button to clear all breakpoints there.
 
7582
 
 
7583
   <p>As a faster alternative, you can simply press <em>mouse button 3</em> on
 
7584
the breakpoint and select the <code>Delete Breakpoint</code> item from the
 
7585
popup menu.
 
7586
 
 
7587
   <p>As yet another alternative, you can select the breakpoint and click on
 
7588
<code>Delete</code> in the Breakpoint editor (invoked through <code>Source
 
7589
=&gt; Breakpoints</code>).
 
7590
 
 
7591
   <p>As an even faster alternative, you can simply double-click on the
 
7592
breakpoint while holding &lt;Ctrl&gt;.
 
7593
 
 
7594
<div class="node">
 
7595
<p><hr>
 
7596
<small class=header>
 
7597
Node:<a name="Disabling%20Breakpoints">Disabling Breakpoints</a>,
 
7598
Next:<a rel="next" accesskey="n" href="#Temporary%20Breakpoints">Temporary Breakpoints</a>,
 
7599
Previous:<a rel="previous" accesskey="p" href="#Deleting%20Breakpoints">Deleting Breakpoints</a>,
 
7600
Up:<a rel="up" accesskey="u" href="#Breakpoints">Breakpoints</a>
 
7601
</small>
 
7602
 
 
7603
<br>
 
7604
</div>
 
7605
 
 
7606
<h4 class="subsection">Disabling Breakpoints</h4>
 
7607
 
 
7608
   <p>Rather than deleting a breakpoint or watchpoint, you might prefer to
 
7609
<dfn>disable</dfn> it.  This makes the breakpoint inoperative as if it had
 
7610
been deleted, but remembers the information on the breakpoint so that
 
7611
you can <dfn>enable</dfn> it again later.<a rel="footnote" href="#fn-12"><sup>12</sup></a>
 
7612
 
 
7613
   <p>To disable a breakpoint, press <em>mouse button 3</em> on the breakpoint
 
7614
symbol and select the <code>Disable Breakpoint</code> item from the breakpoint
 
7615
popup menu.  To enable it again, select <code>Enable Breakpoint</code>.
 
7616
 
 
7617
<br><p>
 
7618
<div align="center"><img src="PICS/ddd-bp-popup.jpg" alt="PICS/ddd-bp-popup.jpg"></div>
 
7619
<br><p>
 
7620
   <p>As an alternative, you can select the breakpoint and click on
 
7621
<code>Disable</code> or <code>Enable</code> in the Breakpoint editor (invoked
 
7622
through <code>Source =&gt; Breakpoints</code>.
 
7623
 
 
7624
   <p>Disabled breakpoints are indicated by a grey stop sign, or
 
7625
<code>_</code><var>n</var><code>_</code>, where <var>n</var> is the breakpoint number.
 
7626
 
 
7627
   <p>The <code>Disable Breakpoint</code> item is also accessible via the
 
7628
<code>Clear</code> button.  Just press and hold <em>mouse button 1</em> on the
 
7629
button to get a popup menu.
 
7630
 
 
7631
<div class="node">
 
7632
<p><hr>
 
7633
<small class=header>
 
7634
Node:<a name="Temporary%20Breakpoints">Temporary Breakpoints</a>,
 
7635
Next:<a rel="next" accesskey="n" href="#Editing%20Breakpoint%20Properties">Editing Breakpoint Properties</a>,
 
7636
Previous:<a rel="previous" accesskey="p" href="#Disabling%20Breakpoints">Disabling Breakpoints</a>,
 
7637
Up:<a rel="up" accesskey="u" href="#Breakpoints">Breakpoints</a>
 
7638
</small>
 
7639
 
 
7640
<br>
 
7641
</div>
 
7642
 
 
7643
<h4 class="subsection">Temporary Breakpoints</h4>
 
7644
 
 
7645
   <p>A <dfn>temporary breakpoint</dfn> is immediately deleted as soon as it is
 
7646
reached.<a rel="footnote" href="#fn-13"><sup>13</sup></a>
 
7647
 
 
7648
   <p>To set a temporary breakpoint, press <em>mouse button 3</em> on the left
 
7649
of the source line and select the <code>Set Temporary Breakpoint</code> item
 
7650
from the popup menu.
 
7651
 
 
7652
   <p>As a faster alternative, you can simply double-click on the left of the
 
7653
source line while holding &lt;Ctrl&gt;.
 
7654
 
 
7655
   <p>Temporary breakpoints are convenient to make the program continue up to
 
7656
a specific location: just set the temporary breakpoint at this location
 
7657
and continue execution.
 
7658
 
 
7659
   <p>The <code>Continue Until Here</code> item from the popup menu sets a temporary
 
7660
breakpoint on the left of the source line and immediately continues
 
7661
execution.  Execution stops when the temporary breakpoint is reached.
 
7662
 
 
7663
   <p>The <code>Set Temporary Breakpoint</code> and <code>Continue Until Here</code> items
 
7664
are also accessible via the <code>Break</code> button.  Just press and hold
 
7665
<em>mouse button 1</em> on the button to get a popup menu.
 
7666
 
 
7667
<div class="node">
 
7668
<p><hr>
 
7669
<small class=header>
 
7670
Node:<a name="Editing%20Breakpoint%20Properties">Editing Breakpoint Properties</a>,
 
7671
Next:<a rel="next" accesskey="n" href="#Breakpoint%20Conditions">Breakpoint Conditions</a>,
 
7672
Previous:<a rel="previous" accesskey="p" href="#Temporary%20Breakpoints">Temporary Breakpoints</a>,
 
7673
Up:<a rel="up" accesskey="u" href="#Breakpoints">Breakpoints</a>
 
7674
</small>
 
7675
 
 
7676
<br>
 
7677
</div>
 
7678
 
 
7679
<h4 class="subsection">Editing Breakpoint Properties</h4>
 
7680
 
 
7681
   <p>You can change all properties of a breakpoint by pressing <em>mouse
 
7682
button 3</em> on the breakpoint symbol and select <code>Properties</code>
 
7683
from the breakpoint popup menu.  This will pop up a dialog showing the
 
7684
current properties of the selected breakpoint.
 
7685
 
 
7686
<br><p>
 
7687
<div align="center"><img src="PICS/ddd-bp-properties.jpg" alt="PICS/ddd-bp-properties.jpg"></div>
 
7688
<br><p>
 
7689
   <p>As an even faster alternative, you can simply double-click on the
 
7690
breakpoint.
 
7691
 
 
7692
     <ul>
 
7693
<li>Click on <code>Lookup</code> to move the cursor to the breakpoint's
 
7694
location. 
 
7695
<li>Click on <code>Enable</code> to enable the breakpoint. 
 
7696
<li>Click on <code>Disable</code> to disable the breakpoint. 
 
7697
<li>Click on <code>Temp</code> to make the breakpoint temporary.<a rel="footnote" href="#fn-14"><sup>14</sup></a>
 
7698
<li>Click on <code>Delete</code> to delete the breakpoint. 
 
7699
</ul>
 
7700
 
 
7701
<div class="node">
 
7702
<p><hr>
 
7703
<small class=header>
 
7704
Node:<a name="Breakpoint%20Conditions">Breakpoint Conditions</a>,
 
7705
Next:<a rel="next" accesskey="n" href="#Breakpoint%20Ignore%20Counts">Breakpoint Ignore Counts</a>,
 
7706
Previous:<a rel="previous" accesskey="p" href="#Editing%20Breakpoint%20Properties">Editing Breakpoint Properties</a>,
 
7707
Up:<a rel="up" accesskey="u" href="#Breakpoints">Breakpoints</a>
 
7708
</small>
 
7709
 
 
7710
<br>
 
7711
</div>
 
7712
 
 
7713
<h4 class="subsection">Breakpoint Conditions</h4>
 
7714
 
 
7715
   <p>The simplest sort of breakpoint breaks every time your program reaches a
 
7716
specified place.  You can also specify a <dfn>condition</dfn> for a
 
7717
breakpoint.  A condition is just a Boolean expression in your
 
7718
programming language.  A breakpoint with a condition evaluates the
 
7719
expression each time your program reaches it, and your program stops
 
7720
only if the condition is <em>true</em>.
 
7721
 
 
7722
   <p>This is the converse of using assertions for program validation; in that
 
7723
situation, you want to stop when the assertion is violated-that is,
 
7724
when the condition is false.  In C, if you want to test an assertion
 
7725
expressed by the condition <var>assertion</var>, you should set the condition
 
7726
<code>!</code><var>assertion</var><code></code> on the appropriate breakpoint.
 
7727
 
 
7728
   <p>Break conditions can have side effects, and may even call functions in
 
7729
your program.  This can be useful, for example, to activate functions
 
7730
that log program progress, or to use your own print functions to format
 
7731
special data structures. The effects are completely predictable unless
 
7732
there is another enabled breakpoint at the same address.  (In that case,
 
7733
<small>DDD</small> might see the other breakpoint first and stop your program
 
7734
without checking the condition of this one.)
 
7735
 
 
7736
   <p>Note that breakpoint commands are usually more convenient and flexible
 
7737
for the purpose of performing side effects when a breakpoint is reached. 
 
7738
See <a href="#Breakpoint%20Commands">Breakpoint Commands</a>, for details.
 
7739
 
 
7740
<div class="node">
 
7741
<p><hr>
 
7742
<small class=header>
 
7743
Node:<a name="Breakpoint%20Ignore%20Counts">Breakpoint Ignore Counts</a>,
 
7744
Next:<a rel="next" accesskey="n" href="#Breakpoint%20Commands">Breakpoint Commands</a>,
 
7745
Previous:<a rel="previous" accesskey="p" href="#Breakpoint%20Conditions">Breakpoint Conditions</a>,
 
7746
Up:<a rel="up" accesskey="u" href="#Breakpoints">Breakpoints</a>
 
7747
</small>
 
7748
 
 
7749
<br>
 
7750
</div>
 
7751
 
 
7752
<h4 class="subsection">Breakpoint Ignore Counts</h4>
 
7753
 
 
7754
   <p>A special case of a breakpoint condition is to stop only when the
 
7755
breakpoint has been reached a certain number of times.  This is so
 
7756
useful that there is a special way to do it, using the <dfn>ignore
 
7757
count</dfn> of the breakpoint.  Every breakpoint has an ignore count, which
 
7758
is an integer.  Most of the time, the ignore count is zero, and
 
7759
therefore has no effect.  But if your program reaches a breakpoint whose
 
7760
ignore count is positive, then instead of stopping, it just decrements
 
7761
the ignore count by one and continues.  As a result, if the ignore count
 
7762
value is <var>n</var>, the breakpoint does not stop the next <var>n</var> times
 
7763
your program reaches it.
 
7764
 
 
7765
   <p>In the field <code>Ignore Count</code> of the <code>Breakpoint Properties</code>
 
7766
panel, you can specify the breakpoint ignore count.<a rel="footnote" href="#fn-15"><sup>15</sup></a>
 
7767
 
 
7768
   <p>If a breakpoint has a positive ignore count and a condition, the
 
7769
condition is not checked.  Once the ignore count reaches zero,
 
7770
<small>DDD</small> resumes checking the condition.
 
7771
 
 
7772
<div class="node">
 
7773
<p><hr>
 
7774
<small class=header>
 
7775
Node:<a name="Breakpoint%20Commands">Breakpoint Commands</a>,
 
7776
Next:<a rel="next" accesskey="n" href="#Moving%20and%20Copying%20Breakpoints">Moving and Copying Breakpoints</a>,
 
7777
Previous:<a rel="previous" accesskey="p" href="#Breakpoint%20Ignore%20Counts">Breakpoint Ignore Counts</a>,
 
7778
Up:<a rel="up" accesskey="u" href="#Breakpoints">Breakpoints</a>
 
7779
</small>
 
7780
 
 
7781
<br>
 
7782
</div>
 
7783
 
 
7784
<h4 class="subsection">Breakpoint Commands</h4>
 
7785
 
 
7786
   <p>You can give any breakpoint (or watchpoint) a series of <small>DDD</small>
 
7787
commands to execute when your program stops due to that breakpoint.  For
 
7788
example, you might want to print the values of certain expressions, or
 
7789
enable other breakpoints.<a rel="footnote" href="#fn-16"><sup>16</sup></a>
 
7790
 
 
7791
   <p>Using the <code>Commands</code> buttons of the <code>Breakpoint Properties</code>
 
7792
panel, you can edit commands to be executed when the breakpoint is hit.
 
7793
 
 
7794
   <p>To edit breakpoint commands, click on <code>Edit &gt;&gt;</code> and enter the
 
7795
commands in the commands editor.  When done with editing, click on
 
7796
<code>Edit &lt;&lt;</code> to close the commands editor.
 
7797
 
 
7798
   <p>Using <small>GDB</small>, you can also <dfn>record</dfn> a command sequence to be executed. 
 
7799
To record a command sequence, follow these steps:
 
7800
 
 
7801
     <ol type=1 start=1>
 
7802
<li>Click on <code>Record</code> to begin the recording of the breakpoint
 
7803
commands. 
 
7804
<li>Now interact with <small>DDD</small>.  While recording, <small>DDD</small> does not
 
7805
execute commands, but simply records them to be executed when the
 
7806
breakpoint is hit.  The recorded debugger commands are shown in the
 
7807
debugger console. 
 
7808
<li>To stop the recording, click on <code>End</code> or enter <code>end</code> at the
 
7809
<small>GDB</small> prompt.  To <dfn>cancel</dfn> the recording, click on <code>Interrupt</code>
 
7810
or press &lt;ESC&gt;. 
 
7811
<li>You can edit the breakpoint commands just recorded using <code>Edit &gt;&gt;</code>.
 
7812
        </ol>
 
7813
 
 
7814
<div class="node">
 
7815
<p><hr>
 
7816
<small class=header>
 
7817
Node:<a name="Moving%20and%20Copying%20Breakpoints">Moving and Copying Breakpoints</a>,
 
7818
Next:<a rel="next" accesskey="n" href="#Looking%20up%20Breakpoints">Looking up Breakpoints</a>,
 
7819
Previous:<a rel="previous" accesskey="p" href="#Breakpoint%20Commands">Breakpoint Commands</a>,
 
7820
Up:<a rel="up" accesskey="u" href="#Breakpoints">Breakpoints</a>
 
7821
</small>
 
7822
 
 
7823
<br>
 
7824
</div>
 
7825
 
 
7826
<h4 class="subsection">Moving and Copying Breakpoints</h4>
 
7827
 
 
7828
   <p>To move a breakpoint to a different location, press <em>mouse button
 
7829
1</em> on the stop sign and drag it to the desired location.<a rel="footnote" href="#fn-17"><sup>17</sup></a>  This is equivalent to
 
7830
deleting the breakpoint at the old location and setting a breakpoint at
 
7831
the new location.  The new breakpoint inherits all properties of the old
 
7832
breakpoint, except the breakpoint number.
 
7833
 
 
7834
   <p>To copy a breakpoint to a new location, press &lt;Shift&gt; while
 
7835
dragging.
 
7836
 
 
7837
<div class="node">
 
7838
<p><hr>
 
7839
<small class=header>
 
7840
Node:<a name="Looking%20up%20Breakpoints">Looking up Breakpoints</a>,
 
7841
Next:<a rel="next" accesskey="n" href="#Editing%20all%20Breakpoints">Editing all Breakpoints</a>,
 
7842
Previous:<a rel="previous" accesskey="p" href="#Moving%20and%20Copying%20Breakpoints">Moving and Copying Breakpoints</a>,
 
7843
Up:<a rel="up" accesskey="u" href="#Breakpoints">Breakpoints</a>
 
7844
</small>
 
7845
 
 
7846
<br>
 
7847
</div>
 
7848
 
 
7849
<h4 class="subsection">Looking up Breakpoints</h4>
 
7850
 
 
7851
   <p>If you wish to lookup a specific breakpoint, select <code>Source
 
7852
=&gt; Breakpoints =&gt; Lookup</code>.  After selecting a breakpoint
 
7853
from the list and clicking the <code>Lookup</code> button, the breakpoint
 
7854
location is displayed.
 
7855
 
 
7856
   <p>As an alternative, you can enter <code>#</code><var>n</var><code></code> in the argument field,
 
7857
where <var>n</var> is the breakpoint number, and click on the <code>Lookup</code>
 
7858
button to find its definition.
 
7859
 
 
7860
<div class="node">
 
7861
<p><hr>
 
7862
<small class=header>
 
7863
Node:<a name="Editing%20all%20Breakpoints">Editing all Breakpoints</a>,
 
7864
Next:<a rel="next" accesskey="n" href="#Hardware-Assisted%20Breakpoints">Hardware-Assisted Breakpoints</a>,
 
7865
Previous:<a rel="previous" accesskey="p" href="#Looking%20up%20Breakpoints">Looking up Breakpoints</a>,
 
7866
Up:<a rel="up" accesskey="u" href="#Breakpoints">Breakpoints</a>
 
7867
</small>
 
7868
 
 
7869
<br>
 
7870
</div>
 
7871
 
 
7872
<h4 class="subsection">Editing all Breakpoints</h4>
 
7873
 
 
7874
   <p>To view and edit all breakpoints at once, select <code>Source =&gt;
 
7875
Breakpoints</code>.  This will popup the <dfn>Breakpoint Editor</dfn> which
 
7876
displays the state of all breakpoints.
 
7877
 
 
7878
<br><p>
 
7879
<div align="center"><img src="PICS/ddd-edit-breakpoints.jpg" alt="PICS/ddd-edit-breakpoints.jpg"></div>
 
7880
<br><p>
 
7881
   <p>In the breakpoint editor, you can select individual breakpoints by
 
7882
clicking on them.  Pressing &lt;Ctrl&gt; while clicking toggles the
 
7883
selection.  To edit the properties of all selected breakpoints, click on
 
7884
<code>Props</code>.
 
7885
 
 
7886
<div class="node">
 
7887
<p><hr>
 
7888
<small class=header>
 
7889
Node:<a name="Hardware-Assisted%20Breakpoints">Hardware-Assisted Breakpoints</a>,
 
7890
Previous:<a rel="previous" accesskey="p" href="#Editing%20all%20Breakpoints">Editing all Breakpoints</a>,
 
7891
Up:<a rel="up" accesskey="u" href="#Breakpoints">Breakpoints</a>
 
7892
</small>
 
7893
 
 
7894
<br>
 
7895
</div>
 
7896
 
 
7897
<h4 class="subsection">Hardware-Assisted Breakpoints</h4>
 
7898
 
 
7899
   <p>Using <small>GDB</small>, a few more commands related to breakpoints can be invoked
 
7900
through the debugger console:
 
7901
 
 
7902
     <dl>
 
7903
<dt><code>hbreak </code><var>position</var><code></code>
 
7904
     <dd>Sets a hardware-assisted breakpoint at <var>position</var>.  This command
 
7905
requires hardware support and some target hardware may not have this
 
7906
support.  The main purpose of this is <small>EPROM</small>/<small>ROM</small> code
 
7907
debugging, so you can set a breakpoint at an instruction without
 
7908
changing the instruction.
 
7909
 
 
7910
     <br><dt><code>thbreak </code><var>pos</var><code></code>
 
7911
     <dd>Set a temporary hardware-assisted breakpoint at <var>pos</var>. 
 
7912
</dl>
 
7913
 
 
7914
   <p>See <a href="gdb.html#Setting%20breakpoints">Setting breakpoints</a>, for details.
 
7915
 
 
7916
<div class="node">
 
7917
<p><hr>
 
7918
<small class=header>
 
7919
Node:<a name="Watchpoints">Watchpoints</a>,
 
7920
Next:<a rel="next" accesskey="n" href="#Interrupting">Interrupting</a>,
 
7921
Previous:<a rel="previous" accesskey="p" href="#Breakpoints">Breakpoints</a>,
 
7922
Up:<a rel="up" accesskey="u" href="#Stopping">Stopping</a>
 
7923
</small>
 
7924
 
 
7925
<br>
 
7926
</div>
 
7927
 
 
7928
<h3 class="section">Watchpoints</h3>
 
7929
 
 
7930
   <p>You can make the program stop as soon as some variable value changes, or
 
7931
when some variable is read or written.  This is called <dfn>setting a
 
7932
watchpoint on a variable</dfn>.<a rel="footnote" href="#fn-18"><sup>18</sup></a>
 
7933
 
 
7934
   <p>Watchpoints have much in common with breakpoints: in particular, you can
 
7935
enable and disable them.  You can also set conditions, ignore counts,
 
7936
and commands to be executed when a watched variable changes its value.
 
7937
 
 
7938
   <p>Please note: on architectures without special watchpoint support,
 
7939
watchpoints currently make the program execute two orders of magnitude
 
7940
more slowly.  This is so because the inferior debugger must interrupt
 
7941
the program after each machine instruction in order to examine whether
 
7942
the watched value has changed.  However, this delay can be well worth it
 
7943
to catch errors when you have no clue what part of your program is the
 
7944
culprit.
 
7945
 
 
7946
<ul class="menu">
 
7947
<li><a accesskey="1" href="#Setting%20Watchpoints">Setting Watchpoints</a>: 
 
7948
<li><a accesskey="2" href="#Editing%20Watchpoint%20Properties">Editing Watchpoint Properties</a>: 
 
7949
<li><a accesskey="3" href="#Editing%20all%20Watchpoints">Editing all Watchpoints</a>: 
 
7950
<li><a accesskey="4" href="#Deleting%20Watchpoints">Deleting Watchpoints</a>: 
 
7951
</ul>
 
7952
 
 
7953
<div class="node">
 
7954
<p><hr>
 
7955
<small class=header>
 
7956
Node:<a name="Setting%20Watchpoints">Setting Watchpoints</a>,
 
7957
Next:<a rel="next" accesskey="n" href="#Editing%20Watchpoint%20Properties">Editing Watchpoint Properties</a>,
 
7958
Up:<a rel="up" accesskey="u" href="#Watchpoints">Watchpoints</a>
 
7959
</small>
 
7960
 
 
7961
<br>
 
7962
</div>
 
7963
 
 
7964
<h4 class="subsection">Setting Watchpoints</h4>
 
7965
 
 
7966
   <p>If the variable name is visible, click with <em>mouse button 1</em> on the
 
7967
variable name.  The variable name is copied to the argument field. 
 
7968
Otherwise, enter the variable name in the argument field.  Click on the
 
7969
<code>Watch</code> button to set a watchpoint there.
 
7970
 
 
7971
   <p>Using <small>GDB</small> and <small>JDB</small> 1.2, you can set different types of watchpoints. 
 
7972
Click and hold <em>mouse button 1</em> on the <code>Watch</code> button to get a
 
7973
menu.
 
7974
 
 
7975
<div class="node">
 
7976
<p><hr>
 
7977
<small class=header>
 
7978
Node:<a name="Editing%20Watchpoint%20Properties">Editing Watchpoint Properties</a>,
 
7979
Next:<a rel="next" accesskey="n" href="#Editing%20all%20Watchpoints">Editing all Watchpoints</a>,
 
7980
Previous:<a rel="previous" accesskey="p" href="#Setting%20Watchpoints">Setting Watchpoints</a>,
 
7981
Up:<a rel="up" accesskey="u" href="#Watchpoints">Watchpoints</a>
 
7982
</small>
 
7983
 
 
7984
<br>
 
7985
</div>
 
7986
 
 
7987
<h4 class="subsection">Editing Watchpoint Properties</h4>
 
7988
 
 
7989
   <p>To change the properties of a watchpoint, enter the name of the watched
 
7990
variable in the argument field.  Click and hold <em>mouse button 1</em> on
 
7991
the <code>Watch</code> button and select <code>Watchpoint Properties</code>.
 
7992
 
 
7993
   <p>The Watchpoint Properties panel has the same functionality as the
 
7994
Breakpoint Properties panel (see <a href="#Editing%20Breakpoint%20Properties">Editing Breakpoint Properties</a>).  As
 
7995
an additional feature, you can click on <code>Print</code> to see the current
 
7996
value of a watched variable.
 
7997
 
 
7998
<div class="node">
 
7999
<p><hr>
 
8000
<small class=header>
 
8001
Node:<a name="Editing%20all%20Watchpoints">Editing all Watchpoints</a>,
 
8002
Next:<a rel="next" accesskey="n" href="#Deleting%20Watchpoints">Deleting Watchpoints</a>,
 
8003
Previous:<a rel="previous" accesskey="p" href="#Editing%20Watchpoint%20Properties">Editing Watchpoint Properties</a>,
 
8004
Up:<a rel="up" accesskey="u" href="#Watchpoints">Watchpoints</a>
 
8005
</small>
 
8006
 
 
8007
<br>
 
8008
</div>
 
8009
 
 
8010
<h4 class="subsection">Editing all Watchpoints</h4>
 
8011
 
 
8012
   <p>To view and edit all watchpoints at once, select <code>Data =&gt;
 
8013
Watchpoints</code>.  This will popup the <dfn>Watchpoint Editor</dfn> which
 
8014
displays the state of all watchpoints.
 
8015
 
 
8016
   <p>The Watchpoint Editor has the same functionality as the Breakpoint
 
8017
Editor (see <a href="#Editing%20all%20Breakpoints">Editing all Breakpoints</a>).  As an additional feature, you
 
8018
can click on <code>Print</code> to see the current value of a watched
 
8019
variable.
 
8020
 
 
8021
<div class="node">
 
8022
<p><hr>
 
8023
<small class=header>
 
8024
Node:<a name="Deleting%20Watchpoints">Deleting Watchpoints</a>,
 
8025
Previous:<a rel="previous" accesskey="p" href="#Editing%20all%20Watchpoints">Editing all Watchpoints</a>,
 
8026
Up:<a rel="up" accesskey="u" href="#Watchpoints">Watchpoints</a>
 
8027
</small>
 
8028
 
 
8029
<br>
 
8030
</div>
 
8031
 
 
8032
<h4 class="subsection">Deleting Watchpoints</h4>
 
8033
 
 
8034
   <p>To delete a watchpoint, enter the name of the watched variable in the
 
8035
argument field and click the <code>Unwatch</code> button.
 
8036
 
 
8037
<div class="node">
 
8038
<p><hr>
 
8039
<small class=header>
 
8040
Node:<a name="Interrupting">Interrupting</a>,
 
8041
Next:<a rel="next" accesskey="n" href="#Stopping%20X%20Programs">Stopping X Programs</a>,
 
8042
Previous:<a rel="previous" accesskey="p" href="#Watchpoints">Watchpoints</a>,
 
8043
Up:<a rel="up" accesskey="u" href="#Stopping">Stopping</a>
 
8044
</small>
 
8045
 
 
8046
<br>
 
8047
</div>
 
8048
 
 
8049
<h3 class="section">Interrupting</h3>
 
8050
 
 
8051
   <p>If the program is already running (see <a href="#Running">Running</a>), you can interrupt
 
8052
it any time by clicking the <code>Interrupt</code> button or typing &lt;ESC&gt;
 
8053
in a <small>DDD</small> window.<a rel="footnote" href="#fn-19"><sup>19</sup></a>  Using <small>GDB</small>, this is
 
8054
equivalent to sending a <code>SIGINT</code> (Interrupt) signal.
 
8055
 
 
8056
   <p><code>Interrupt</code> and &lt;ESC&gt; also interrupt a running debugger
 
8057
command, such as printing data.
 
8058
 
 
8059
<div class="node">
 
8060
<p><hr>
 
8061
<small class=header>
 
8062
Node:<a name="Stopping%20X%20Programs">Stopping X Programs</a>,
 
8063
Previous:<a rel="previous" accesskey="p" href="#Interrupting">Interrupting</a>,
 
8064
Up:<a rel="up" accesskey="u" href="#Stopping">Stopping</a>
 
8065
</small>
 
8066
 
 
8067
<br>
 
8068
</div>
 
8069
 
 
8070
<h3 class="section">Stopping X Programs</h3>
 
8071
 
 
8072
   <p>If your program is a modal X application, <small>DDD</small> may interrupt it
 
8073
while it has grabbed the mouse pointer, making further interaction
 
8074
impossible--your X display will be unresponsive to any user actions.
 
8075
 
 
8076
   <p>By default, <small>DDD</small> will check after each interaction whether the
 
8077
pointer is grabbed.  If the pointer is grabbed, <small>DDD</small> will
 
8078
continue the debugged program such that you can continue to use your X
 
8079
display.
 
8080
 
 
8081
   <p>This is how this feature works: When the program stops, <small>DDD</small>
 
8082
checks for input events such as keyboard or mouse interaction.  If
 
8083
<small>DDD</small> does not receive any event within the next 5 seconds,
 
8084
<small>DDD</small> checks whether the mouse pointer is grabbed by attempting to
 
8085
grab and ungrab it.  If this attempt fails, then <small>DDD</small> considers
 
8086
the pointer grabbed.
 
8087
 
 
8088
   <p>Unfortunately, <small>DDD</small> cannot determine the program that grabbed the
 
8089
pointer--it may be the debugged program, or another program. 
 
8090
Consequently, you have another 10 seconds to cancel continuation before
 
8091
<small>DDD</small> continues the program automatically.
 
8092
 
 
8093
   <p>There is one situation where this fails: if you lock your X display
 
8094
while <small>DDD</small> is running, then <small>DDD</small> will consider a resulting pointer
 
8095
grab as a result of running the program--and automatically continue
 
8096
execution of the debugged program.  Consequently, you can turn off this
 
8097
feature via <code>Edit =&gt; Preferences =&gt; General =&gt;
 
8098
Continue Automatically when Mouse Pointer is Frozen</code>.
 
8099
 
 
8100
<ul class="menu">
 
8101
<li><a accesskey="1" href="#Customizing%20Grab%20Checking">Customizing Grab Checking</a>: 
 
8102
</ul>
 
8103
 
 
8104
<div class="node">
 
8105
<p><hr>
 
8106
<small class=header>
 
8107
Node:<a name="Customizing%20Grab%20Checking">Customizing Grab Checking</a>,
 
8108
Up:<a rel="up" accesskey="u" href="#Stopping%20X%20Programs">Stopping X Programs</a>
 
8109
</small>
 
8110
 
 
8111
<br>
 
8112
</div>
 
8113
 
 
8114
<h4 class="subsection">Customizing Grab Checking</h4>
 
8115
 
 
8116
   <p>The grab checks are controlled by the following resources:
 
8117
 
 
8118
<p>
 
8119
<table width="100%">
 
8120
<tr>
 
8121
<td align="left"><b>checkGrabs</b><i> </i>(<i>class CheckGrabs</i>)<i>
 
8122
     </i></td>
 
8123
<td align="right">Resource</td>
 
8124
</tr>
 
8125
</table>
 
8126
<table width="95%" align="center">
 
8127
<tr><td>
 
8128
If this is <code>on</code> (default), <small>DDD</small> will check after each
 
8129
interaction whether the pointer is grabbed.  If this is so, <small>DDD</small>
 
8130
will automatically continue execution of debugged program. 
 
8131
</td></tr>
 
8132
</table>
 
8133
 
 
8134
<p>
 
8135
<table width="100%">
 
8136
<tr>
 
8137
<td align="left"><b>checkGrabDelay</b><i> </i>(<i>class CheckGrabDelay</i>)<i>
 
8138
     </i></td>
 
8139
<td align="right">Resource</td>
 
8140
</tr>
 
8141
</table>
 
8142
<table width="95%" align="center">
 
8143
<tr><td>
 
8144
The time to wait (in ms) after a debugger command before checking for a
 
8145
grabbed pointer.  If <small>DDD</small> sees some pointer event within this
 
8146
delay, the pointer cannot be grabbed and an explicit check for a grabbed
 
8147
pointer is unnecessary.  Default is <code>5000</code>, or 5 seconds. 
 
8148
</td></tr>
 
8149
</table>
 
8150
 
 
8151
<p>
 
8152
<table width="100%">
 
8153
<tr>
 
8154
<td align="left"><b>grabAction</b><i> </i>(<i>class grabAction</i>)<i>
 
8155
     </i></td>
 
8156
<td align="right">Resource</td>
 
8157
</tr>
 
8158
</table>
 
8159
<table width="95%" align="center">
 
8160
<tr><td>
 
8161
The action to take after having detected a grabbed mouse pointer. 
 
8162
This is a list of newline-separated commands.  Default is
 
8163
<code>cont</code>, meaning to continue the debuggee.  Other possible
 
8164
choices include <code>kill</code> (killing the debuggee) or <code>quit</code>
 
8165
(exiting <small>DDD</small>). 
 
8166
</td></tr>
 
8167
</table>
 
8168
 
 
8169
<p>
 
8170
<table width="100%">
 
8171
<tr>
 
8172
<td align="left"><b>grabActionDelay</b><i> </i>(<i>class grabActionDelay</i>)<i>
 
8173
     </i></td>
 
8174
<td align="right">Resource</td>
 
8175
</tr>
 
8176
</table>
 
8177
<table width="95%" align="center">
 
8178
<tr><td>
 
8179
The time to wait (in ms) before taking an action due to having
 
8180
detected a grabbed pointer.  During this delay, a working dialog pops
 
8181
up telling the user about imminent execution of the grab action (see
 
8182
the <code>grabAction</code> resource, above).  If the pointer grab is
 
8183
released within this delay, the working dialog pops down and no action
 
8184
is taken.  This is done to exclude pointer grabs from sources other
 
8185
than the debugged program (including <small>DDD</small>).  Default is
 
8186
<code>10000</code>, or 10 seconds. 
 
8187
</td></tr>
 
8188
</table>
 
8189
 
 
8190
<div class="node">
 
8191
<p><hr>
 
8192
<small class=header>
 
8193
Node:<a name="Running">Running</a>,
 
8194
Next:<a rel="next" accesskey="n" href="#Examining%20Data">Examining Data</a>,
 
8195
Previous:<a rel="previous" accesskey="p" href="#Stopping">Stopping</a>,
 
8196
Up:<a rel="up" accesskey="u" href="#Top">Top</a>
 
8197
</small>
 
8198
 
 
8199
<br>
 
8200
</div>
 
8201
 
 
8202
<h2 class="chapter">Running the Program</h2>
 
8203
 
 
8204
   <p>You may start the debugged program with its arguments, if any, in an
 
8205
environment of your choice.  You may redirect your program's input and
 
8206
output, debug an already running process, or kill a child process.
 
8207
 
 
8208
<ul class="menu">
 
8209
<li><a accesskey="1" href="#Starting%20Program%20Execution">Starting Program Execution</a>: 
 
8210
<li><a accesskey="2" href="#Using%20the%20Execution%20Window">Using the Execution Window</a>: 
 
8211
<li><a accesskey="3" href="#Attaching%20to%20a%20Process">Attaching to a Process</a>: 
 
8212
<li><a accesskey="4" href="#Program%20Stop">Program Stop</a>: 
 
8213
<li><a accesskey="5" href="#Resuming%20Execution">Resuming Execution</a>: 
 
8214
<li><a accesskey="6" href="#Continuing%20Somewhere%20Else">Continuing Somewhere Else</a>: 
 
8215
<li><a accesskey="7" href="#Stack">Stack</a>: 
 
8216
<li><a accesskey="8" href="#Undoing%20Program%20Execution">Undoing Program Execution</a>: 
 
8217
<li><a accesskey="9" href="#Threads">Threads</a>: 
 
8218
<li><a href="#Signals">Signals</a>: 
 
8219
<li><a href="#Killing%20the%20Program">Killing the Program</a>: 
 
8220
</ul>
 
8221
 
 
8222
<div class="node">
 
8223
<p><hr>
 
8224
<small class=header>
 
8225
Node:<a name="Starting%20Program%20Execution">Starting Program Execution</a>,
 
8226
Next:<a rel="next" accesskey="n" href="#Using%20the%20Execution%20Window">Using the Execution Window</a>,
 
8227
Up:<a rel="up" accesskey="u" href="#Running">Running</a>
 
8228
</small>
 
8229
 
 
8230
<br>
 
8231
</div>
 
8232
 
 
8233
<h3 class="section">Starting Program Execution</h3>
 
8234
 
 
8235
   <p>To start execution of the debugged program, select <code>Program
 
8236
=&gt; Run</code>.  You will then be prompted for the arguments to pass to
 
8237
your program.  You can either select from a list of previously used
 
8238
arguments or enter own arguments in the text field.  Afterwards, press
 
8239
the <code>Run</code> button to start execution with the selected arguments.
 
8240
 
 
8241
<br><p>
 
8242
<div align="center"><img src="PICS/ddd-arguments.jpg" alt="PICS/ddd-arguments.jpg"></div>
 
8243
<br><p>
 
8244
   <p>To run your program again, with the same arguments, select <code>Program
 
8245
=&gt; Run Again</code> or press the <code>Run</code> button on the command tool. 
 
8246
You may also enter <code>run</code>, followed by arguments at the debugger
 
8247
prompt instead.
 
8248
 
 
8249
   <p>When you click on <code>Run</code>, your program begins to execute
 
8250
immediately.  See <a href="#Stopping">Stopping</a>, for a discussion of how to arrange for
 
8251
your program to stop.  Once your program has stopped, you may call
 
8252
functions in your program to examine data.  See <a href="#Examining%20Data">Examining Data</a>, for
 
8253
details.
 
8254
 
 
8255
   <p>If the modification time of your symbol file has changed since the last
 
8256
time <small>GDB</small> read its symbols, <small>GDB</small> discards its symbol table, and reads it
 
8257
again.  When it does this, <small>GDB</small> and <small>DDD</small> try to retain your
 
8258
current debugger state, such as breakpoints.
 
8259
 
 
8260
<ul class="menu">
 
8261
<li><a accesskey="1" href="#Arguments">Arguments</a>:                    Your program's arguments. 
 
8262
<li><a accesskey="2" href="#Environment">Environment</a>:                  Your program's environment. 
 
8263
<li><a accesskey="3" href="#Working%20Directory">Working Directory</a>:            Your program's directory. 
 
8264
<li><a accesskey="4" href="#Input%2fOutput">Input/Output</a>:                 Your program's I/O. 
 
8265
</ul>
 
8266
 
 
8267
<div class="node">
 
8268
<p><hr>
 
8269
<small class=header>
 
8270
Node:<a name="Arguments">Arguments</a>,
 
8271
Next:<a rel="next" accesskey="n" href="#Environment">Environment</a>,
 
8272
Up:<a rel="up" accesskey="u" href="#Starting%20Program%20Execution">Starting Program Execution</a>
 
8273
</small>
 
8274
 
 
8275
<br>
 
8276
</div>
 
8277
 
 
8278
<h4 class="subsection">Your Program's Arguments</h4>
 
8279
 
 
8280
   <p>The arguments to your program are specified by the arguments of the
 
8281
<code>run</code> command, as composed in <code>Program =&gt; Run</code>.
 
8282
 
 
8283
   <p>In <small>GDB</small>, the arguments are passed to a shell, which expands wildcard
 
8284
characters and performs redirection of I/O, and thence to your program. 
 
8285
Your <code>SHELL</code> environment variable (if it exists) specifies what
 
8286
shell <small>GDB</small> uses.  If you do not define <code>SHELL</code>, <small>GDB</small> uses
 
8287
<code>/bin/sh</code>.
 
8288
 
 
8289
   <p>If you use another inferior debugger, the exact semantics on how the
 
8290
arguments are interpreted depend on the inferior debugger you are using. 
 
8291
Normally, the shell is used to pass the arguments, so that you may use
 
8292
normal conventions (such as wildcard expansion or variable substitution)
 
8293
in describing the arguments.
 
8294
 
 
8295
<div class="node">
 
8296
<p><hr>
 
8297
<small class=header>
 
8298
Node:<a name="Environment">Environment</a>,
 
8299
Next:<a rel="next" accesskey="n" href="#Working%20Directory">Working Directory</a>,
 
8300
Previous:<a rel="previous" accesskey="p" href="#Arguments">Arguments</a>,
 
8301
Up:<a rel="up" accesskey="u" href="#Starting%20Program%20Execution">Starting Program Execution</a>
 
8302
</small>
 
8303
 
 
8304
<br>
 
8305
</div>
 
8306
 
 
8307
<h4 class="subsection">Your Program's Environment</h4>
 
8308
 
 
8309
   <p>Your program normally inherits its environment from the inferior
 
8310
debugger, which again inherits it from <small>DDD</small>, which again inherits
 
8311
it from its parent process (typically the shell or desktop).
 
8312
 
 
8313
   <p>In <small>GDB</small>, you can use the commands <code>set environment</code> and
 
8314
<code>unset environment</code> to change parts of the environment that
 
8315
affect your program.  See <a href="gdb.html#Your%20program's%20environment">Your program's environment</a>,
 
8316
for details.
 
8317
 
 
8318
   <p>The following environment variables are set by <small>DDD</small>:
 
8319
 
 
8320
     <dl>
 
8321
<dt><code>DDD</code>
 
8322
     <dd>Set to a string indicating the <small>DDD</small> version.  By testing
 
8323
whether <code>DDD</code> is set, a debuggee (or inferior debugger) can
 
8324
determine whether it was invoked by <small>DDD</small>.
 
8325
 
 
8326
     <br><dt><code>TERM</code>
 
8327
     <dd>Set to <code>dumb</code>, the <small>DDD</small> terminal type.  This is set for the
 
8328
inferior debugger only.<a rel="footnote" href="#fn-20"><sup>20</sup></a>
 
8329
 
 
8330
     <br><dt><code>TERMCAP</code>
 
8331
     <dd>Set to `' (none), the <small>DDD</small> terminal capabilities.
 
8332
 
 
8333
     <br><dt><code>PAGER</code>
 
8334
     <dd>Set to <code>cat</code>, the preferred <small>DDD</small> pager. 
 
8335
</dl>
 
8336
 
 
8337
   <p>The inferior debugger, in turn, might also set or unset some environment
 
8338
variables.
 
8339
 
 
8340
<div class="node">
 
8341
<p><hr>
 
8342
<small class=header>
 
8343
Node:<a name="Working%20Directory">Working Directory</a>,
 
8344
Next:<a rel="next" accesskey="n" href="#Input%2fOutput">Input/Output</a>,
 
8345
Previous:<a rel="previous" accesskey="p" href="#Environment">Environment</a>,
 
8346
Up:<a rel="up" accesskey="u" href="#Starting%20Program%20Execution">Starting Program Execution</a>
 
8347
</small>
 
8348
 
 
8349
<br>
 
8350
</div>
 
8351
 
 
8352
<h4 class="subsection">Your Program's Working Directory</h4>
 
8353
 
 
8354
   <p>Your program normally inherits its working directory from the inferior
 
8355
debugger, which again inherits it from <small>DDD</small>, which again inherits
 
8356
it from its parent process (typically the shell or desktop).
 
8357
 
 
8358
   <p>You can change the working directory of the inferior debugger via
 
8359
<code>File =&gt; Change Directory</code> or via the <code>cd</code> command of
 
8360
the inferior debugger.
 
8361
 
 
8362
<div class="node">
 
8363
<p><hr>
 
8364
<small class=header>
 
8365
Node:<a name="Input%2fOutput">Input/Output</a>,
 
8366
Previous:<a rel="previous" accesskey="p" href="#Working%20Directory">Working Directory</a>,
 
8367
Up:<a rel="up" accesskey="u" href="#Starting%20Program%20Execution">Starting Program Execution</a>
 
8368
</small>
 
8369
 
 
8370
<br>
 
8371
</div>
 
8372
 
 
8373
<h4 class="subsection">Your Program's Input and Output</h4>
 
8374
 
 
8375
   <p>By default, the program you run under <small>DDD</small> does input and output to
 
8376
the debugger console.  Normally, you can redirect your program's input
 
8377
and/or output using <dfn>shell redirections</dfn> with the arguments--that
 
8378
is, additional arguments like <code>&lt; </code><var>input</var><code></code> or <code>&gt;
 
8379
</code><var>output</var><code></code>.  You can enter these shell redirections just like other
 
8380
arguments (see <a href="#Arguments">Arguments</a>).
 
8381
 
 
8382
   <p><em>Warning:</em> While input and output redirection work, you cannot use
 
8383
pipes to pass the output of the program you are debugging to another
 
8384
program; if you attempt this, <small>DDD</small> may wind up debugging the wrong
 
8385
program.  See <a href="#Attaching%20to%20a%20Process">Attaching to a Process</a>, for an alternative.
 
8386
 
 
8387
   <p>If command output is sent to the debugger console, it is impossible for
 
8388
<small>DDD</small> to distinguish between the output of the debugged program
 
8389
and the output of the inferior debugger.
 
8390
 
 
8391
   <p>Program output that confuses <small>DDD</small> includes:
 
8392
 
 
8393
     <ul>
 
8394
<li>Primary debugger prompts (e.g. <code>(gdb) </code>, <code>(dbx) </code> or
 
8395
<code>(ladebug) </code>)
 
8396
 
 
8397
     <li>Secondary debugger prompts (e.g. <code>&gt;</code>)
 
8398
 
 
8399
     <li>Confirmation prompts (e.g. <code>(y or n) </code>)
 
8400
 
 
8401
     <li>Prompts for more output (e.g. <code>Press RETURN to continue</code>)
 
8402
 
 
8403
     <li>Display output (e.g. <code>$pc = 0x1234</code>)
 
8404
</ul>
 
8405
 
 
8406
   <p>If your program outputs any of these strings, you may encounter problems
 
8407
with <small>DDD</small> mistaking them for debugger output.  These problems can
 
8408
easily be avoided by redirecting program I/O, for instance to the
 
8409
separate execution window (see <a href="#Using%20the%20Execution%20Window">Using the Execution Window</a>).
 
8410
 
 
8411
   <p>If the inferior debugger changes the default <small>TTY</small> settings, for
 
8412
instance through a <code>stty</code> command in its initialization file,
 
8413
<small>DDD</small> may also become confused.  The same applies to debugged programs
 
8414
which change the default <small>TTY</small> settings.
 
8415
 
 
8416
   <p>The behavior of the debugger console can be controlled using the
 
8417
following resource:
 
8418
 
 
8419
<p>
 
8420
<table width="100%">
 
8421
<tr>
 
8422
<td align="left"><b>lineBufferedConsole</b><i> </i>(<i>class LineBuffered</i>)<i>
 
8423
     </i></td>
 
8424
<td align="right">Resource</td>
 
8425
</tr>
 
8426
</table>
 
8427
<table width="95%" align="center">
 
8428
<tr><td>
 
8429
If this is <code>on</code> (default), each line from the inferior debugger is
 
8430
output on each own, such that the final line is placed at the bottom of
 
8431
the debugger console.  If this is <code>off</code>, all lines are output as a
 
8432
whole.  This is faster, but results in a random position of the last
 
8433
line. 
 
8434
</td></tr>
 
8435
</table>
 
8436
 
 
8437
<div class="node">
 
8438
<p><hr>
 
8439
<small class=header>
 
8440
Node:<a name="Using%20the%20Execution%20Window">Using the Execution Window</a>,
 
8441
Next:<a rel="next" accesskey="n" href="#Attaching%20to%20a%20Process">Attaching to a Process</a>,
 
8442
Previous:<a rel="previous" accesskey="p" href="#Starting%20Program%20Execution">Starting Program Execution</a>,
 
8443
Up:<a rel="up" accesskey="u" href="#Running">Running</a>
 
8444
</small>
 
8445
 
 
8446
<br>
 
8447
</div>
 
8448
 
 
8449
<h3 class="section">Using the Execution Window</h3>
 
8450
 
 
8451
   <p>By default, input and output of your program go to the debugger console. 
 
8452
As an alternative, <small>DDD</small> can also invoke an <dfn>execution
 
8453
window</dfn>, where the program terminal input and output is
 
8454
shown.<a rel="footnote" href="#fn-21"><sup>21</sup></a>
 
8455
 
 
8456
   <p>To activate the execution window, select <code>Program =&gt; Run in
 
8457
Execution Window</code>.
 
8458
 
 
8459
   <p>Using the execution window has an important side effect: The output of
 
8460
your program no longer gets intermixed with the output of the inferior
 
8461
debugger.  This makes it far easier for <small>DDD</small> to parse the debugger
 
8462
output correctly.  See <a href="#Debugger%20Communication">Debugger Communication</a>, for details on the
 
8463
<code>bufferGDBOutput</code> resource.
 
8464
 
 
8465
   <p>The execution window is opened automatically as soon as you start the
 
8466
debugged program.  While the execution window is active, <small>DDD</small>
 
8467
redirects the standard input, output, and error streams of your program
 
8468
to the execution window.  Note that the device <code>/dev/tty</code> still
 
8469
refers to the debugger console, <em>not</em> the execution window.
 
8470
 
 
8471
   <p>You can override the <small>DDD</small> stream redirection by giving alternate
 
8472
redirection operations as arguments.  For instance, to have your program
 
8473
read from <var>file</var>, but to write to the execution window, invoke your
 
8474
program with <code>&lt; </code><var>file</var><code></code> as argument.  Likewise, to redirect the
 
8475
standard error output to the debugger console, use <code>2&gt; /dev/tty</code>
 
8476
(assuming the inferior debugger and/or your <small>UNIX</small> shell support standard
 
8477
error redirection).
 
8478
 
 
8479
<ul class="menu">
 
8480
<li><a accesskey="1" href="#Customizing%20the%20Execution%20Window">Customizing the Execution Window</a>: 
 
8481
</ul>
 
8482
 
 
8483
<div class="node">
 
8484
<p><hr>
 
8485
<small class=header>
 
8486
Node:<a name="Customizing%20the%20Execution%20Window">Customizing the Execution Window</a>,
 
8487
Up:<a rel="up" accesskey="u" href="#Using%20the%20Execution%20Window">Using the Execution Window</a>
 
8488
</small>
 
8489
 
 
8490
<br>
 
8491
</div>
 
8492
 
 
8493
<h4 class="subsection">Customizing the Execution Window</h4>
 
8494
 
 
8495
   <p>You can customize the <small>DDD</small> execution window and use a different
 
8496
<small>TTY</small> command.  The command is set by <code>Edit =&gt;
 
8497
Preferences =&gt; Helpers =&gt; Execution Window</code>:
 
8498
 
 
8499
<p>
 
8500
<table width="100%">
 
8501
<tr>
 
8502
<td align="left"><b>termCommand</b><i> </i>(<i>class TermCommand</i>)<i>
 
8503
     </i></td>
 
8504
<td align="right">Resource</td>
 
8505
</tr>
 
8506
</table>
 
8507
<table width="95%" align="center">
 
8508
<tr><td>
 
8509
The command to invoke for the execution window--a <small>TTY</small>
 
8510
emulator that shows the input/output of the debugged program.  A Bourne
 
8511
shell command to run in the separate <small>TTY</small> is appended to this
 
8512
string.  The string <code>@FONT@</code> is replaced by the name of the fixed
 
8513
width font used by <small>DDD</small>.  A simple value is
 
8514
 
 
8515
     <pre class="example">          Ddd*termCommand: xterm -fn @FONT@ -e /bin/sh -c
 
8516
          </pre>
 
8517
     </td></tr>
 
8518
</table>
 
8519
 
 
8520
   <p>You can also set the terminal type:
 
8521
 
 
8522
<p>
 
8523
<table width="100%">
 
8524
<tr>
 
8525
<td align="left"><b>termType</b><i> </i>(<i>class TermType</i>)<i>
 
8526
     </i></td>
 
8527
<td align="right">Resource</td>
 
8528
</tr>
 
8529
</table>
 
8530
<table width="95%" align="center">
 
8531
<tr><td>
 
8532
The terminal type provided by the <code>termCommand</code> resource--that is,
 
8533
the value of the <code>TERM</code> environment variable to be passed to the
 
8534
debugged program.  Default: <code>xterm</code>. 
 
8535
</td></tr>
 
8536
</table>
 
8537
 
 
8538
   <p>Whether the execution window is active or not, as set by <code>Program
 
8539
=&gt; Run in Execution Window</code>, is saved using this resource:
 
8540
 
 
8541
<p>
 
8542
<table width="100%">
 
8543
<tr>
 
8544
<td align="left"><b>separateExecWindow</b><i> </i>(<i>class Separate</i>)<i>
 
8545
     </i></td>
 
8546
<td align="right">Resource</td>
 
8547
</tr>
 
8548
</table>
 
8549
<table width="95%" align="center">
 
8550
<tr><td>
 
8551
If <code>on</code>, the debugged program is executed in a separate
 
8552
execution window.  If <code>off</code> (default), the debugged program is
 
8553
executed in the console window. 
 
8554
</td></tr>
 
8555
</table>
 
8556
 
 
8557
<div class="node">
 
8558
<p><hr>
 
8559
<small class=header>
 
8560
Node:<a name="Attaching%20to%20a%20Process">Attaching to a Process</a>,
 
8561
Next:<a rel="next" accesskey="n" href="#Program%20Stop">Program Stop</a>,
 
8562
Previous:<a rel="previous" accesskey="p" href="#Using%20the%20Execution%20Window">Using the Execution Window</a>,
 
8563
Up:<a rel="up" accesskey="u" href="#Running">Running</a>
 
8564
</small>
 
8565
 
 
8566
<br>
 
8567
</div>
 
8568
 
 
8569
<h3 class="section">Attaching to a Running Process</h3>
 
8570
 
 
8571
   <p>If the debugged program is already running in some process, you can
 
8572
<dfn>attach</dfn> to this process (instead of starting a new one with
 
8573
<code>Run</code>).<a rel="footnote" href="#fn-22"><sup>22</sup></a>
 
8574
 
 
8575
   <p>To attach <small>DDD</small> to a process, select <code>File =&gt; Attach
 
8576
to Process</code>.  You can now choose from a list of processes.  Then, press
 
8577
the <code>Attach</code> button to attach to the specified process.
 
8578
 
 
8579
<br><p>
 
8580
<div align="center"><img src="PICS/ddd-attach.jpg" alt="PICS/ddd-attach.jpg"></div>
 
8581
<br><p>
 
8582
   <p>The first thing <small>DDD</small> does after arranging to debug the specified
 
8583
process is to stop it. You can examine and modify an attached process
 
8584
with all the <small>DDD</small> commands that are ordinarily available when you
 
8585
start processes with <code>Run</code>. You can insert breakpoints; you can
 
8586
step and continue; you can modify storage. If you would rather the
 
8587
process continue running, you may use <code>Continue</code> after attaching
 
8588
<small>DDD</small> to the process.
 
8589
 
 
8590
   <p>When using <code>Attach to Process</code>, you should first use <code>Open
 
8591
Program</code> to specify the program running in the process and load its
 
8592
symbol table.
 
8593
 
 
8594
   <p>When you have finished debugging the attached process, you can use the
 
8595
<code>File =&gt; Detach Process</code> to release it from <small>DDD</small>
 
8596
control.  Detaching the process continues its execution.  After
 
8597
<code>Detach Process</code>, that process and <small>DDD</small> become
 
8598
completely independent once more, and you are ready to attach another
 
8599
process or start one with <code>Run</code>.
 
8600
 
 
8601
   <p>You can customize the list of processes shown by defining an alternate
 
8602
command to list processes.  See <code>Edit =&gt; Preferences
 
8603
=&gt; Helpers =&gt; List Processes</code>; See <a href="#Customizing%20Attaching%20to%20Processes">Customizing Attaching to Processes</a>, for details.
 
8604
 
 
8605
<ul class="menu">
 
8606
<li><a accesskey="1" href="#Customizing%20Attaching%20to%20Processes">Customizing Attaching to Processes</a>: 
 
8607
</ul>
 
8608
 
 
8609
<div class="node">
 
8610
<p><hr>
 
8611
<small class=header>
 
8612
Node:<a name="Customizing%20Attaching%20to%20Processes">Customizing Attaching to Processes</a>,
 
8613
Up:<a rel="up" accesskey="u" href="#Attaching%20to%20a%20Process">Attaching to a Process</a>
 
8614
</small>
 
8615
 
 
8616
<br>
 
8617
</div>
 
8618
 
 
8619
<h4 class="subsection">Customizing Attaching to Processes</h4>
 
8620
 
 
8621
   <p>When attaching to a process (see <a href="#Attaching%20to%20a%20Process">Attaching to a Process</a>),
 
8622
<small>DDD</small> uses a <code>ps</code> command to get the list of processes.  This
 
8623
command is defined by the <code>psCommand</code> resource.
 
8624
 
 
8625
<p>
 
8626
<table width="100%">
 
8627
<tr>
 
8628
<td align="left"><b>psCommand</b><i> </i>(<i>class PsCommand</i>)<i>
 
8629
     </i></td>
 
8630
<td align="right">Resource</td>
 
8631
</tr>
 
8632
</table>
 
8633
<table width="95%" align="center">
 
8634
<tr><td>
 
8635
The command to get a list of processes.  Usually <code>ps</code>.  Depending
 
8636
on your system, useful alternate values include <code>ps -ef</code> and
 
8637
<code>ps ux</code>.  The first line of the output must either contain a
 
8638
<code>PID</code> title, or each line must begin with a process ID.
 
8639
 
 
8640
     <p>Note that the output of this command is filtered by <small>DDD</small>; a
 
8641
process is only shown if it can be attached to.  The <small>DDD</small>
 
8642
process itself as well as the process of the inferior debugger are
 
8643
suppressed, too. 
 
8644
</td></tr>
 
8645
</table>
 
8646
 
 
8647
<div class="node">
 
8648
<p><hr>
 
8649
<small class=header>
 
8650
Node:<a name="Program%20Stop">Program Stop</a>,
 
8651
Next:<a rel="next" accesskey="n" href="#Resuming%20Execution">Resuming Execution</a>,
 
8652
Previous:<a rel="previous" accesskey="p" href="#Attaching%20to%20a%20Process">Attaching to a Process</a>,
 
8653
Up:<a rel="up" accesskey="u" href="#Running">Running</a>
 
8654
</small>
 
8655
 
 
8656
<br>
 
8657
</div>
 
8658
 
 
8659
<h3 class="section">Program Stops</h3>
 
8660
 
 
8661
   <p>After the program has been started, it runs until one of the following
 
8662
happens:
 
8663
 
 
8664
     <ul>
 
8665
<li>A breakpoint is reached (see <a href="#Breakpoints">Breakpoints</a>).
 
8666
 
 
8667
     <li>A watched value changes (see <a href="#Watchpoints">Watchpoints</a>).
 
8668
 
 
8669
     <li>The program is interrupted (see <a href="#Interrupting">Interrupting</a>).
 
8670
 
 
8671
     <li>A signal is received (see <a href="#Signals">Signals</a>).
 
8672
 
 
8673
     <li>Execution completes. 
 
8674
</ul>
 
8675
 
 
8676
   <p><small>DDD</small> shows the current program status in the debugger console. 
 
8677
The current execution position is highlighted by an arrow.
 
8678
 
 
8679
   <p>If <code>Edit =&gt; Preferences =&gt; General =&gt;
 
8680
Uniconify When Ready</code> is set, <small>DDD</small> automatically deiconifies
 
8681
itself when the program stops.  This way, you can iconify <small>DDD</small>
 
8682
during a lengthy computation and have it uniconify as soon as the
 
8683
program stops.
 
8684
 
 
8685
<div class="node">
 
8686
<p><hr>
 
8687
<small class=header>
 
8688
Node:<a name="Resuming%20Execution">Resuming Execution</a>,
 
8689
Next:<a rel="next" accesskey="n" href="#Continuing%20Somewhere%20Else">Continuing Somewhere Else</a>,
 
8690
Previous:<a rel="previous" accesskey="p" href="#Program%20Stop">Program Stop</a>,
 
8691
Up:<a rel="up" accesskey="u" href="#Running">Running</a>
 
8692
</small>
 
8693
 
 
8694
<br>
 
8695
</div>
 
8696
 
 
8697
<h3 class="section">Resuming Execution</h3>
 
8698
 
 
8699
<h4 class="subsection">Continuing</h4>
 
8700
 
 
8701
   <p>To resume execution, at the current execution position, click on the
 
8702
<code>Continue</code> button.  Any breakpoints set at the current execution
 
8703
position are bypassed.
 
8704
 
 
8705
<h4 class="subsection">Stepping one Line</h4>
 
8706
 
 
8707
   <p>To execute just one source line, click on the <code>Step</code> button.  The
 
8708
program is executed until control reaches a different source line, which
 
8709
may be in a different function.  Then, the program is stopped and
 
8710
control returns to <small>DDD</small>.
 
8711
 
 
8712
   <p><em>Warning</em>: If you use the <code>Step</code> button while control is
 
8713
within a function that was compiled without debugging information,
 
8714
execution proceeds until control reaches a function that does have
 
8715
debugging information.  Likewise, it will not step into a function which
 
8716
is compiled without debugging information.  To step through functions
 
8717
without debugging information, use the <code>Stepi</code> button
 
8718
(see <a href="#Machine%20Code%20Execution">Machine Code Execution</a>).
 
8719
 
 
8720
   <p>In <small>GDB</small>, the <code>Step</code> button only stops at the first instruction of a
 
8721
source line.  This prevents the multiple stops that used to occur in
 
8722
switch statements, for loops, etc.  <code>Step</code> continues to stop if a
 
8723
function that has debugging information is called within the line.
 
8724
 
 
8725
   <p>Also, the <code>Step</code> in <small>GDB</small> only enters a subroutine if there is line
 
8726
number information for the subroutine.  Otherwise it acts like the
 
8727
<code>Next</code> button.
 
8728
 
 
8729
<h4 class="subsection">Continuing to the Next Line</h4>
 
8730
 
 
8731
   <p>To continue to the next line in the current function, click on the
 
8732
<code>Next</code> button.  This is similar to <code>Step</code>, but any function
 
8733
calls appearing within the line of code are executed without stopping.
 
8734
 
 
8735
   <p>Execution stops when control reaches a different line of code at the
 
8736
original stack level that was executing when you clicked on <code>Next</code>.
 
8737
 
 
8738
<h4 class="subsection">Continuing Until Here</h4>
 
8739
 
 
8740
   <p>To continue running until a specific location is reached, use the
 
8741
<code>Continue Until Here</code> facility from the line popup menu. 
 
8742
See <a href="#Temporary%20Breakpoints">Temporary Breakpoints</a>, for a discussion.
 
8743
 
 
8744
<h4 class="subsection">Continuing Until a Greater Line is Reached</h4>
 
8745
 
 
8746
   <p>To continue until a greater line in the current function is reached,
 
8747
click on the <code>Until</code> button.  This is useful to avoid single
 
8748
stepping through a loop more than once.
 
8749
 
 
8750
   <p><code>Until</code> is like <code>Next</code>, except that when <code>Until</code>
 
8751
encounters a jump, it automatically continues execution until the
 
8752
program counter is greater than the address of the jump.
 
8753
 
 
8754
   <p>This means that when you reach the end of a loop after single stepping
 
8755
though it, <code>until</code> makes your program continue execution until it
 
8756
exits the loop.  In contrast, clicking on <code>Next</code> at the end of a
 
8757
loop simply steps back to the beginning of the loop, which forces you to
 
8758
step through the next iteration.
 
8759
 
 
8760
   <p><code>Until</code> always stops your program if it attempts to exit the
 
8761
current stack frame.
 
8762
 
 
8763
   <p><code>Until</code> works by means of single instruction stepping, and hence is
 
8764
slower than continuing until a breakpoint is reached.
 
8765
 
 
8766
<h4 class="subsection">Continuing Until Function Returns</h4>
 
8767
 
 
8768
   <p>To continue running until the current function returns, use the
 
8769
<code>Finish</code> button.  The returned value (if any) is printed.
 
8770
 
 
8771
<div class="node">
 
8772
<p><hr>
 
8773
<small class=header>
 
8774
Node:<a name="Continuing%20Somewhere%20Else">Continuing Somewhere Else</a>,
 
8775
Next:<a rel="next" accesskey="n" href="#Stack">Stack</a>,
 
8776
Previous:<a rel="previous" accesskey="p" href="#Resuming%20Execution">Resuming Execution</a>,
 
8777
Up:<a rel="up" accesskey="u" href="#Running">Running</a>
 
8778
</small>
 
8779
 
 
8780
<br>
 
8781
</div>
 
8782
 
 
8783
<h3 class="section">Continuing at a Different Address</h3>
 
8784
 
 
8785
   <p>Ordinarily, when you continue your program, you do so at the place where
 
8786
it stopped.  You can instead continue at an address of your own
 
8787
choosing.
 
8788
 
 
8789
   <p>The most common occasion to use this feature is to back up--perhaps
 
8790
with more breakpoints set-over a portion of a program that has already
 
8791
executed, in order to examine its execution in more detail.
 
8792
 
 
8793
   <p>To set the execution position to the current location, use <code>Set
 
8794
Execution Position</code> from the breakpoint popup menu.  This item is also
 
8795
accessible by pressing and holding the <code>Break/Clear</code>
 
8796
button.<a rel="footnote" href="#fn-23"><sup>23</sup></a>
 
8797
 
 
8798
   <p>As a quicker alternative, you can also press <em>mouse button 1</em> on
 
8799
the arrow and drag it to a different location.<a rel="footnote" href="#fn-24"><sup>24</sup></a>
 
8800
 
 
8801
<br><p>
 
8802
<div align="center"><img src="PICS/ddd-drag.jpg" alt="PICS/ddd-drag.jpg"></div>
 
8803
<br><p>
 
8804
   <p>Moving the execution position does not change the current stack frame,
 
8805
or the stack pointer, or the contents of any memory location or any
 
8806
register other than the program counter.
 
8807
 
 
8808
   <p>Some inferior debuggers (notably <small>GDB</small>) allow you to set the new execution
 
8809
position into a different function from the one currently executing. 
 
8810
This may lead to bizarre results if the two functions expect different
 
8811
patterns of arguments or of local variables.  For this reason, moving
 
8812
the execution position requests confirmation if the specified line is
 
8813
not in the function currently executing.
 
8814
 
 
8815
   <p>After moving the execution position, click on <code>Continue</code> to resume
 
8816
execution.
 
8817
 
 
8818
<div class="node">
 
8819
<p><hr>
 
8820
<small class=header>
 
8821
Node:<a name="Stack">Stack</a>,
 
8822
Next:<a rel="next" accesskey="n" href="#Undoing%20Program%20Execution">Undoing Program Execution</a>,
 
8823
Previous:<a rel="previous" accesskey="p" href="#Continuing%20Somewhere%20Else">Continuing Somewhere Else</a>,
 
8824
Up:<a rel="up" accesskey="u" href="#Running">Running</a>
 
8825
</small>
 
8826
 
 
8827
<br>
 
8828
</div>
 
8829
 
 
8830
<h3 class="section">Examining the Stack</h3>
 
8831
 
 
8832
   <p>When your program has stopped, the first thing you need to know is
 
8833
where it stopped and how it got there.
 
8834
 
 
8835
   <p>Each time your program performs a function call, information about the
 
8836
call is generated.  That information includes the location of the call
 
8837
in your program, the arguments of the call, and the local variables of
 
8838
the function being called.  The information is saved in a block of data
 
8839
called a <dfn>stack frame</dfn>.  The stack frames are allocated in a region
 
8840
of memory called the <dfn>call stack</dfn>.
 
8841
 
 
8842
   <p>When your program stops, the <small>DDD</small> commands for examining the
 
8843
stack allow you to see all of this information.
 
8844
 
 
8845
   <p>One of the stack frames is <dfn>selected</dfn> by <small>DDD</small> and many
 
8846
<small>DDD</small> commands refer implicitly to the selected frame.  In
 
8847
particular, whenever you ask <small>DDD</small> for the value of a variable in
 
8848
your program, the value is found in the selected frame.  There are
 
8849
special <small>DDD</small> commands to select whichever frame you are
 
8850
interested in.
 
8851
 
 
8852
<ul class="menu">
 
8853
<li><a accesskey="1" href="#Frames">Frames</a>:                       Callers and callees. 
 
8854
<li><a accesskey="2" href="#Backtraces">Backtraces</a>:                   And you may ask yourself, `how did I get here?' 
 
8855
<li><a accesskey="3" href="#Selecting%20a%20frame">Selecting a frame</a>:            Moving up and down. 
 
8856
</ul>
 
8857
 
 
8858
<div class="node">
 
8859
<p><hr>
 
8860
<small class=header>
 
8861
Node:<a name="Frames">Frames</a>,
 
8862
Next:<a rel="next" accesskey="n" href="#Backtraces">Backtraces</a>,
 
8863
Up:<a rel="up" accesskey="u" href="#Stack">Stack</a>
 
8864
</small>
 
8865
 
 
8866
<br>
 
8867
</div>
 
8868
 
 
8869
<h4 class="subsection">Stack Frames</h4>
 
8870
 
 
8871
   <p>The call stack is divided up into contiguous pieces called <dfn>stack
 
8872
frames</dfn>, or <dfn>frames</dfn> for short; each frame is the data associated
 
8873
with one call to one function.  The frame contains the arguments given
 
8874
to the function, the function's local variables, and the address at
 
8875
which the function is executing.
 
8876
 
 
8877
   <p>When your program is started, the stack has only one frame, that of the
 
8878
function <code>main</code>.  This is called the <dfn>initial</dfn> frame or the
 
8879
<dfn>outermost</dfn> frame.  Each time a function is called, a new frame is
 
8880
made.  Each time a function returns, the frame for that function invocation
 
8881
is eliminated.  If a function is recursive, there can be many frames for
 
8882
the same function.  The frame for the function in which execution is
 
8883
actually occurring is called the <dfn>innermost</dfn> frame.  This is the most
 
8884
recently created of all the stack frames that still exist.
 
8885
 
 
8886
   <p>Inside your program, stack frames are identified by their addresses.  A
 
8887
stack frame consists of many bytes, each of which has its own address; each
 
8888
kind of computer has a convention for choosing one byte whose
 
8889
address serves as the address of the frame.  Usually this address is kept
 
8890
in a register called the <dfn>frame pointer register</dfn> while execution is
 
8891
going on in that frame.
 
8892
 
 
8893
   <p><small>GDB</small> assigns numbers to all existing stack frames, starting with zero for
 
8894
the innermost frame, one for the frame that called it, and so on upward. 
 
8895
These numbers do not really exist in your program; they are assigned by
 
8896
<small>GDB</small> to give you a way of designating stack frames in <small>GDB</small> commands.
 
8897
 
 
8898
<div class="node">
 
8899
<p><hr>
 
8900
<small class=header>
 
8901
Node:<a name="Backtraces">Backtraces</a>,
 
8902
Next:<a rel="next" accesskey="n" href="#Selecting%20a%20frame">Selecting a frame</a>,
 
8903
Previous:<a rel="previous" accesskey="p" href="#Frames">Frames</a>,
 
8904
Up:<a rel="up" accesskey="u" href="#Stack">Stack</a>
 
8905
</small>
 
8906
 
 
8907
<br>
 
8908
</div>
 
8909
 
 
8910
<h4 class="subsection">Backtraces</h4>
 
8911
 
 
8912
   <p><small>DDD</small> provides a <dfn>backtrace window</dfn> showing a summary of how
 
8913
your program got where it is.  It shows one line per frame, for many
 
8914
frames, starting with the currently executing frame (frame zero),
 
8915
followed by its caller (frame one), and on up the stack.
 
8916
 
 
8917
   <p>To enable the backtrace window, select <code>Status =&gt;
 
8918
Backtrace</code>.
 
8919
 
 
8920
<br><p>
 
8921
<div align="center"><img src="PICS/ddd-backtrace.jpg" alt="PICS/ddd-backtrace.jpg"></div>
 
8922
<br><p>
 
8923
   <p>Using <small>GDB</small>, each line in the backtrace shows the frame number and the
 
8924
function name.  The program counter value is also shown--unless you use
 
8925
the <small>GDB</small> command <code>set print address off</code>.  The backtrace also shows
 
8926
the source file name and line number, as well as the arguments to the
 
8927
function.  The program counter value is omitted if it is at the
 
8928
beginning of the code for that line number.
 
8929
 
 
8930
<div class="node">
 
8931
<p><hr>
 
8932
<small class=header>
 
8933
Node:<a name="Selecting%20a%20frame">Selecting a frame</a>,
 
8934
Previous:<a rel="previous" accesskey="p" href="#Backtraces">Backtraces</a>,
 
8935
Up:<a rel="up" accesskey="u" href="#Stack">Stack</a>
 
8936
</small>
 
8937
 
 
8938
<br>
 
8939
</div>
 
8940
 
 
8941
<h4 class="subsection">Selecting a Frame</h4>
 
8942
 
 
8943
   <p>Most commands for examining the stack and other data in your program
 
8944
work on whichever stack frame is selected at the moment.  Here are the
 
8945
commands for selecting a stack frame.<a rel="footnote" href="#fn-25"><sup>25</sup></a>
 
8946
 
 
8947
   <p>In the backtrace window, you can <em>select</em> an arbitrary frame to
 
8948
move from one stack frame to another.  Just click on the desired frame.
 
8949
 
 
8950
   <p>The <code>Up</code> button selects the function that called the current
 
8951
one--that is, it moves one frame up.
 
8952
 
 
8953
   <p>The <code>Down</code> button selects the function that was called by
 
8954
the current one--that is, it moves one frame down.
 
8955
 
 
8956
   <p>You can also directly type the <code>up</code> and <code>down</code> commands at
 
8957
the debugger prompt.  Typing &lt;Ctrl+Up&gt; and &lt;Ctrl+Down&gt;,
 
8958
respectively, will also move you through the stack.
 
8959
 
 
8960
   <p><code>Up</code> and <code>Down</code> actions can be undone via <code>Edit =&gt;
 
8961
Undo</code>.
 
8962
 
 
8963
<div class="node">
 
8964
<p><hr>
 
8965
<small class=header>
 
8966
Node:<a name="Undoing%20Program%20Execution">Undoing Program Execution</a>,
 
8967
Next:<a rel="next" accesskey="n" href="#Threads">Threads</a>,
 
8968
Previous:<a rel="previous" accesskey="p" href="#Stack">Stack</a>,
 
8969
Up:<a rel="up" accesskey="u" href="#Running">Running</a>
 
8970
</small>
 
8971
 
 
8972
<br>
 
8973
</div>
 
8974
 
 
8975
<h3 class="section">"Undoing" Program Execution</h3>
 
8976
 
 
8977
   <p>If you take a look at the <code>Edit =&gt; Undo</code> menu item after an
 
8978
execution command, you'll find that <small>DDD</small> offers you to undo
 
8979
execution commands just as other commands.  Does this mean that
 
8980
<small>DDD</small> allows you to go backwards in time, undoing program
 
8981
execution as well as undoing any side-effects of your program?
 
8982
 
 
8983
   <p>Sorry--we must disappoint you.  <small>DDD</small> cannot undo what your
 
8984
program did.  (After a little bit of thought, you'll find that this
 
8985
would be impossible in general.)  However, <small>DDD</small> can do something
 
8986
different: it can show <em>previously recorded states</em> of your
 
8987
program.
 
8988
 
 
8989
   <p>After "undoing" an execution command (via
 
8990
<code>Edit =&gt; Undo</code>, or the <code>Undo</code> button), the execution
 
8991
position moves back to the earlier position and displayed variables
 
8992
take their earlier values.  Your program state is in fact unchanged,
 
8993
but <small>DDD</small> gives you a <em>view</em> on the earlier state as recorded by
 
8994
<small>DDD</small>.
 
8995
 
 
8996
   <p>In this so-called <dfn>historic mode</dfn>, most normal <small>DDD</small>
 
8997
commands that would query further information from the program are
 
8998
disabled, since the debugger cannot be queried for the earlier state. 
 
8999
However, you can examine the current execution position, or the
 
9000
displayed variables.  Using <code>Undo</code> and <code>Redo</code>, you can
 
9001
move back and forward in time to examine how your program got into the
 
9002
present state.
 
9003
 
 
9004
   <p>To let you know that you are operating in historic mode, the execution
 
9005
arrow gets a dashed-line appearance (indicating a past position);
 
9006
variable displays also come with dashed lines.  Furthermore, the
 
9007
status line informs you that you are seeing an earlier program state.
 
9008
 
 
9009
   <p>Here's how historic mode works: each time your program stops,
 
9010
<small>DDD</small> collects the current execution position and the values of
 
9011
displayed variables.  Backtrace, thread, and register information is
 
9012
also collected if the corresponding dialogs are open.  When
 
9013
"undoing" an execution command, <small>DDD</small> updates its view
 
9014
from this collected state instead of querying the program.
 
9015
 
 
9016
   <p>If you want to collect this information without interrupting your
 
9017
program--within a loop, for instance--you can place a breakpoint with
 
9018
an associated <code>cont</code> command (see <a href="#Breakpoint%20Commands">Breakpoint Commands</a>). 
 
9019
When the breakpoint is hit, <small>DDD</small> will stop, collect the data, and
 
9020
execute the <code>cont</code> command, resuming execution.  Using a later
 
9021
<code>Undo</code>, you can step back and look at every single loop iteration.
 
9022
 
 
9023
   <p>To leave historic mode, you can use <code>Redo</code> until you are back in
 
9024
the current program state.  However, any <small>DDD</small> command that
 
9025
refers to program state will also leave historic mode immediately by
 
9026
applying to the current program state instead.  For instance,
 
9027
<code>Up</code> leaves historic mode immediately and selects an alternate
 
9028
frame in the restored current program state.
 
9029
 
 
9030
   <p>If you want to see the history of a specific variable, as recorded
 
9031
during program stops, you can enter the <small>DDD</small> command
 
9032
 
 
9033
<pre class="example">     graph history <var>name</var>
 
9034
     </pre>
 
9035
 
 
9036
   <p>This returns a list of all previously recorded values of the variable
 
9037
<var>name</var>, using array syntax.  Note that <var>name</var> must have been
 
9038
displayed at earlier program stops in order to record values.
 
9039
 
 
9040
<div class="node">
 
9041
<p><hr>
 
9042
<small class=header>
 
9043
Node:<a name="Threads">Threads</a>,
 
9044
Next:<a rel="next" accesskey="n" href="#Signals">Signals</a>,
 
9045
Previous:<a rel="previous" accesskey="p" href="#Undoing%20Program%20Execution">Undoing Program Execution</a>,
 
9046
Up:<a rel="up" accesskey="u" href="#Running">Running</a>
 
9047
</small>
 
9048
 
 
9049
<br>
 
9050
</div>
 
9051
 
 
9052
<h3 class="section">Examining Threads</h3>
 
9053
 
 
9054
   <p>In some operating systems, a single program may have more than one
 
9055
<em>thread</em> of execution.  The precise semantics of threads differ
 
9056
from one operating system to another, but in general the threads of a
 
9057
single program are akin to multiple processes--except that they share
 
9058
one address space (that is, they can all examine and modify the same
 
9059
variables).  On the other hand, each thread has its own registers and
 
9060
execution stack, and perhaps private memory.
 
9061
 
 
9062
   <p>For debugging purposes, <small>DDD</small> lets you display the list of threads
 
9063
currently active in your program and lets you select the <em>current
 
9064
thread</em>--the thread which is the focus of debugging.  <small>DDD</small> shows
 
9065
all program information from the perspective of the current
 
9066
thread.<a rel="footnote" href="#fn-26"><sup>26</sup></a>
 
9067
 
 
9068
<br><p>
 
9069
<div align="center"><img src="PICS/ddd-threads.jpg" alt="PICS/ddd-threads.jpg"></div>
 
9070
<br><p>
 
9071
   <p>To view all currently active threads in your program, select
 
9072
<code>Status =&gt; Threads</code>.  The current thread is highlighted. 
 
9073
Select any thread to make it the current thread.
 
9074
 
 
9075
   <p>Using <small>JDB</small>, additional functionality is available:
 
9076
 
 
9077
     <ul>
 
9078
<li>Select a <em>thread group</em> to switch between viewing all threads and
 
9079
the threads of the selected thread group;
 
9080
<li>Click on <code>Suspend</code> to suspend execution of the selected threads;
 
9081
<li>Click on <code>Resume</code> to resume execution of the selected threads. 
 
9082
</ul>
 
9083
 
 
9084
   <p>For more information on threads, see the <small>JDB</small> and <small>GDB</small> documentation
 
9085
(see <a href="gdb.html#Threads">Debugging programs with multiple threads</a>).
 
9086
 
 
9087
<div class="node">
 
9088
<p><hr>
 
9089
<small class=header>
 
9090
Node:<a name="Signals">Signals</a>,
 
9091
Next:<a rel="next" accesskey="n" href="#Killing%20the%20Program">Killing the Program</a>,
 
9092
Previous:<a rel="previous" accesskey="p" href="#Threads">Threads</a>,
 
9093
Up:<a rel="up" accesskey="u" href="#Running">Running</a>
 
9094
</small>
 
9095
 
 
9096
<br>
 
9097
</div>
 
9098
 
 
9099
<h3 class="section">Handling Signals</h3>
 
9100
 
 
9101
   <p>A signal is an asynchronous event that can happen in a program.  The
 
9102
operating system defines the possible kinds of signals, and gives each
 
9103
kind a name and a number.  For example, in <small>UNIX</small>, <code>SIGINT</code> is the
 
9104
signal a program gets when you type an interrupt; <code>SIGSEGV</code> is
 
9105
the signal a program gets from referencing a place in memory far away
 
9106
from all the areas in use; <code>SIGALRM</code> occurs when the alarm clock
 
9107
timer goes off (which happens only if your program has requested an
 
9108
alarm).
 
9109
 
 
9110
   <p>Some signals, including <code>SIGALRM</code>, are a normal part of the
 
9111
functioning of your program.  Others, such as <code>SIGSEGV</code>, indicate
 
9112
errors; these signals are <em>fatal</em> (kill your program immediately)
 
9113
if the program has not specified in advance some other way to handle the
 
9114
signal.  <code>SIGINT</code> does not indicate an error in your program, but
 
9115
it is normally fatal so it can carry out the purpose of the interrupt:
 
9116
to kill the program.
 
9117
 
 
9118
   <p><small>GDB</small> has the ability to detect any occurrence of a signal in your
 
9119
program.  You can tell <small>GDB</small> in advance what to do for each kind of
 
9120
signal.
 
9121
 
 
9122
   <p>Normally, <small>DDD</small> is set up to ignore non-erroneous signals like
 
9123
<code>SIGALRM</code> (so as not to interfere with their role in the
 
9124
functioning of your program) but to stop your program immediately
 
9125
whenever an error signal happens.  In <small>DDD</small>, you can view and edit
 
9126
these settings via <code>Status =&gt; Signals</code>.
 
9127
 
 
9128
   <p><code>Status =&gt; Signals</code> pops up a panel showing all the kinds of
 
9129
signals and how <small>GDB</small> has been told to handle each one.  The settings
 
9130
available for each signal are:
 
9131
 
 
9132
     <dl>
 
9133
<dt><code>Stop</code>
 
9134
     <dd>If set, <small>GDB</small> should stop your program when this signal happens. 
 
9135
This also implies <code>Print</code> being set.
 
9136
 
 
9137
     <br><dt><code>Print</code>
 
9138
     <dd>If set, <small>GDB</small> should print a message when this signal happens.
 
9139
 
 
9140
     <p>If unset, <small>GDB</small> should not mention the occurrence of the signal at all. 
 
9141
This also implies <code>Stop</code> being unset.
 
9142
 
 
9143
     <br><dt><code>Pass</code>
 
9144
     <dd>If set, <small>GDB</small> should allow your program to see this signal; your
 
9145
program can handle the signal, or else it may terminate if the signal
 
9146
is fatal and not handled.
 
9147
 
 
9148
     <p>If unset, <small>GDB</small> should not allow your program to see this signal. 
 
9149
</dl>
 
9150
 
 
9151
<br><p>
 
9152
<div align="center"><img src="PICS/ddd-signals.jpg" alt="PICS/ddd-signals.jpg"></div>
 
9153
<br><p>
 
9154
   <p>The entry <code>All Signals</code> is special.  Changing a setting here
 
9155
affects <em>all signals at once</em>--except those used by the debugger,
 
9156
typically <code>SIGTRAP</code> and <code>SIGINT</code>.
 
9157
 
 
9158
   <p>To undo any changes, use <code>Edit =&gt; Undo</code>.  The <code>Reset</code>
 
9159
button restores the saved settings.
 
9160
 
 
9161
   <p>When a signal stops your program, the signal is not visible until you
 
9162
continue.  Your program sees the signal then, if <code>Pass</code> is in
 
9163
effect for the signal in question <em>at that time</em>.  In other words,
 
9164
after <small>GDB</small> reports a signal, you can change the <code>Pass</code> setting in
 
9165
<code>Status =&gt; Signals</code> to control whether your program sees
 
9166
that signal when you continue.
 
9167
 
 
9168
   <p>You can also cause your program to see a signal it normally would not
 
9169
see, or to give it any signal at any time.  The <code>Send</code> button will
 
9170
resume execution where your program stopped, but immediately give it the
 
9171
signal shown.
 
9172
 
 
9173
   <p>On the other hand, you can also prevent your program from seeing a
 
9174
signal.  For example, if your program stopped due to some sort of memory
 
9175
reference error, you might store correct values into the erroneous
 
9176
variables and continue, hoping to see more execution; but your program
 
9177
would probably terminate immediately as a result of the fatal signal
 
9178
once it saw the signal.  To prevent this, you can resume execution using
 
9179
<code>Commands =&gt; Continue Without Signal</code>.
 
9180
 
 
9181
   <p>Signal settings are not saved across DDD invocations, since changed
 
9182
signal settings are normally useful within specific projects only. 
 
9183
Instead, signal settings are saved with the current session, using
 
9184
<code>File =&gt; Save Session As</code>.
 
9185
 
 
9186
<div class="node">
 
9187
<p><hr>
 
9188
<small class=header>
 
9189
Node:<a name="Killing%20the%20Program">Killing the Program</a>,
 
9190
Previous:<a rel="previous" accesskey="p" href="#Signals">Signals</a>,
 
9191
Up:<a rel="up" accesskey="u" href="#Running">Running</a>
 
9192
</small>
 
9193
 
 
9194
<br>
 
9195
</div>
 
9196
 
 
9197
<h3 class="section">Killing the Program</h3>
 
9198
 
 
9199
   <p>You can kill the process of the debugged program at any time using the
 
9200
<code>Kill</code> button.
 
9201
 
 
9202
   <p>Killing the process is useful if you wish to debug a core dump instead
 
9203
of a running process.  <small>GDB</small> ignores any core dump file while your program
 
9204
is running.
 
9205
 
 
9206
   <p>The <code>Kill</code> button is also useful if you wish to recompile and
 
9207
relink your program, since on many systems it is impossible to modify an
 
9208
executable file while it is running in a process.  In this case, when
 
9209
you next click on <code>Run</code>, <small>GDB</small> notices that the file has changed, and
 
9210
reads the symbol table again (while trying to preserve your current
 
9211
debugger state).
 
9212
 
 
9213
<div class="node">
 
9214
<p><hr>
 
9215
<small class=header>
 
9216
Node:<a name="Examining%20Data">Examining Data</a>,
 
9217
Next:<a rel="next" accesskey="n" href="#Machine-Level%20Debugging">Machine-Level Debugging</a>,
 
9218
Previous:<a rel="previous" accesskey="p" href="#Running">Running</a>,
 
9219
Up:<a rel="up" accesskey="u" href="#Top">Top</a>
 
9220
</small>
 
9221
 
 
9222
<br>
 
9223
</div>
 
9224
 
 
9225
<h2 class="chapter">Examining Data</h2>
 
9226
 
 
9227
   <p><small>DDD</small> provides several means to examine data.
 
9228
 
 
9229
     <ul>
 
9230
<li>The quickest way to examine variables is to move the pointer on an
 
9231
occurrence in the source text.  The value is displayed in the source
 
9232
line; after a second, a popup window (called <dfn>value tip</dfn>) shows the
 
9233
variable value.  This is useful for quick examination of several simple
 
9234
values.
 
9235
 
 
9236
     <li>If you want to refer to variable values at a later time, you can
 
9237
<dfn>print</dfn> the value in the debugger console.  This allows for
 
9238
displaying and examining larger data structures.
 
9239
 
 
9240
     <li>If you want to examine complex data structures, you can <dfn>display</dfn>
 
9241
them graphically in the data window.  Displays remain effective until
 
9242
you delete them; they are updated each time the program stops.  This is
 
9243
useful for large dynamic structures.
 
9244
 
 
9245
     <li>If you want to examine arrays of numeric values, you can <dfn>plot</dfn> them
 
9246
graphically in a separate plot window.  The plot is updated each time
 
9247
the program stops.  This is useful for large numeric arrays.
 
9248
 
 
9249
     <li>Using <small>GDB</small> or <small>DBX</small>, you can also <dfn>examine memory contents</dfn> in any of
 
9250
several formats, independently of your program's data types. 
 
9251
</ul>
 
9252
 
 
9253
<ul class="menu">
 
9254
<li><a accesskey="1" href="#Value%20Tips">Value Tips</a>:                   Just move the pointer on a variable. 
 
9255
<li><a accesskey="2" href="#Printing%20Values">Printing Values</a>:              Printing a value in the debugger console. 
 
9256
<li><a accesskey="3" href="#Displaying%20Values">Displaying Values</a>:            Displaying structures as graphs. 
 
9257
<li><a accesskey="4" href="#Plotting%20Values">Plotting Values</a>:              Displaying values as plots. 
 
9258
<li><a accesskey="5" href="#Examining%20Memory">Examining Memory</a>:             Low-level memory examination. 
 
9259
</ul>
 
9260
 
 
9261
<div class="node">
 
9262
<p><hr>
 
9263
<small class=header>
 
9264
Node:<a name="Value%20Tips">Value Tips</a>,
 
9265
Next:<a rel="next" accesskey="n" href="#Printing%20Values">Printing Values</a>,
 
9266
Up:<a rel="up" accesskey="u" href="#Examining%20Data">Examining Data</a>
 
9267
</small>
 
9268
 
 
9269
<br>
 
9270
</div>
 
9271
 
 
9272
<h3 class="section">Showing Simple Values using Value Tips</h3>
 
9273
 
 
9274
   <p>To display the value of a simple variable, move the mouse pointer on its
 
9275
name.  After a second, a small window (called <dfn>value tip</dfn>) pops up
 
9276
showing the value of the variable pointed at.  The window disappears as
 
9277
soon as you move the mouse pointer away from the variable.  The value is
 
9278
also shown in the status line.
 
9279
 
 
9280
<br><p>
 
9281
<div align="center"><img src="PICS/ddd-value-tip.jpg" alt="PICS/ddd-value-tip.jpg"></div>
 
9282
<br><p>
 
9283
   <p>You can disable value tips via <code>Edit =&gt; Preferences
 
9284
=&gt; General =&gt; Automatic display of variable values as
 
9285
popup tips</code>.
 
9286
 
 
9287
   <p>You can disable displaying variable values in the status line via
 
9288
<code>Edit =&gt; Preferences =&gt; General =&gt; Automatic
 
9289
display of variable values in the status line</code>.
 
9290
 
 
9291
   <p>These customizations are tied to the following resources:
 
9292
 
 
9293
<p>
 
9294
<table width="100%">
 
9295
<tr>
 
9296
<td align="left"><b>valueTips</b><i> </i>(<i>class Tips</i>)<i>
 
9297
     </i></td>
 
9298
<td align="right">Resource</td>
 
9299
</tr>
 
9300
</table>
 
9301
<table width="95%" align="center">
 
9302
<tr><td>
 
9303
Whether value tips are enabled (<code>on</code>, default) or not
 
9304
(<code>off</code>).  Value tips affect <small>DDD</small> performance and may
 
9305
be distracting for some experienced users. 
 
9306
</td></tr>
 
9307
</table>
 
9308
 
 
9309
<p>
 
9310
<table width="100%">
 
9311
<tr>
 
9312
<td align="left"><b>valueDocs</b><i> </i>(<i>class Docs</i>)<i>
 
9313
     </i></td>
 
9314
<td align="right">Resource</td>
 
9315
</tr>
 
9316
</table>
 
9317
<table width="95%" align="center">
 
9318
<tr><td>
 
9319
Whether the display of variable values in the status line is enabled
 
9320
(<code>on</code>, default) or not (<code>off</code>). 
 
9321
</td></tr>
 
9322
</table>
 
9323
 
 
9324
   <p>You can turn off value tips via <code>Edit =&gt; Preferences
 
9325
=&gt; General =&gt; Automatic Display of Variable Values</code>.
 
9326
 
 
9327
<div class="node">
 
9328
<p><hr>
 
9329
<small class=header>
 
9330
Node:<a name="Printing%20Values">Printing Values</a>,
 
9331
Next:<a rel="next" accesskey="n" href="#Displaying%20Values">Displaying Values</a>,
 
9332
Previous:<a rel="previous" accesskey="p" href="#Value%20Tips">Value Tips</a>,
 
9333
Up:<a rel="up" accesskey="u" href="#Examining%20Data">Examining Data</a>
 
9334
</small>
 
9335
 
 
9336
<br>
 
9337
</div>
 
9338
 
 
9339
<h3 class="section">Printing Simple Values in the Debugger Console</h3>
 
9340
 
 
9341
   <p>The variable value can also be printed in the debugger console, making
 
9342
it available for future operations.  To print a variable value, select
 
9343
the desired variable by clicking <em>mouse button 1</em> on its name.  The
 
9344
variable name is copied to the argument field.  By clicking the
 
9345
<code>Print</code> button, the value is printed in the debugger console.  The
 
9346
printed value is also shown in the status line.
 
9347
 
 
9348
   <p>As a shorter alternative, you can simply press <em>mouse button 3</em> on
 
9349
the variable name and select the <code>Print</code> item from the popup menu.
 
9350
 
 
9351
<br><p>
 
9352
<div align="center"><img src="PICS/ddd-print-popup.jpg" alt="PICS/ddd-print-popup.jpg"></div>
 
9353
<br><p>
 
9354
   <p>In <small>GDB</small>, the <code>Print</code> button generates a <code>print</code> command, which
 
9355
has several more options.  See <a href="gdb.html#Data">Examining Data</a>, for <small>GDB</small>-specific expressions, variables, and
 
9356
output formats.
 
9357
 
 
9358
<div class="node">
 
9359
<p><hr>
 
9360
<small class=header>
 
9361
Node:<a name="Displaying%20Values">Displaying Values</a>,
 
9362
Next:<a rel="next" accesskey="n" href="#Plotting%20Values">Plotting Values</a>,
 
9363
Previous:<a rel="previous" accesskey="p" href="#Printing%20Values">Printing Values</a>,
 
9364
Up:<a rel="up" accesskey="u" href="#Examining%20Data">Examining Data</a>
 
9365
</small>
 
9366
 
 
9367
<br>
 
9368
</div>
 
9369
 
 
9370
<h3 class="section">Displaying Complex Values in the Data Window</h3>
 
9371
 
 
9372
   <p>To explore complex data structures, you can <dfn>display</dfn> them
 
9373
permanently in the <em>data window</em>.  The data window displays
 
9374
selected data of your program, showing complex data structures
 
9375
graphically.  It is updated each time the program stops.
 
9376
 
 
9377
<ul class="menu">
 
9378
<li><a accesskey="1" href="#Display%20Basics">Display Basics</a>:               How to create, manipulate, and delete displays. 
 
9379
<li><a accesskey="2" href="#Arrays">Arrays</a>:                       Special functions for arrays. 
 
9380
<li><a accesskey="3" href="#Assignment">Assignment</a>:                   Setting variable values. 
 
9381
<li><a accesskey="4" href="#Examining%20Structures">Examining Structures</a>:         Dereferencing pointers and other references. 
 
9382
<li><a accesskey="5" href="#Customizing%20Displays">Customizing Displays</a>:         Data Themes. 
 
9383
<li><a accesskey="6" href="#Layouting%20the%20Graph">Layouting the Graph</a>:          Automatic layout. 
 
9384
<li><a accesskey="7" href="#Printing%20the%20Graph">Printing the Graph</a>:           Printing on paper. 
 
9385
</ul>
 
9386
 
 
9387
<div class="node">
 
9388
<p><hr>
 
9389
<small class=header>
 
9390
Node:<a name="Display%20Basics">Display Basics</a>,
 
9391
Next:<a rel="next" accesskey="n" href="#Arrays">Arrays</a>,
 
9392
Up:<a rel="up" accesskey="u" href="#Displaying%20Values">Displaying Values</a>
 
9393
</small>
 
9394
 
 
9395
<br>
 
9396
</div>
 
9397
 
 
9398
<h4 class="subsection">Display Basics</h4>
 
9399
 
 
9400
   <p>This section discusses how to create, manipulate, and delete displays. 
 
9401
The essentials are:
 
9402
 
 
9403
     <ul>
 
9404
<li>Click on <code>Display</code> to display the variable in <code>()</code>.
 
9405
 
 
9406
     <li>Click on a display to select it.
 
9407
 
 
9408
     <li>Click on <code>Undisplay</code> to delete the selected display. 
 
9409
</ul>
 
9410
 
 
9411
<ul class="menu">
 
9412
<li><a accesskey="1" href="#Creating%20Single%20Displays">Creating Single Displays</a>: 
 
9413
<li><a accesskey="2" href="#Selecting%20Displays">Selecting Displays</a>: 
 
9414
<li><a accesskey="3" href="#Showing%20and%20Hiding%20Details">Showing and Hiding Details</a>: 
 
9415
<li><a accesskey="4" href="#Rotating%20Displays">Rotating Displays</a>: 
 
9416
<li><a accesskey="5" href="#Displaying%20Local%20Variables">Displaying Local Variables</a>: 
 
9417
<li><a accesskey="6" href="#Displaying%20Program%20Status">Displaying Program Status</a>: 
 
9418
<li><a accesskey="7" href="#Refreshing%20the%20Data%20Window">Refreshing the Data Window</a>: 
 
9419
<li><a accesskey="8" href="#Placement">Placement</a>: 
 
9420
<li><a accesskey="9" href="#Clustering">Clustering</a>: 
 
9421
<li><a href="#Creating%20Multiple%20Displays">Creating Multiple Displays</a>: 
 
9422
<li><a href="#Editing%20all%20Displays">Editing all Displays</a>: 
 
9423
<li><a href="#Deleting%20Displays">Deleting Displays</a>: 
 
9424
</ul>
 
9425
 
 
9426
<div class="node">
 
9427
<p><hr>
 
9428
<small class=header>
 
9429
Node:<a name="Creating%20Single%20Displays">Creating Single Displays</a>,
 
9430
Next:<a rel="next" accesskey="n" href="#Selecting%20Displays">Selecting Displays</a>,
 
9431
Up:<a rel="up" accesskey="u" href="#Display%20Basics">Display Basics</a>
 
9432
</small>
 
9433
 
 
9434
<br>
 
9435
</div>
 
9436
 
 
9437
<h5 class="subsubsection">Creating Single Displays</h5>
 
9438
 
 
9439
   <p>To create a new display showing a specific variable, select the variable
 
9440
by clicking <em>mouse button 1</em> on its name.  The variable name is
 
9441
copied to the argument field.  By clicking the <code>Display</code> button, a
 
9442
new display is created in the data window.  The data window opens
 
9443
automatically as soon as you create a display.
 
9444
 
 
9445
<br><p>
 
9446
<div align="center"><img src="PICS/ddd-display.jpg" alt="PICS/ddd-display.jpg"></div>
 
9447
<br><p>
 
9448
   <p>As a shorter alternative, you can simply press <em>mouse button 3</em> on
 
9449
the variable name and select <code>Display</code> from the popup menu.
 
9450
 
 
9451
   <p>As an even faster alternative, you can also double-click on the variable
 
9452
name.
 
9453
 
 
9454
   <p>As another alternative, you may also enter the expression to be
 
9455
displayed in the argument field and press the <code>Display</code> button.
 
9456
 
 
9457
   <p>Finally, you may also type in a command at the debugger prompt:
 
9458
 
 
9459
<pre class="example">     graph display <var>expr</var> [clustered] [at (<var>x</var>, <var>y</var>)]
 
9460
         [dependent on <var>display</var>] [[now or] when in <var>scope</var>]
 
9461
     </pre>
 
9462
 
 
9463
   <p>This command creates a new display showing the value of the expression
 
9464
<var>expr</var>.  The optional parts have the following meaning:
 
9465
 
 
9466
     <dl>
 
9467
<dt><code>clustered</code>
 
9468
     <dd>If given, the new display is created in a cluster.  See <a href="#Clustering">Clustering</a>,
 
9469
for a discussion.
 
9470
 
 
9471
     <br><dt><code>at (</code><var>x</var><code>, </code><var>y</var><code>)</code>
 
9472
     <dd>If given, the new display is created at the position (<var>x</var>, <var>y</var>). 
 
9473
Otherwise, a default position is assigned.
 
9474
 
 
9475
     <br><dt><code>dependent on </code><var>display</var><code></code>
 
9476
     <dd>If given, an edge from the display numbered or named <em>display</em> to
 
9477
the new display is created.  Otherwise, no edge is created. 
 
9478
See <a href="#Dependent%20Values">Dependent Values</a>, for details.
 
9479
 
 
9480
     <br><dt><code>when in </code><var>scope</var><code></code>
 
9481
     <dd><dt><code>now or when in </code><var>scope</var><code></code>
 
9482
     <dd>If <code>when in</code> is given, the display creation is <dfn>deferred</dfn> until
 
9483
execution reaches the given <var>scope</var> (a function name, as in the
 
9484
backtrace output).
 
9485
 
 
9486
     <p>If <code>now or when in</code> is given, <small>DDD</small> first attempts to create
 
9487
the display immediately.  The display is deferred only if display
 
9488
creation fails.
 
9489
 
 
9490
     <p>If neither <code>when in</code> suffix nor <code>now or when in</code> suffix is
 
9491
given, the display is created immediately. 
 
9492
</dl>
 
9493
 
 
9494
<div class="node">
 
9495
<p><hr>
 
9496
<small class=header>
 
9497
Node:<a name="Selecting%20Displays">Selecting Displays</a>,
 
9498
Next:<a rel="next" accesskey="n" href="#Showing%20and%20Hiding%20Details">Showing and Hiding Details</a>,
 
9499
Previous:<a rel="previous" accesskey="p" href="#Creating%20Single%20Displays">Creating Single Displays</a>,
 
9500
Up:<a rel="up" accesskey="u" href="#Display%20Basics">Display Basics</a>
 
9501
</small>
 
9502
 
 
9503
<br>
 
9504
</div>
 
9505
 
 
9506
<h5 class="subsubsection">Selecting Displays</h5>
 
9507
 
 
9508
   <p>Each display in the data window has a <em>title bar</em> containing the
 
9509
<em>display number</em> and the displayed expression (the <em>display
 
9510
name</em>).  Below the title, the <em>display value</em> is shown.
 
9511
 
 
9512
   <p>You can select single displays by clicking on them with <em>mouse
 
9513
button 1</em>.
 
9514
 
 
9515
   <p>You can <em>extend</em> an existing selection by pressing the &lt;Shift&gt;
 
9516
key while selecting.  You can also <em>toggle</em> an existing selection
 
9517
by pressing the &lt;Shift&gt; key while selecting already selected
 
9518
displays.
 
9519
 
 
9520
   <p>Single displays may also be selected by using the arrow keys &lt;Up&gt;,
 
9521
&lt;Down&gt;, &lt;Left&gt;, and &lt;Right&gt;.
 
9522
 
 
9523
   <p><em>Multiple displays</em> are selected by pressing and holding
 
9524
<em>mouse button 1</em> somewhere on the window background.  By moving the
 
9525
pointer while holding the button, a selection rectangle is shown; all
 
9526
displays fitting in the rectangle are selected when mouse button 1 is
 
9527
released.
 
9528
 
 
9529
   <p>If the &lt;Shift&gt; key is pressed while selecting, the existing
 
9530
selection is <em>extended</em>.
 
9531
 
 
9532
   <p>By double-clicking on a display title, the display itself and all
 
9533
connected displays are automatically selected.
 
9534
 
 
9535
<br><p>
 
9536
<div align="center"><img src="PICS/ddd-select-display.jpg" alt="PICS/ddd-select-display.jpg"></div>
 
9537
<br><p>
 
9538
<div class="node">
 
9539
<p><hr>
 
9540
<small class=header>
 
9541
Node:<a name="Showing%20and%20Hiding%20Details">Showing and Hiding Details</a>,
 
9542
Next:<a rel="next" accesskey="n" href="#Rotating%20Displays">Rotating Displays</a>,
 
9543
Previous:<a rel="previous" accesskey="p" href="#Selecting%20Displays">Selecting Displays</a>,
 
9544
Up:<a rel="up" accesskey="u" href="#Display%20Basics">Display Basics</a>
 
9545
</small>
 
9546
 
 
9547
<br>
 
9548
</div>
 
9549
 
 
9550
<h5 class="subsubsection">Showing and Hiding Details</h5>
 
9551
 
 
9552
   <p>Aggregate values (i.e. records, structs, classes, and arrays) can be
 
9553
shown <em>expanded</em>, that is, displaying all details, or
 
9554
<em>hidden</em>, that is, displayed as <code>{...}</code>.
 
9555
 
 
9556
   <p>To show details about an aggregate, select the aggregate by clicking
 
9557
<em>mouse button 1</em> on its name or value and click on the <code>Show</code>
 
9558
button.  Details are shown for the aggregate itself as well as for all
 
9559
contained sub-aggregates.
 
9560
 
 
9561
   <p>To hide details about an aggregate, select the aggregate by clicking
 
9562
<em>mouse button 1</em> on its name or value and click on the <code>Hide</code>
 
9563
button.
 
9564
 
 
9565
<br><p>
 
9566
<div align="center"><img src="PICS/ddd-hide-display.jpg" alt="PICS/ddd-hide-display.jpg"></div>
 
9567
<br><p>
 
9568
   <p>When pressing and holding <em>mouse button 1</em> on the <code>Show/Hide</code>
 
9569
button, a menu pops up with even more alternatives:
 
9570
 
 
9571
     <dl>
 
9572
<dt><code>Show More ()</code>
 
9573
     <dd>Shows details of all aggregates currently hidden, but not of their
 
9574
sub-aggregates.  You can invoke this item several times in a row to
 
9575
reveal more and more details of the selected aggregate.
 
9576
 
 
9577
     <br><dt><code>Show Just ()</code>
 
9578
     <dd>Shows details of the selected aggregate, but hides all sub-aggregates.
 
9579
 
 
9580
     <br><dt><code>Show All ()</code>
 
9581
     <dd>Shows all details of the selected aggregate and of its sub-aggregates. 
 
9582
This item is equivalent to the <code>Show</code> button.
 
9583
 
 
9584
     <br><dt><code>Hide ()</code>
 
9585
     <dd>Hide all details of the selected aggregate.  This item is equivalent
 
9586
to the <code>Hide</code> button. 
 
9587
</dl>
 
9588
 
 
9589
   <p>As a faster alternative, you can also press <em>mouse button 3</em> on the
 
9590
aggregate and select the appropriate menu item.
 
9591
 
 
9592
   <p>As an even faster alternative, you can also double-click <em>mouse
 
9593
button 1</em> on a value.  If some part of the value is hidden, more details
 
9594
will be shown; if the entire value is shown, double-clicking will
 
9595
<em>hide</em> the value instead.  This way, you can double-click on a
 
9596
value until you get the right amount of details.
 
9597
 
 
9598
   <p>If <em>all</em> details of a display are hidden, the display is called
 
9599
<dfn>disabled</dfn>; this is indicated by the string <code>(Disabled)</code>.
 
9600
 
 
9601
   <p>Displays can also be disabled or enabled via a <small>DDD</small> command,
 
9602
which you enter at the debugger prompt:
 
9603
 
 
9604
<pre class="example">     graph disable display <var>displays<small class="dots">...</small></var>
 
9605
     </pre>
 
9606
 
 
9607
<p>disables the given displays.
 
9608
 
 
9609
<pre class="example">     graph enable display <var>displays<small class="dots">...</small></var>
 
9610
     </pre>
 
9611
 
 
9612
<p>re-enables the given displays.
 
9613
 
 
9614
   <p>In both commands, <var>displays<small class="dots">...</small></var> is either
 
9615
     <ul>
 
9616
<li>a space-separated list of display numbers to disable or enable, or
 
9617
 
 
9618
     <li>a single display name.  If you specify a display by name, all displays
 
9619
with this name will be affected. 
 
9620
</ul>
 
9621
 
 
9622
   <p>Use <code>Edit =&gt; Undo</code> to undo disabling or enabling displays.
 
9623
 
 
9624
<div class="node">
 
9625
<p><hr>
 
9626
<small class=header>
 
9627
Node:<a name="Rotating%20Displays">Rotating Displays</a>,
 
9628
Next:<a rel="next" accesskey="n" href="#Displaying%20Local%20Variables">Displaying Local Variables</a>,
 
9629
Previous:<a rel="previous" accesskey="p" href="#Showing%20and%20Hiding%20Details">Showing and Hiding Details</a>,
 
9630
Up:<a rel="up" accesskey="u" href="#Display%20Basics">Display Basics</a>
 
9631
</small>
 
9632
 
 
9633
<br>
 
9634
</div>
 
9635
 
 
9636
<h5 class="subsubsection">Rotating Displays</h5>
 
9637
 
 
9638
   <p>Arrays, structures and lists can be oriented horizontally or vertically. 
 
9639
To change the orientation of a display, select it and then click on the
 
9640
<code>Rotate</code> button.
 
9641
 
 
9642
   <p>As a faster alternative, you can also press <em>mouse button 3</em> on the
 
9643
array and select <code>Rotate</code> from the popup menu.
 
9644
 
 
9645
<br><p>
 
9646
<div align="center"><img src="PICS/ddd-rotate-display.jpg" alt="PICS/ddd-rotate-display.jpg"></div>
 
9647
<br><p>
 
9648
   <p>If a structure or list is oriented horizontally, <small>DDD</small>
 
9649
automatically suppresses the member names.  This can be handy for saving
 
9650
space.
 
9651
 
 
9652
   <p>The last chosen display orientation is used for the creation of new
 
9653
displays.  If you recently rotated an array to horizontal orientation,
 
9654
the next array you create will also be oriented horizontally.  These
 
9655
settings are tied to the following resources:
 
9656
 
 
9657
<p>
 
9658
<table width="100%">
 
9659
<tr>
 
9660
<td align="left"><b>arrayOrientation</b><i> </i>(<i>class Orientation</i>)<i>
 
9661
     </i></td>
 
9662
<td align="right">Resource</td>
 
9663
</tr>
 
9664
</table>
 
9665
<table width="95%" align="center">
 
9666
<tr><td>
 
9667
How arrays are to be oriented.  Possible values are <code>XmVERTICAL</code>
 
9668
(default) and <code>XmHORIZONTAL</code>. 
 
9669
</td></tr>
 
9670
</table>
 
9671
 
 
9672
<p>
 
9673
<table width="100%">
 
9674
<tr>
 
9675
<td align="left"><b>showMemberNames</b><i> </i>(<i>class ShowMemberNames</i>)<i>
 
9676
     </i></td>
 
9677
<td align="right">Resource</td>
 
9678
</tr>
 
9679
</table>
 
9680
<table width="95%" align="center">
 
9681
<tr><td>
 
9682
Whether to show struct member names or not.  Default is <code>on</code>. 
 
9683
</td></tr>
 
9684
</table>
 
9685
 
 
9686
<p>
 
9687
<table width="100%">
 
9688
<tr>
 
9689
<td align="left"><b>structOrientation</b><i> </i>(<i>class Orientation</i>)<i>
 
9690
     </i></td>
 
9691
<td align="right">Resource</td>
 
9692
</tr>
 
9693
</table>
 
9694
<table width="95%" align="center">
 
9695
<tr><td>
 
9696
How structs are to be oriented.  Possible values are <code>XmVERTICAL</code>
 
9697
(default) and <code>XmHORIZONTAL</code>. 
 
9698
</td></tr>
 
9699
</table>
 
9700
 
 
9701
<div class="node">
 
9702
<p><hr>
 
9703
<small class=header>
 
9704
Node:<a name="Displaying%20Local%20Variables">Displaying Local Variables</a>,
 
9705
Next:<a rel="next" accesskey="n" href="#Displaying%20Program%20Status">Displaying Program Status</a>,
 
9706
Previous:<a rel="previous" accesskey="p" href="#Rotating%20Displays">Rotating Displays</a>,
 
9707
Up:<a rel="up" accesskey="u" href="#Display%20Basics">Display Basics</a>
 
9708
</small>
 
9709
 
 
9710
<br>
 
9711
</div>
 
9712
 
 
9713
<h5 class="subsubsection">Displaying Local Variables</h5>
 
9714
 
 
9715
   <p>You can display all local variables at once by choosing <code>Data
 
9716
=&gt; Display Local Variables</code>.  When using <small>DBX</small>, <small>XDB</small>, <small>JDB</small>, or Perl,
 
9717
this displays all local variables, including the arguments of the
 
9718
current function.  When using <small>GDB</small> or <small>PYDB</small>, function arguments are
 
9719
contained in a separate display, activated by <code>Data =&gt;
 
9720
Display Arguments</code>.
 
9721
 
 
9722
   <p>The display showing the local variables can be manipulated just like any
 
9723
other data display.  Individual variables can be selected and
 
9724
dereferenced.
 
9725
 
 
9726
<br><p>
 
9727
<div align="center"><img src="PICS/ddd-locals.jpg" alt="PICS/ddd-locals.jpg"></div>
 
9728
<br><p>
 
9729
<div class="node">
 
9730
<p><hr>
 
9731
<small class=header>
 
9732
Node:<a name="Displaying%20Program%20Status">Displaying Program Status</a>,
 
9733
Next:<a rel="next" accesskey="n" href="#Refreshing%20the%20Data%20Window">Refreshing the Data Window</a>,
 
9734
Previous:<a rel="previous" accesskey="p" href="#Displaying%20Local%20Variables">Displaying Local Variables</a>,
 
9735
Up:<a rel="up" accesskey="u" href="#Display%20Basics">Display Basics</a>
 
9736
</small>
 
9737
 
 
9738
<br>
 
9739
</div>
 
9740
 
 
9741
<h5 class="subsubsection">Displaying Program Status</h5>
 
9742
 
 
9743
   <p>You can create a display from the output of an arbitrary debugger
 
9744
command.  By entering
 
9745
 
 
9746
<pre class="example">     graph display `<var>command</var>`
 
9747
     </pre>
 
9748
 
 
9749
<p>the output of <var>command</var> is turned into a <em>status display</em>
 
9750
updated each time the program stops.
 
9751
 
 
9752
   <p>For instance, the command
 
9753
 
 
9754
<pre class="example">     graph display `where`
 
9755
     </pre>
 
9756
 
 
9757
<p>creates a status display named <code>Where</code> that shows the current
 
9758
backtrace.
 
9759
 
 
9760
   <p>If you are using <small>GDB</small>, <small>DDD</small> provides a panel from which you can
 
9761
choose useful status displays.  Select <code>Data =&gt; Status
 
9762
Displays</code> and pick your choice from the list.
 
9763
 
 
9764
<br><p>
 
9765
<div align="center"><img src="PICS/ddd-status-displays.jpg" alt="PICS/ddd-status-displays.jpg"></div>
 
9766
<br><p>
 
9767
   <p>Refreshing status displays at each stop takes time; you should delete
 
9768
status displays as soon as you don't need them any more.
 
9769
 
 
9770
<div class="node">
 
9771
<p><hr>
 
9772
<small class=header>
 
9773
Node:<a name="Refreshing%20the%20Data%20Window">Refreshing the Data Window</a>,
 
9774
Next:<a rel="next" accesskey="n" href="#Placement">Placement</a>,
 
9775
Previous:<a rel="previous" accesskey="p" href="#Displaying%20Program%20Status">Displaying Program Status</a>,
 
9776
Up:<a rel="up" accesskey="u" href="#Display%20Basics">Display Basics</a>
 
9777
</small>
 
9778
 
 
9779
<br>
 
9780
</div>
 
9781
 
 
9782
<h5 class="subsubsection">Refreshing the Data Window</h5>
 
9783
 
 
9784
   <p>The data window is automatically updated or <dfn>refreshed</dfn> each time
 
9785
the program stops.  Values that have changed since the last refresh are
 
9786
highlighted.
 
9787
 
 
9788
   <p>However, there may be situations where you should refresh the data
 
9789
window explicitly.  This is especially the case whenever you changed
 
9790
debugger settings that could affect the data format, and want the data
 
9791
window to reflect these settings.
 
9792
 
 
9793
   <p>You can refresh the data window by selecting <code>Data =&gt;
 
9794
Refresh Displays</code>.
 
9795
 
 
9796
   <p>As an alternative, you can press <em>mouse button 3</em> on the background
 
9797
of the data window and select the <code>Refresh Displays</code> item.
 
9798
 
 
9799
   <p>Typing
 
9800
 
 
9801
<pre class="example">     graph refresh
 
9802
     </pre>
 
9803
 
 
9804
<p>at the debugger prompt has the same effect.
 
9805
 
 
9806
<div class="node">
 
9807
<p><hr>
 
9808
<small class=header>
 
9809
Node:<a name="Placement">Placement</a>,
 
9810
Next:<a rel="next" accesskey="n" href="#Clustering">Clustering</a>,
 
9811
Previous:<a rel="previous" accesskey="p" href="#Refreshing%20the%20Data%20Window">Refreshing the Data Window</a>,
 
9812
Up:<a rel="up" accesskey="u" href="#Display%20Basics">Display Basics</a>
 
9813
</small>
 
9814
 
 
9815
<br>
 
9816
</div>
 
9817
 
 
9818
<h5 class="subsubsection">Display Placement</h5>
 
9819
 
 
9820
   <p>By default, displays are created from <em>top to bottom</em>--that is,
 
9821
each new display is placed below the downmost one.  You can change this
 
9822
setting to <em>left to right</em> via <code>Edit =&gt; Preferences
 
9823
=&gt; Data =&gt; Placement =&gt; Left to right</code>.
 
9824
 
 
9825
<br><p>
 
9826
<div align="center"><img src="PICS/ddd-data-prefs.jpg" alt="PICS/ddd-data-prefs.jpg"></div>
 
9827
<br><p>
 
9828
   <p>This setting is tied to the following resource:
 
9829
 
 
9830
<p>
 
9831
<table width="100%">
 
9832
<tr>
 
9833
<td align="left"><b>displayPlacement</b><i> </i>(<i>class Orientation</i>)<i>
 
9834
     </i></td>
 
9835
<td align="right">Resource</td>
 
9836
</tr>
 
9837
</table>
 
9838
<table width="95%" align="center">
 
9839
<tr><td>
 
9840
If this is <code>XmVERTICAL</code> (default), <small>DDD</small> places each new
 
9841
independent display below the downmost one.  If this is
 
9842
<code>XmHORIZONTAL</code>, each new independent display is placed on the right
 
9843
of the rightmost one. 
 
9844
</td></tr>
 
9845
</table>
 
9846
 
 
9847
   <p>Note that changing the placement of new displays also affects the
 
9848
placement of <em>dependent displays</em> (see <a href="#Dependent%20Values">Dependent Values</a>).  In
 
9849
<em>top to bottom</em> mode, dependent displays are created on the right
 
9850
of the originating display; in <em>left to right</em> mode, dependent
 
9851
displays are created on the below the originating display.
 
9852
 
 
9853
<div class="node">
 
9854
<p><hr>
 
9855
<small class=header>
 
9856
Node:<a name="Clustering">Clustering</a>,
 
9857
Next:<a rel="next" accesskey="n" href="#Creating%20Multiple%20Displays">Creating Multiple Displays</a>,
 
9858
Previous:<a rel="previous" accesskey="p" href="#Placement">Placement</a>,
 
9859
Up:<a rel="up" accesskey="u" href="#Display%20Basics">Display Basics</a>
 
9860
</small>
 
9861
 
 
9862
<br>
 
9863
</div>
 
9864
 
 
9865
<h5 class="subsubsection">Clustering Displays</h5>
 
9866
 
 
9867
   <p>If you examine several variables at once, having a separate display for
 
9868
each of them uses a lot of screen space.  This is why <small>DDD</small>
 
9869
supports <dfn>clusters</dfn>.  A cluster merges several logical data displays
 
9870
into one physical display, saving screen space.
 
9871
 
 
9872
   <p>There are two ways to create clusters:
 
9873
     <ul>
 
9874
<li>You can create clusters <em>manually</em>.  This is done by selecting the
 
9875
displays to be clustered and choosing <code>Undisp =&gt; Cluster
 
9876
()</code>.  This creates a new cluster from all selected displays.  If an
 
9877
already existing cluster is selected, too, the selected displays will be
 
9878
clustered into the selected cluster.
 
9879
 
 
9880
     <li>You can create a cluster <em>automatically</em> for all independent data
 
9881
displays, such that all new data displays will automatically be
 
9882
clustered, too.  This is achieved by enabling <code>Edit =&gt;
 
9883
Preferences =&gt; Data =&gt; Placement =&gt; clustered</code>. 
 
9884
</ul>
 
9885
 
 
9886
<br><p>
 
9887
<div align="center"><img src="PICS/ddd-clusters.jpg" alt="PICS/ddd-clusters.jpg"></div>
 
9888
<br><p>
 
9889
   <p>Displays in a cluster can be selected and manipulated like parts of an
 
9890
ordinary display; in particular, you can show and hide details, or
 
9891
dereference pointers.  However, edges leading to clustered displays can
 
9892
not be shown, and you must either select one or all clustered displays.
 
9893
 
 
9894
   <p>Disabling a cluster is called <em>unclustering</em>, and again, there
 
9895
are two ways of doing it:
 
9896
 
 
9897
     <ul>
 
9898
<li>You can uncluster displays <em>manually</em>, by selecting the cluster
 
9899
and choosing <code>Undisp =&gt; Uncluster ()</code>.
 
9900
 
 
9901
     <li>You can uncluster all current and future displays by disabling
 
9902
<code>Edit =&gt; Preferences =&gt; Data =&gt; Placement =&gt;
 
9903
clustered</code>. 
 
9904
</ul>
 
9905
 
 
9906
<div class="node">
 
9907
<p><hr>
 
9908
<small class=header>
 
9909
Node:<a name="Creating%20Multiple%20Displays">Creating Multiple Displays</a>,
 
9910
Next:<a rel="next" accesskey="n" href="#Editing%20all%20Displays">Editing all Displays</a>,
 
9911
Previous:<a rel="previous" accesskey="p" href="#Clustering">Clustering</a>,
 
9912
Up:<a rel="up" accesskey="u" href="#Display%20Basics">Display Basics</a>
 
9913
</small>
 
9914
 
 
9915
<br>
 
9916
</div>
 
9917
 
 
9918
<h5 class="subsubsection">Creating Multiple Displays</h5>
 
9919
 
 
9920
   <p>To display several successive objects of the same type (a section of an
 
9921
array, or an array of dynamically determined size), you can use the
 
9922
notation <code></code><var>from</var><code>..</code><var>to</var><code></code> in display expressions.
 
9923
 
 
9924
   <p><var>from</var> and <var>to</var> are numbers that denote the first and last
 
9925
expression to display.  Thus,
 
9926
 
 
9927
<pre class="example">     graph display argv[0..9]
 
9928
     </pre>
 
9929
 
 
9930
<p>creates 10 new displays for <code>argv[0]</code>, <code>argv[1]</code>, <small class="dots">...</small>,
 
9931
<code>argv[9]</code>.  The displays are clustered automatically
 
9932
(see <a href="#Clustering">Clustering</a>), such that you can easily handle the set just like
 
9933
an array.
 
9934
 
 
9935
   <p>The <code></code><var>from</var><code>..</code><var>to</var><code></code> notation can also be used multiple
 
9936
times.  For instance,
 
9937
 
 
9938
<pre class="example">     graph display 1..5 * 1..5
 
9939
     </pre>
 
9940
 
 
9941
<p>creates a handy small multiplication table.
 
9942
 
 
9943
   <p>The <code></code><var>from</var><code>..</code><var>to</var><code></code> notation creates several displays, which
 
9944
takes time to create and update.  If you want to display only a part of
 
9945
an array, <em>array slices</em> are a more efficient way.  See <a href="#Array%20Slices">Array Slices</a>, for a discussion.
 
9946
 
 
9947
<div class="node">
 
9948
<p><hr>
 
9949
<small class=header>
 
9950
Node:<a name="Editing%20all%20Displays">Editing all Displays</a>,
 
9951
Next:<a rel="next" accesskey="n" href="#Deleting%20Displays">Deleting Displays</a>,
 
9952
Previous:<a rel="previous" accesskey="p" href="#Creating%20Multiple%20Displays">Creating Multiple Displays</a>,
 
9953
Up:<a rel="up" accesskey="u" href="#Display%20Basics">Display Basics</a>
 
9954
</small>
 
9955
 
 
9956
<br>
 
9957
</div>
 
9958
 
 
9959
<h5 class="subsubsection">Editing all Displays</h5>
 
9960
 
 
9961
   <p>You can view the state of all displays by selecting <code>Data =&gt;
 
9962
Displays</code>.  This invokes the <dfn>Display Editor</dfn>.
 
9963
 
 
9964
<br><p>
 
9965
<div align="center"><img src="PICS/ddd-edit-displays.jpg" alt="PICS/ddd-edit-displays.jpg"></div>
 
9966
<br><p>
 
9967
   <p>The Display Editor shows the properties of each display, using the
 
9968
following fields:
 
9969
 
 
9970
     <dl>
 
9971
<dt><code>Num</code>
 
9972
     <dd>The display number.
 
9973
 
 
9974
     <br><dt><code>Expression</code>
 
9975
     <dd>The displayed expression.
 
9976
 
 
9977
     <br><dt><code>State</code>
 
9978
     <dd>One of
 
9979
 
 
9980
          <dl>
 
9981
<dt><code>enabled</code>
 
9982
          <dd>Normal state.
 
9983
 
 
9984
          <br><dt><code>disabled</code>
 
9985
          <dd>Disabled; all details are hidden.  Use <code>Show</code> to enable.
 
9986
 
 
9987
          <br><dt><code>not active</code>
 
9988
          <dd>Out of scope.
 
9989
 
 
9990
          <br><dt><code>deferred</code>
 
9991
          <dd>Will be created as soon as its <code>Scope</code> is reached (see <a href="#Creating%20Single%20Displays">Creating Single Displays</a>).
 
9992
 
 
9993
          <br><dt><code>clustered</code>
 
9994
          <dd>Part of a cluster (see <a href="#Clustering">Clustering</a>).  Use <code>Undisp =&gt;
 
9995
Uncluster</code> to uncluster.
 
9996
 
 
9997
          <br><dt><code>alias of </code><var>display</var><code></code>
 
9998
          <dd>A suppressed alias of display <var>display</var> (see <a href="#Shared%20Structures">Shared Structures</a>). 
 
9999
</dl>
 
10000
 
 
10001
     <br><dt><code>Scope</code>
 
10002
     <dd>The scope in which the display was created.  For deferred displays, this
 
10003
is the scope in which the display will be created.
 
10004
 
 
10005
     <br><dt><code>Address</code>
 
10006
     <dd>The address of the displayed expression.  Used for resolving aliases
 
10007
(see <a href="#Shared%20Structures">Shared Structures</a>). 
 
10008
</dl>
 
10009
 
 
10010
<div class="node">
 
10011
<p><hr>
 
10012
<small class=header>
 
10013
Node:<a name="Deleting%20Displays">Deleting Displays</a>,
 
10014
Previous:<a rel="previous" accesskey="p" href="#Editing%20all%20Displays">Editing all Displays</a>,
 
10015
Up:<a rel="up" accesskey="u" href="#Display%20Basics">Display Basics</a>
 
10016
</small>
 
10017
 
 
10018
<br>
 
10019
</div>
 
10020
 
 
10021
<h5 class="subsubsection">Deleting Displays</h5>
 
10022
 
 
10023
   <p>To delete a single display, select its title or value and click on the
 
10024
<code>Undisp</code> button.  As an alternative, you can also press <em>mouse
 
10025
button 3</em> on the display and select the <code>Undisplay</code> item.
 
10026
 
 
10027
   <p>When a display is deleted, its immediate ancestors and descendants are
 
10028
automatically selected, so that you can easily delete entire graphs.
 
10029
 
 
10030
   <p>If you have selected only part of a display, clicking on the
 
10031
<code>Undisp</code> button allows you to <em>suppress</em> this part--by
 
10032
applying the <em>Suppress Values</em> theme on the part.  You'll be asked
 
10033
for confirmation first.  See <a href="#Using%20Data%20Themes">Using Data Themes</a>, for details.
 
10034
 
 
10035
<br><p>
 
10036
<div align="center"><img src="PICS/ddd-suppress.jpg" alt="PICS/ddd-suppress.jpg"></div>
 
10037
<br><p>
 
10038
   <p>To delete several displays at once, use the <code>Undisp</code> button in the
 
10039
Display Editor (invoked via <code>Data =&gt; Displays</code>).  Select any
 
10040
number of display items in the usual way and delete them by pressing
 
10041
<code>Undisp</code>.
 
10042
 
 
10043
   <p>As an alternative, you can also use a <small>DDD</small> command:
 
10044
 
 
10045
<pre class="example">     graph undisplay <var>displays<small class="dots">...</small></var>
 
10046
     </pre>
 
10047
 
 
10048
   <p>Here, <var>displays<small class="dots">...</small></var> is either
 
10049
     <ul>
 
10050
<li>a space-separated list of display numbers to disable or enable, or
 
10051
 
 
10052
     <li>a single display name.  If you specify a display by name, all displays
 
10053
with this name will be affected. 
 
10054
</ul>
 
10055
 
 
10056
   <p>If you are using stacked windows, deleting the last display from the
 
10057
data window also automatically closes the data window.  (You can change
 
10058
this via <code>Edit =&gt; Preferences =&gt; Data =&gt; Close
 
10059
data window when deleting last display</code>.)
 
10060
 
 
10061
   <p>If you deleted a display by mistake, use <code>Edit =&gt; Undo</code> to
 
10062
re-create it.
 
10063
 
 
10064
   <p>Finally, you can also cut, copy, and paste displays using the
 
10065
<code>Cut</code>, <code>Copy</code>, and <code>Paste</code> items from the <code>Edit</code>
 
10066
menu.  The clipboard holds the <em>commands</em> used to create the
 
10067
displays; <code>Paste</code> inserts the display commands in the debugger
 
10068
console.  This allows you to save displays for later usage or to copy
 
10069
displays across multiple <small>DDD</small> instances.
 
10070
 
 
10071
<div class="node">
 
10072
<p><hr>
 
10073
<small class=header>
 
10074
Node:<a name="Arrays">Arrays</a>,
 
10075
Next:<a rel="next" accesskey="n" href="#Assignment">Assignment</a>,
 
10076
Previous:<a rel="previous" accesskey="p" href="#Display%20Basics">Display Basics</a>,
 
10077
Up:<a rel="up" accesskey="u" href="#Displaying%20Values">Displaying Values</a>
 
10078
</small>
 
10079
 
 
10080
<br>
 
10081
</div>
 
10082
 
 
10083
<h4 class="subsection">Arrays</h4>
 
10084
 
 
10085
   <p><small>DDD</small> has some special features that facilitate handling of
 
10086
arrays.
 
10087
 
 
10088
<ul class="menu">
 
10089
<li><a accesskey="1" href="#Array%20Slices">Array Slices</a>:                 Displaying <var>from</var>..<var>to</var> parts of an array
 
10090
<li><a accesskey="2" href="#Repeated%20Values">Repeated Values</a>:              How repeated values are handled. 
 
10091
<li><a accesskey="3" href="#Arrays%20as%20Tables">Arrays as Tables</a>:             Displaying two-dimensional arrays. 
 
10092
</ul>
 
10093
 
 
10094
<div class="node">
 
10095
<p><hr>
 
10096
<small class=header>
 
10097
Node:<a name="Array%20Slices">Array Slices</a>,
 
10098
Next:<a rel="next" accesskey="n" href="#Repeated%20Values">Repeated Values</a>,
 
10099
Up:<a rel="up" accesskey="u" href="#Arrays">Arrays</a>
 
10100
</small>
 
10101
 
 
10102
<br>
 
10103
</div>
 
10104
 
 
10105
<h5 class="subsubsection">Array Slices</h5>
 
10106
 
 
10107
   <p>It is often useful to print out several successive objects of the same
 
10108
type in memory; a <dfn>slice</dfn> (section) of an array, or an array of
 
10109
dynamically determined size for which only a pointer exists in the
 
10110
program.
 
10111
 
 
10112
   <p>Using <small>DDD</small>, you can display slices using the
 
10113
<code></code><var>from</var><code>..</code><var>to</var><code></code> notation (see <a href="#Creating%20Multiple%20Displays">Creating Multiple Displays</a>).  But this requires that you already know <var>from</var> and
 
10114
<var>to</var>; it is also inefficient to create several single displays.  If
 
10115
you use <small>GDB</small>, you have yet another alternative.
 
10116
 
 
10117
   <p>Using <small>GDB</small>, you can display successive objects by referring to a
 
10118
contiguous span of memory as an <dfn>artificial array</dfn>, using the binary
 
10119
operator <code>@</code>.  The left operand of <code>@</code> should be the first
 
10120
element of the desired array and be an individual object.  The right
 
10121
operand should be the desired length of the array.  The result is an
 
10122
array value whose elements are all of the type of the left argument. 
 
10123
The first element is actually the left argument; the second element
 
10124
comes from bytes of memory immediately following those that hold the
 
10125
first element, and so on.
 
10126
 
 
10127
   <p>Here is an example.  If a program says
 
10128
 
 
10129
<pre class="example">     int *array = (int *) malloc (len * sizeof (int));
 
10130
     </pre>
 
10131
 
 
10132
<p>you can print the contents of <code>array</code> with
 
10133
 
 
10134
<pre class="example">     print array[0]@len
 
10135
     </pre>
 
10136
 
 
10137
<p>and display the contents with
 
10138
 
 
10139
<pre class="example">     graph display array[0]@len
 
10140
     </pre>
 
10141
 
 
10142
   <p>The general form of displaying an array slice is thus
 
10143
 
 
10144
<pre class="example">     graph display <var>array</var>[<var>first</var>]@<var>nelems</var>
 
10145
     </pre>
 
10146
 
 
10147
<p>where <var>array</var> is the name of the array to display, <var>first</var> is
 
10148
the index of the first element, and <var>nelems</var> is the number of
 
10149
elements to display.
 
10150
 
 
10151
   <p>The left operand of <code>@</code> must reside in memory.  Array values made
 
10152
with <code>@</code> in this way behave just like other arrays in terms of
 
10153
subscripting, and are coerced to pointers when used in expressions.
 
10154
 
 
10155
<div class="node">
 
10156
<p><hr>
 
10157
<small class=header>
 
10158
Node:<a name="Repeated%20Values">Repeated Values</a>,
 
10159
Next:<a rel="next" accesskey="n" href="#Arrays%20as%20Tables">Arrays as Tables</a>,
 
10160
Previous:<a rel="previous" accesskey="p" href="#Array%20Slices">Array Slices</a>,
 
10161
Up:<a rel="up" accesskey="u" href="#Arrays">Arrays</a>
 
10162
</small>
 
10163
 
 
10164
<br>
 
10165
</div>
 
10166
 
 
10167
<h5 class="subsubsection">Repeated Values</h5>
 
10168
 
 
10169
   <p>Using <small>GDB</small>, an array value that is repeated 10 or more times is displayed
 
10170
only once.  The value is shown with a <code>&lt;</code><var>n</var><code>x&gt;</code> postfix added,
 
10171
where <var>n</var> is the number of times the value is repeated.  Thus, the
 
10172
display <code>0x0 &lt;30x&gt;</code> stands for 30 array elements, each with the
 
10173
value <code>0x0</code>.  This saves a lot of display space, especially with
 
10174
homogeneous arrays.
 
10175
 
 
10176
<br><p>
 
10177
<div align="center"><img src="PICS/ddd-repeats.jpg" alt="PICS/ddd-repeats.jpg"></div>
 
10178
<br><p>
 
10179
   <p>The default <small>GDB</small> threshold for repeated array values is 10.  You can
 
10180
change it via <code>Edit =&gt; </code><small>GDB</small><code> Settings =&gt; Threshold for
 
10181
repeated print elements</code>.  Setting the threshold to <code>0</code> will cause
 
10182
<small>GDB</small> (and <small>DDD</small>) to display each array element individually.  Be
 
10183
sure to refresh the data window via <code>Data =&gt; Refresh
 
10184
Displays</code> after a change in <small>GDB</small> settings.
 
10185
 
 
10186
   <p>You can also configure <small>DDD</small> to display each array element
 
10187
individually:
 
10188
 
 
10189
<p>
 
10190
<table width="100%">
 
10191
<tr>
 
10192
<td align="left"><b>expandRepeatedValues</b><i> </i>(<i>class ExpandRepeatedValues</i>)<i>
 
10193
     </i></td>
 
10194
<td align="right">Resource</td>
 
10195
</tr>
 
10196
</table>
 
10197
<table width="95%" align="center">
 
10198
<tr><td>
 
10199
<small>GDB</small> can print repeated array elements as <code></code><var>value</var><code> &lt;repeated
 
10200
</code><var>n</var><code> times&gt;</code>.  If <code>expandRepeatedValues</code> is <code>on</code>,
 
10201
<small>DDD</small> will display <var>n</var> instances of <var>value</var> instead.  If
 
10202
<code>expandRepeatedValues</code> is <code>off</code> (default), <small>DDD</small> will
 
10203
display <var>value</var> with <code>&lt;</code><var>n</var><code>x&gt;</code> appended to indicate the
 
10204
repetition. 
 
10205
</td></tr>
 
10206
</table>
 
10207
 
 
10208
<div class="node">
 
10209
<p><hr>
 
10210
<small class=header>
 
10211
Node:<a name="Arrays%20as%20Tables">Arrays as Tables</a>,
 
10212
Previous:<a rel="previous" accesskey="p" href="#Repeated%20Values">Repeated Values</a>,
 
10213
Up:<a rel="up" accesskey="u" href="#Arrays">Arrays</a>
 
10214
</small>
 
10215
 
 
10216
<br>
 
10217
</div>
 
10218
 
 
10219
<h5 class="subsubsection">Arrays as Tables</h5>
 
10220
 
 
10221
   <p>By default, <small>DDD</small> lays out two-dimensional arrays as tables, such
 
10222
that all array elements are aligned with each other.<a rel="footnote" href="#fn-27"><sup>27</sup></a>  To disable
 
10223
this feature, unset <code>Edit =&gt; Preferences =&gt; Data
 
10224
=&gt; Display Two-Dimensional Arrays as Tables</code>.  This is tied to
 
10225
the following resource:
 
10226
 
 
10227
<p>
 
10228
<table width="100%">
 
10229
<tr>
 
10230
<td align="left"><b>align2dArrays</b><i> </i>(<i>class Align2dArrays</i>)<i>
 
10231
     </i></td>
 
10232
<td align="right">Resource</td>
 
10233
</tr>
 
10234
</table>
 
10235
<table width="95%" align="center">
 
10236
<tr><td>
 
10237
If <code>on</code> (default), <small>DDD</small> lays out two-dimensional arrays
 
10238
as tables, such that all array elements are aligned with each other. 
 
10239
If <code>off</code>, <small>DDD</small> treats a two-dimensional array as an
 
10240
array of one-dimensional arrays, each aligned on its own. 
 
10241
</td></tr>
 
10242
</table>
 
10243
 
 
10244
<div class="node">
 
10245
<p><hr>
 
10246
<small class=header>
 
10247
Node:<a name="Assignment">Assignment</a>,
 
10248
Next:<a rel="next" accesskey="n" href="#Examining%20Structures">Examining Structures</a>,
 
10249
Previous:<a rel="previous" accesskey="p" href="#Arrays">Arrays</a>,
 
10250
Up:<a rel="up" accesskey="u" href="#Displaying%20Values">Displaying Values</a>
 
10251
</small>
 
10252
 
 
10253
<br>
 
10254
</div>
 
10255
 
 
10256
<h4 class="subsection">Assignment to Variables</h4>
 
10257
 
 
10258
   <p>During program execution, you can change the values of arbitrary
 
10259
variables.<a rel="footnote" href="#fn-28"><sup>28</sup></a>
 
10260
 
 
10261
   <p>To change the value of a variable, enter its name in <code>()</code>--for
 
10262
instance, by selecting an occurrence or a display.  Then, click on the
 
10263
<code>Set</code> button.  In a dialog, you can edit the variable value at
 
10264
will; clicking the <code>OK</code> or <code>Apply</code> button commits your change
 
10265
and assigns the new value to the variable.
 
10266
 
 
10267
<br><p>
 
10268
<div align="center"><img src="PICS/ddd-set.jpg" alt="PICS/ddd-set.jpg"></div>
 
10269
<br><p>
 
10270
   <p>To change a displayed value, you can also select <code>Set Value</code> menu
 
10271
from the data popup menu,
 
10272
 
 
10273
   <p>If you made a mistake, you can use <code>Edit =&gt; Undo</code> to re-set
 
10274
the variable to its previous value.
 
10275
 
 
10276
<div class="node">
 
10277
<p><hr>
 
10278
<small class=header>
 
10279
Node:<a name="Examining%20Structures">Examining Structures</a>,
 
10280
Next:<a rel="next" accesskey="n" href="#Customizing%20Displays">Customizing Displays</a>,
 
10281
Previous:<a rel="previous" accesskey="p" href="#Assignment">Assignment</a>,
 
10282
Up:<a rel="up" accesskey="u" href="#Displaying%20Values">Displaying Values</a>
 
10283
</small>
 
10284
 
 
10285
<br>
 
10286
</div>
 
10287
 
 
10288
<h4 class="subsection">Examining Structures</h4>
 
10289
 
 
10290
   <p>Besides displaying simple values, <small>DDD</small> can also visualize the
 
10291
<dfn>Dependencies</dfn> between values--especially pointers and other
 
10292
references that make up complex data structures.
 
10293
 
 
10294
<ul class="menu">
 
10295
<li><a accesskey="1" href="#Dependent%20Values">Dependent Values</a>:             Edges from values to values. 
 
10296
<li><a accesskey="2" href="#Dereferencing%20Pointers">Dereferencing Pointers</a>:       Examining pointer-based data structures. 
 
10297
<li><a accesskey="3" href="#Shared%20Structures">Shared Structures</a>:            Multiple pointers to one display. 
 
10298
<li><a accesskey="4" href="#Display%20Shortcuts">Display Shortcuts</a>:            Customize your own menus. 
 
10299
</ul>
 
10300
 
 
10301
<div class="node">
 
10302
<p><hr>
 
10303
<small class=header>
 
10304
Node:<a name="Dependent%20Values">Dependent Values</a>,
 
10305
Next:<a rel="next" accesskey="n" href="#Dereferencing%20Pointers">Dereferencing Pointers</a>,
 
10306
Up:<a rel="up" accesskey="u" href="#Examining%20Structures">Examining Structures</a>
 
10307
</small>
 
10308
 
 
10309
<br>
 
10310
</div>
 
10311
 
 
10312
<h5 class="subsubsection">Displaying Dependent Values</h5>
 
10313
 
 
10314
   <p>Dependent displays are created from an existing display.  The dependency
 
10315
is indicated by an <dfn>edge</dfn> leading from the originating display to
 
10316
the dependent display.
 
10317
 
 
10318
   <p>To create a dependent display, select the originating display or display
 
10319
part and enter the dependent expression in the <code>():</code> argument
 
10320
field.  Then click on the <code>Display</code> button.
 
10321
 
 
10322
   <p>Using dependent displays, you can investigate the data structure of a
 
10323
tree for example and lay it out according to your intuitive image of the
 
10324
tree data structure.
 
10325
 
 
10326
   <p>By default, <small>DDD</small> does not recognize shared data structures
 
10327
(i.e. a data object referenced by multiple other data objects). 
 
10328
See <a href="#Shared%20Structures">Shared Structures</a>, for details on how to examine such structures.
 
10329
 
 
10330
<div class="node">
 
10331
<p><hr>
 
10332
<small class=header>
 
10333
Node:<a name="Dereferencing%20Pointers">Dereferencing Pointers</a>,
 
10334
Next:<a rel="next" accesskey="n" href="#Shared%20Structures">Shared Structures</a>,
 
10335
Previous:<a rel="previous" accesskey="p" href="#Dependent%20Values">Dependent Values</a>,
 
10336
Up:<a rel="up" accesskey="u" href="#Examining%20Structures">Examining Structures</a>
 
10337
</small>
 
10338
 
 
10339
<br>
 
10340
</div>
 
10341
 
 
10342
<h5 class="subsubsection">Dereferencing Pointers</h5>
 
10343
 
 
10344
   <p>There are special shortcuts for creating dependent displays showing the
 
10345
value of a dereferenced pointer.  This allows for rapid examination of
 
10346
pointer-based data structures.
 
10347
 
 
10348
   <p>To dereference a pointer, select the originating pointer value or name
 
10349
and click on the <code>Disp *</code> button.  A new display showing the
 
10350
dereferenced pointer value is created.
 
10351
 
 
10352
   <p>As a faster alternative, you can also press <em>mouse button 3</em> on the
 
10353
originating pointer value or name and select the <code>Display *</code> menu
 
10354
item.
 
10355
 
 
10356
   <p>As an even faster alternative, you can also double-click <em>mouse
 
10357
button 1</em> on the originating pointer value or name.  If you press
 
10358
&lt;Ctrl&gt; while double-clicking, the display will be dereferenced
 
10359
<em>in place</em>-that is, it will be replaced by the dereferenced
 
10360
display.
 
10361
 
 
10362
   <p>The <code>Display *()</code> function is also accessible by pressing and
 
10363
holding the <code>Display</code> button.
 
10364
 
 
10365
<div class="node">
 
10366
<p><hr>
 
10367
<small class=header>
 
10368
Node:<a name="Shared%20Structures">Shared Structures</a>,
 
10369
Next:<a rel="next" accesskey="n" href="#Display%20Shortcuts">Display Shortcuts</a>,
 
10370
Previous:<a rel="previous" accesskey="p" href="#Dereferencing%20Pointers">Dereferencing Pointers</a>,
 
10371
Up:<a rel="up" accesskey="u" href="#Examining%20Structures">Examining Structures</a>
 
10372
</small>
 
10373
 
 
10374
<br>
 
10375
</div>
 
10376
 
 
10377
<h5 class="subsubsection">Shared Structures</h5>
 
10378
 
 
10379
   <p>By default, <small>DDD</small> does not recognize shared data structures--that
 
10380
is, a data object referenced by multiple other data objects.  For
 
10381
instance, if two pointers <code>p1</code> and <code>p2</code> point at the same data
 
10382
object <code>d</code>, the data displays <code>d</code>, <code>*p1</code>, and <code>*p2</code>
 
10383
will be separate, although they denote the same object.
 
10384
 
 
10385
   <p><small>DDD</small> provides a special mode which makes it detect these
 
10386
situations.  <small>DDD</small> recognizes if two or more data displays are
 
10387
stored at the same physical address, and if this is so, merges all these
 
10388
<dfn>aliases</dfn> into one single data display, the <em>original data
 
10389
display</em>.  This mode is called <em>Alias Detection</em>; it is enabled via
 
10390
<code>Data =&gt; Detect Aliases</code>.
 
10391
 
 
10392
   <p>When alias detection is enabled, <small>DDD</small> inquires the memory
 
10393
location (the <em>address</em>) of each data display after each program
 
10394
step.  If two displays have the same address, they are merged into one. 
 
10395
More specifically, only the one which has least recently changed remains
 
10396
(the <em>original data display</em>); all other aliases are
 
10397
<em>suppressed</em>, i.e. completely hidden.  The edges leading to the
 
10398
aliases are replaced by edges leading to the original data display.
 
10399
 
 
10400
   <p>An edge created by alias detection is somewhat special: rather than
 
10401
connecting two displays directly, it goes through an <dfn>edge hint</dfn>,
 
10402
describing an arc connecting the two displays and the edge hint.
 
10403
 
 
10404
   <p>Each edge hint is a placeholder for a suppressed alias; selecting an
 
10405
edge hint is equivalent to selecting the alias.  This way, you can
 
10406
easily delete display aliases by simply selecting the edge hint and
 
10407
clicking on <code>Undisp</code>.
 
10408
 
 
10409
<br><p>
 
10410
<div align="center"><img src="PICS/ddd-aliases.jpg" alt="PICS/ddd-aliases.jpg"></div>
 
10411
<br><p>
 
10412
   <p>To access suppressed display aliases, you can also use the Display
 
10413
Editor.  Suppressed displays are listed in the Display Editor as
 
10414
<em>aliases</em> of the original data display.  Via the Display Editor,
 
10415
you can select, change, and delete suppressed displays.
 
10416
 
 
10417
   <p>Suppressed displays become visible again as soon as
 
10418
 
 
10419
     <ul>
 
10420
<li>alias detection is disabled,
 
10421
 
 
10422
     <li>their address changes such that they are no more aliases, or
 
10423
 
 
10424
     <li>the original data display is deleted, such that the least recently
 
10425
changed alias becomes the new original data display. 
 
10426
</ul>
 
10427
 
 
10428
   <p>Please note the following <em>caveats</em> with alias detection:
 
10429
 
 
10430
     <ul>
 
10431
<li>Alias detection requires that the current programming language provides
 
10432
a means to determine the address of an arbitrary data object. 
 
10433
Currently, only C, C++, and Java are supported.
 
10434
 
 
10435
     <li>Some inferior debuggers (for instance, SunOS <small>DBX</small>) produce incorrect
 
10436
output for address expressions.  Given a pointer <var>p</var>, you may verify
 
10437
the correct function of your inferior debugger by comparing the values
 
10438
of <var>p</var> and <code>&amp;</code><var>p</var><code></code> (unless <var>p</var> actually points to
 
10439
itself).  You can also examine the data display addresses, as shown in
 
10440
the Display Editor.
 
10441
 
 
10442
     <li>Alias detection slows down <small>DDD</small> slightly, which is why you can turn
 
10443
it off.  You may consider to enable it only at need--for
 
10444
instance, while examining some complex data structure--and disable it
 
10445
while examining control flow (i.e., stepping through your program). 
 
10446
<small>DDD</small> will automatically restore edges and data displays when
 
10447
switching modes. 
 
10448
</ul>
 
10449
 
 
10450
   <p>Alias detection is controlled by the following resources:
 
10451
 
 
10452
<p>
 
10453
<table width="100%">
 
10454
<tr>
 
10455
<td align="left"><b>deleteAliasDisplays</b><i> </i>(<i>class DeleteAliasDisplays</i>)<i>
 
10456
     </i></td>
 
10457
<td align="right">Resource</td>
 
10458
</tr>
 
10459
</table>
 
10460
<table width="95%" align="center">
 
10461
<tr><td>
 
10462
If this is <code>on</code> (default), the <code>Undisplay ()</code> button also
 
10463
deletes all aliases of the selected displays.  If this is <code>off</code>,
 
10464
only the selected displays are deleted; the aliases remain, and one of
 
10465
the aliases will be unsuppressed. 
 
10466
</td></tr>
 
10467
</table>
 
10468
 
 
10469
<p>
 
10470
<table width="100%">
 
10471
<tr>
 
10472
<td align="left"><b>detectAliases</b><i> </i>(<i>class DetectAliases</i>)<i>
 
10473
     </i></td>
 
10474
<td align="right">Resource</td>
 
10475
</tr>
 
10476
</table>
 
10477
<table width="95%" align="center">
 
10478
<tr><td>
 
10479
If <code>on</code> (default), <small>DDD</small> attempts to recognize shared data structures. 
 
10480
If <code>off</code>, shared data structures are not
 
10481
recognized. 
 
10482
</td></tr>
 
10483
</table>
 
10484
 
 
10485
<p>
 
10486
<table width="100%">
 
10487
<tr>
 
10488
<td align="left"><b>typedAliases</b><i> </i>(<i>class TypedAliases</i>)<i>
 
10489
     </i></td>
 
10490
<td align="right">Resource</td>
 
10491
</tr>
 
10492
</table>
 
10493
<table width="95%" align="center">
 
10494
<tr><td>
 
10495
If <code>on</code> (default), <small>DDD</small> requires structural equivalence in
 
10496
order to recognize shared data structures.  If this is <code>off</code>, two
 
10497
displays at the same address are considered aliases, regardless of their
 
10498
structure. 
 
10499
</td></tr>
 
10500
</table>
 
10501
 
 
10502
<div class="node">
 
10503
<p><hr>
 
10504
<small class=header>
 
10505
Node:<a name="Display%20Shortcuts">Display Shortcuts</a>,
 
10506
Previous:<a rel="previous" accesskey="p" href="#Shared%20Structures">Shared Structures</a>,
 
10507
Up:<a rel="up" accesskey="u" href="#Examining%20Structures">Examining Structures</a>
 
10508
</small>
 
10509
 
 
10510
<br>
 
10511
</div>
 
10512
 
 
10513
<h5 class="subsubsection">Display Shortcuts</h5>
 
10514
 
 
10515
   <p><small>DDD</small> maintains a <em>shortcut menu</em> of frequently used display
 
10516
expressions.  This menu is activated
 
10517
 
 
10518
     <ul>
 
10519
<li>by pressing and holding the <code>Display</code> button, or
 
10520
 
 
10521
     <li>by pressing <em>mouse button 3</em> on some display and selecting
 
10522
<code>New Display</code>, or
 
10523
 
 
10524
     <li>by pressing &lt;Shift&gt; and <em>mouse button 3</em> on some display. 
 
10525
</ul>
 
10526
 
 
10527
   <p>By default, the shortcut menu contains frequently used base conversions.
 
10528
 
 
10529
   <p>The <code>Other</code> entry in the shortcut menu lets you create a new
 
10530
display that <em>extends</em> the shortcut menu.
 
10531
 
 
10532
   <p>As an example, assume you have selected a display named <code>date_ptr</code>. 
 
10533
Selecting <code>Display =&gt; Other</code> pops up a dialog that allows
 
10534
you to enter a new expression to be displayed--for instance, you can
 
10535
cast the display <code>date_ptr</code> to a new display <code>(char
 
10536
*)date_ptr</code>.  If the <code>Include in New Display Menu</code> toggle
 
10537
was activated, the shortcut menu will then contain a new entry
 
10538
<code>Display (char *)()</code> that will cast <em>any</em> selected display
 
10539
<var>display</var> to <code>(char *)</code><var>display</var><code></code>.  Such shortcuts can save
 
10540
you a lot of time when examining complex data structures.
 
10541
 
 
10542
<br><p>
 
10543
<div align="center"><img src="PICS/ddd-shortcuts.jpg" alt="PICS/ddd-shortcuts.jpg"></div>
 
10544
<br><p>
 
10545
   <p>You can edit the contents of the <code>New Display</code> menu by selecting
 
10546
its <code>Edit Menu</code> item.  This pops up the <em>Shortcut Editor</em>
 
10547
containing all shortcut expressions, which you can edit at leisure. 
 
10548
Each line contains the expression for exactly one menu item.  Clicking
 
10549
on <code>Apply</code> re-creates the <code>New Display</code> menu from the text. 
 
10550
If the text is empty, the <code>New Display</code> menu will be empty, too.
 
10551
 
 
10552
<br><p>
 
10553
<div align="center"><img src="PICS/ddd-shortcut-editor.jpg" alt="PICS/ddd-shortcut-editor.jpg"></div>
 
10554
<br><p>
 
10555
   <p><small>DDD</small> also allows you to specify individual labels for
 
10556
user-defined buttons.  You can write such a label after the expression,
 
10557
separated by <code>//</code>.  This feature is used in the default contents of
 
10558
the <small>GDB</small> <code>New Display</code> menu, where each of the base conversions has
 
10559
a label:
 
10560
 
 
10561
<pre class="example">     /t ()   // Convert to Bin
 
10562
     /d ()   // Convert to Dec
 
10563
     /x ()   // Convert to Hex
 
10564
     /o ()   // Convert to Oct
 
10565
     </pre>
 
10566
 
 
10567
   <p>Feel free to add other conversions here.  <small>DDD</small> supports up to 20
 
10568
<code>New Display</code> menu items.
 
10569
 
 
10570
   <p>The shortcut menu is controlled by the following resources:
 
10571
 
 
10572
<p>
 
10573
<table width="100%">
 
10574
<tr>
 
10575
<td align="left"><b>dbxDisplayShortcuts</b><i> </i>(<i>class DisplayShortcuts</i>)<i>
 
10576
     </i></td>
 
10577
<td align="right">Resource</td>
 
10578
</tr>
 
10579
</table>
 
10580
<table width="95%" align="center">
 
10581
<tr><td>
 
10582
A newline-separated list of display expressions to be included in the
 
10583
<code>New Display</code> menu for <small>DBX</small>.
 
10584
 
 
10585
     <p>If a line contains a label delimiter<a rel="footnote" href="#fn-29"><sup>29</sup></a>, the string before the delimiter is used as
 
10586
<var>expression</var>, and the string after the delimiter is used as label. 
 
10587
Otherwise, the label is <code>Display </code><var>expression</var><code></code>.  Upon
 
10588
activation, the string <code>()</code> in <var>expression</var> is replaced by the
 
10589
name of the currently selected display. 
 
10590
</td></tr>
 
10591
</table>
 
10592
 
 
10593
<p>
 
10594
<table width="100%">
 
10595
<tr>
 
10596
<td align="left"><b>gdbDisplayShortcuts</b><i> </i>(<i>class DisplayShortcuts</i>)<i>
 
10597
     </i></td>
 
10598
<td align="right">Resource</td>
 
10599
</tr>
 
10600
</table>
 
10601
<table width="95%" align="center">
 
10602
<tr><td>
 
10603
A newline-separated list of display expressions to be included in the
 
10604
<code>New Display</code> menu for <small>GDB</small>.  See the description of
 
10605
<code>dbxDisplayShortcuts</code>, above. 
 
10606
</td></tr>
 
10607
</table>
 
10608
 
 
10609
<p>
 
10610
<table width="100%">
 
10611
<tr>
 
10612
<td align="left"><b>jdbDisplayShortcuts</b><i> </i>(<i>class DisplayShortcuts</i>)<i>
 
10613
     </i></td>
 
10614
<td align="right">Resource</td>
 
10615
</tr>
 
10616
</table>
 
10617
<table width="95%" align="center">
 
10618
<tr><td>
 
10619
A newline-separated list of display expressions to be included in the
 
10620
<code>New Display</code> menu for <small>JDB</small>.  See the description of
 
10621
<code>dbxDisplayShortcuts</code>, above. 
 
10622
</td></tr>
 
10623
</table>
 
10624
 
 
10625
<p>
 
10626
<table width="100%">
 
10627
<tr>
 
10628
<td align="left"><b>perlDisplayShortcuts</b><i> </i>(<i>class DisplayShortcuts</i>)<i>
 
10629
     </i></td>
 
10630
<td align="right">Resource</td>
 
10631
</tr>
 
10632
</table>
 
10633
<table width="95%" align="center">
 
10634
<tr><td>
 
10635
A newline-separated list of display expressions to be included in the
 
10636
<code>New Display</code> menu for Perl.  See the description of
 
10637
<code>dbxDisplayShortcuts</code>, above. 
 
10638
</td></tr>
 
10639
</table>
 
10640
 
 
10641
<p>
 
10642
<table width="100%">
 
10643
<tr>
 
10644
<td align="left"><b>bashDisplayShortcuts</b><i> </i>(<i>class DisplayShortcuts</i>)<i>
 
10645
     </i></td>
 
10646
<td align="right">Resource</td>
 
10647
</tr>
 
10648
</table>
 
10649
<table width="95%" align="center">
 
10650
<tr><td>
 
10651
A newline-separated list of display expressions to be included in the
 
10652
<code>New Display</code> menu for Bash.  See the description of
 
10653
<code>dbxDisplayShortcuts</code>, above. 
 
10654
</td></tr>
 
10655
</table>
 
10656
 
 
10657
<p>
 
10658
<table width="100%">
 
10659
<tr>
 
10660
<td align="left"><b>pydbDisplayShortcuts</b><i> </i>(<i>class DisplayShortcuts</i>)<i>
 
10661
     </i></td>
 
10662
<td align="right">Resource</td>
 
10663
</tr>
 
10664
</table>
 
10665
<table width="95%" align="center">
 
10666
<tr><td>
 
10667
A newline-separated list of display expressions to be included in the
 
10668
<code>New Display</code> menu for <small>PYDB</small>.  See the description of
 
10669
<code>dbxDisplayShortcuts</code>, above. 
 
10670
</td></tr>
 
10671
</table>
 
10672
 
 
10673
<p>
 
10674
<table width="100%">
 
10675
<tr>
 
10676
<td align="left"><b>xdbDisplayShortcuts</b><i> </i>(<i>class DisplayShortcuts</i>)<i>
 
10677
     </i></td>
 
10678
<td align="right">Resource</td>
 
10679
</tr>
 
10680
</table>
 
10681
<table width="95%" align="center">
 
10682
<tr><td>
 
10683
A newline-separated list of display expressions to be included in the
 
10684
<code>New Display</code> menu for <small>XDB</small>.  See the description of
 
10685
<code>dbxDisplayShortcuts</code>, above. 
 
10686
</td></tr>
 
10687
</table>
 
10688
 
 
10689
<div class="node">
 
10690
<p><hr>
 
10691
<small class=header>
 
10692
Node:<a name="Customizing%20Displays">Customizing Displays</a>,
 
10693
Next:<a rel="next" accesskey="n" href="#Layouting%20the%20Graph">Layouting the Graph</a>,
 
10694
Previous:<a rel="previous" accesskey="p" href="#Examining%20Structures">Examining Structures</a>,
 
10695
Up:<a rel="up" accesskey="u" href="#Displaying%20Values">Displaying Values</a>
 
10696
</small>
 
10697
 
 
10698
<br>
 
10699
</div>
 
10700
 
 
10701
<h4 class="subsection">Customizing Displays</h4>
 
10702
 
 
10703
<ul class="menu">
 
10704
<li><a accesskey="1" href="#Using%20Data%20Themes">Using Data Themes</a>: 
 
10705
<li><a accesskey="2" href="#Applying%20Data%20Themes%20to%20Several%20Values">Applying Data Themes to Several Values</a>: 
 
10706
<li><a accesskey="3" href="#Editing%20Themes">Editing Themes</a>: 
 
10707
<li><a accesskey="4" href="#Writing%20Data%20Themes">Writing Data Themes</a>: 
 
10708
<li><a accesskey="5" href="#Display%20Resources">Display Resources</a>: 
 
10709
<li><a accesskey="6" href="#VSL%20Resources">VSL Resources</a>: 
 
10710
</ul>
 
10711
 
 
10712
<div class="node">
 
10713
<p><hr>
 
10714
<small class=header>
 
10715
Node:<a name="Using%20Data%20Themes">Using Data Themes</a>,
 
10716
Next:<a rel="next" accesskey="n" href="#Applying%20Data%20Themes%20to%20Several%20Values">Applying Data Themes to Several Values</a>,
 
10717
Up:<a rel="up" accesskey="u" href="#Customizing%20Displays">Customizing Displays</a>
 
10718
</small>
 
10719
 
 
10720
<br>
 
10721
</div>
 
10722
 
 
10723
<h5 class="subsubsection">Using Data Themes</h5>
 
10724
 
 
10725
   <p><small>DDD</small> provides a simple method to customize displays.  <small>DDD</small> comes
 
10726
with a number of <em>visual modifiers</em>, called <em>data themes</em>.
 
10727
 
 
10728
   <p>Each theme modifies a particular aspect of a data display.  It can be
 
10729
applied to individual displays or to a number of displays.  The themes
 
10730
installed with <small>DDD</small> include:
 
10731
 
 
10732
     <dl>
 
10733
<dt><code>Small Titles</code>
 
10734
     <dd>Apply this theme to show display titles in a smaller font. 
 
10735
<br><dt><code>Small Values</code>
 
10736
     <dd>Apply this theme to display values in a smaller font. 
 
10737
<br><dt><code>Tiny Values</code>
 
10738
     <dd>Apply this theme to display values in a tiny font. 
 
10739
<br><dt><code>Suppress Values</code>
 
10740
     <dd>Apply this theme to display values not at all. 
 
10741
</dl>
 
10742
 
 
10743
   <p>Each of these themes can be applied for specific displays.
 
10744
 
 
10745
<br><p>
 
10746
<div align="center"><img src="PICS/ddd-themes.jpg" alt="PICS/ddd-themes.jpg"></div>
 
10747
<br><p>
 
10748
   <p>To apply a theme on a display,
 
10749
     <ol type=1 start=1>
 
10750
<li>Press <em>mouse button 3</em> on the display. 
 
10751
<li>Select <code>Theme</code>
 
10752
<li>Select the theme to apply.
 
10753
        </ol>
 
10754
 
 
10755
   <p>For instance, to display the variable <code>s</code> in a tiny font, click
 
10756
<em>mouse button 3</em> on the display of <code>s</code>, and select <code>Theme
 
10757
=&gt; Tiny Values =&gt; Apply</code>.
 
10758
 
 
10759
   <p>To unapply a theme, just click on <code>Undo</code> (if you just applied it)
 
10760
or repeat the sequence as above.
 
10761
 
 
10762
<div class="node">
 
10763
<p><hr>
 
10764
<small class=header>
 
10765
Node:<a name="Applying%20Data%20Themes%20to%20Several%20Values">Applying Data Themes to Several Values</a>,
 
10766
Next:<a rel="next" accesskey="n" href="#Editing%20Themes">Editing Themes</a>,
 
10767
Previous:<a rel="previous" accesskey="p" href="#Using%20Data%20Themes">Using Data Themes</a>,
 
10768
Up:<a rel="up" accesskey="u" href="#Customizing%20Displays">Customizing Displays</a>
 
10769
</small>
 
10770
 
 
10771
<br>
 
10772
</div>
 
10773
 
 
10774
<h5 class="subsubsection">Applying Data Themes to Several Values</h5>
 
10775
 
 
10776
   <p>Whenever you want to apply a theme on a <em>struct member</em> or an
 
10777
<em>array element,</em> you will be asked whether to
 
10778
 
 
10779
     <ul>
 
10780
<li>apply the theme on the single value only, or
 
10781
<li>apply the theme on all similar values. 
 
10782
</ul>
 
10783
 
 
10784
   <p>Suppose, for instance, that you don't want to see <code>vptr</code> members
 
10785
anymore.  Then you'd apply the theme <em>Suppress Values</em> on all
 
10786
similar values.
 
10787
 
 
10788
   <p>On the other hand, if you want to highlight one single value only, you'd
 
10789
apply the theme <em>Red Background</em> on only one single value.
 
10790
 
 
10791
   <p>If you find this confirmation annoying, you can define a command button
 
10792
which directly applies the theme.  See <a href="#Defining%20Commands">Defining Commands</a>, for details
 
10793
on defining commands.
 
10794
 
 
10795
   <p>Applying and unapplying themes is associated with the following commands:
 
10796
 
 
10797
<pre class="example">     graph apply theme <var>name</var> <var>pattern</var>
 
10798
     </pre>
 
10799
   applies the theme <var>name</var> on <var>pattern</var>.
 
10800
 
 
10801
<pre class="example">     graph unapply theme <var>name</var> <var>pattern</var>
 
10802
     </pre>
 
10803
   unapplies the theme <var>name</var> on <var>pattern</var>.
 
10804
 
 
10805
<pre class="example">     graph toggle theme <var>name</var> <var>pattern</var>
 
10806
     </pre>
 
10807
   applies the theme <var>name</var> on <var>pattern</var> if it was not already
 
10808
applied, and unapplies it otherwise.
 
10809
 
 
10810
<div class="node">
 
10811
<p><hr>
 
10812
<small class=header>
 
10813
Node:<a name="Editing%20Themes">Editing Themes</a>,
 
10814
Next:<a rel="next" accesskey="n" href="#Writing%20Data%20Themes">Writing Data Themes</a>,
 
10815
Previous:<a rel="previous" accesskey="p" href="#Applying%20Data%20Themes%20to%20Several%20Values">Applying Data Themes to Several Values</a>,
 
10816
Up:<a rel="up" accesskey="u" href="#Customizing%20Displays">Customizing Displays</a>
 
10817
</small>
 
10818
 
 
10819
<br>
 
10820
</div>
 
10821
 
 
10822
<h5 class="subsubsection">Editing Themes</h5>
 
10823
 
 
10824
   <p>Each theme can be globally activated or not.  If a theme is activated,
 
10825
it is applied to all expressions that match its <em>pattern</em>.
 
10826
 
 
10827
   <p>Normally, these patterns are automatically maintained by simply
 
10828
selecting the themes for the individual displays.  However, you can also
 
10829
edit patterns directly.
 
10830
 
 
10831
   <p>Patterns are separated by <code>;</code> and contain shell-like metacharacters:
 
10832
     <ul>
 
10833
<li><code>*</code> matches any sequence of characters. 
 
10834
<li><code>?</code> matches any single character. 
 
10835
<li><code>[</code><var>set</var><code>]</code> matches any character in <var>set</var>.  Character ranges
 
10836
can be expressed using <var>from</var>-<var>to</var>: <code>[0-9a-zA-Z_]</code> is the
 
10837
set of characters allowed in C characters. 
 
10838
<li><code>[!</code><var>set</var><code>]</code> matches any character not in <var>set</var>. 
 
10839
<li>To suppress the special syntactic significance of any metacharacter\n\
 
10840
and match the character exactly, precede it with <code>\</code> (backslash). 
 
10841
<li>To suppress the syntactic significance of <em>all</em> metacharacters,\n\
 
10842
enclose the pattern in double or single quotes.\n\
 
10843
</ul>
 
10844
 
 
10845
   <p>To edit the set of themes, invoke <code>Data =&gt; Themes</code>.
 
10846
 
 
10847
   <p>To apply changes you made to the themes, click on <code>Apply</code>. 
 
10848
To revert the themes to the last saved, click on <code>Reset</code>.
 
10849
 
 
10850
<div class="node">
 
10851
<p><hr>
 
10852
<small class=header>
 
10853
Node:<a name="Writing%20Data%20Themes">Writing Data Themes</a>,
 
10854
Next:<a rel="next" accesskey="n" href="#Display%20Resources">Display Resources</a>,
 
10855
Previous:<a rel="previous" accesskey="p" href="#Editing%20Themes">Editing Themes</a>,
 
10856
Up:<a rel="up" accesskey="u" href="#Customizing%20Displays">Customizing Displays</a>
 
10857
</small>
 
10858
 
 
10859
<br>
 
10860
</div>
 
10861
 
 
10862
<h5 class="subsubsection">Writing Data Themes</h5>
 
10863
 
 
10864
   <p>You can write your own data themes, customizing the display to match
 
10865
your need.  See <a href="ddd-themes.html#Top">Top</a>, for details.
 
10866
 
 
10867
<div class="node">
 
10868
<p><hr>
 
10869
<small class=header>
 
10870
Node:<a name="Display%20Resources">Display Resources</a>,
 
10871
Next:<a rel="next" accesskey="n" href="#VSL%20Resources">VSL Resources</a>,
 
10872
Previous:<a rel="previous" accesskey="p" href="#Writing%20Data%20Themes">Writing Data Themes</a>,
 
10873
Up:<a rel="up" accesskey="u" href="#Customizing%20Displays">Customizing Displays</a>
 
10874
</small>
 
10875
 
 
10876
<br>
 
10877
</div>
 
10878
 
 
10879
<h5 class="subsubsection">Display Resources</h5>
 
10880
 
 
10881
   <p>You can use these resources to control display appearance:
 
10882
 
 
10883
<p>
 
10884
<table width="100%">
 
10885
<tr>
 
10886
<td align="left"><b>autoCloseDataWindow</b><i> </i>(<i>class AutoClose</i>)<i>
 
10887
     </i></td>
 
10888
<td align="right">Resource</td>
 
10889
</tr>
 
10890
</table>
 
10891
<table width="95%" align="center">
 
10892
<tr><td>
 
10893
If this is <code>on</code> (default) and <small>DDD</small> is in stacked window
 
10894
mode, deleting the last display automatically closes the data window. 
 
10895
If this is <code>off</code>, the data window stays open even after deleting
 
10896
the last display. 
 
10897
</td></tr>
 
10898
</table>
 
10899
 
 
10900
<p>
 
10901
<table width="100%">
 
10902
<tr>
 
10903
<td align="left"><b>bumpDisplays</b><i> </i>(<i>class BumpDisplays</i>)<i>
 
10904
     </i></td>
 
10905
<td align="right">Resource</td>
 
10906
</tr>
 
10907
</table>
 
10908
<table width="95%" align="center">
 
10909
<tr><td>
 
10910
If some display <var>d</var> changes size and this resource is <code>on</code>
 
10911
(default), <small>DDD</small> assigns new positions to displays below and on
 
10912
the right of <var>d</var> such that the distance between displays remains
 
10913
constant.  If this is <code>off</code>, other displays are not rearranged. 
 
10914
</td></tr>
 
10915
</table>
 
10916
 
 
10917
<p>
 
10918
<table width="100%">
 
10919
<tr>
 
10920
<td align="left"><b>clusterDisplays</b><i> </i>(<i>class ClusterDisplays</i>)<i>
 
10921
     </i></td>
 
10922
<td align="right">Resource</td>
 
10923
</tr>
 
10924
</table>
 
10925
<table width="95%" align="center">
 
10926
<tr><td>
 
10927
If <code>on</code>, new independent data displays will automatically be
 
10928
clustered.  Default is <code>off</code>, meaning to leave new displays
 
10929
unclustered. 
 
10930
</td></tr>
 
10931
</table>
 
10932
 
 
10933
<p>
 
10934
<table width="100%">
 
10935
<tr>
 
10936
<td align="left"><b>hideInactiveDisplays</b><i> </i>(<i>class HideInactiveDisplays</i>)<i>
 
10937
     </i></td>
 
10938
<td align="right">Resource</td>
 
10939
</tr>
 
10940
</table>
 
10941
<table width="95%" align="center">
 
10942
<tr><td>
 
10943
If some display gets out of scope and this resource is <code>on</code>
 
10944
(default), <small>DDD</small> removes it from the data display.  If this is
 
10945
<code>off</code>, it is simply disabled. 
 
10946
</td></tr>
 
10947
</table>
 
10948
 
 
10949
<p>
 
10950
<table width="100%">
 
10951
<tr>
 
10952
<td align="left"><b>showBaseDisplayTitles</b><i> </i>(<i>class ShowDisplayTitles</i>)<i>
 
10953
     </i></td>
 
10954
<td align="right">Resource</td>
 
10955
</tr>
 
10956
</table>
 
10957
<table width="95%" align="center">
 
10958
<tr><td>
 
10959
Whether to assign titles to base (independent) displays or not. 
 
10960
Default is <code>on</code>. 
 
10961
</td></tr>
 
10962
</table>
 
10963
 
 
10964
<p>
 
10965
<table width="100%">
 
10966
<tr>
 
10967
<td align="left"><b>showDependentDisplayTitles</b><i> </i>(<i>class ShowDisplayTitles</i>)<i>
 
10968
     </i></td>
 
10969
<td align="right">Resource</td>
 
10970
</tr>
 
10971
</table>
 
10972
<table width="95%" align="center">
 
10973
<tr><td>
 
10974
Whether to assign titles to dependent displays or not.  Default is
 
10975
<code>off</code>. 
 
10976
</td></tr>
 
10977
</table>
 
10978
 
 
10979
<p>
 
10980
<table width="100%">
 
10981
<tr>
 
10982
<td align="left"><b>suppressTheme</b><i> </i>(<i>class Theme</i>)<i>
 
10983
     </i></td>
 
10984
<td align="right">Resource</td>
 
10985
</tr>
 
10986
</table>
 
10987
<table width="95%" align="center">
 
10988
<tr><td>
 
10989
The theme to apply when selecting <code>Undisp</code> on a data value. 
 
10990
Default is <code>suppress.vsl</code>. 
 
10991
</td></tr>
 
10992
</table>
 
10993
 
 
10994
<p>
 
10995
<table width="100%">
 
10996
<tr>
 
10997
<td align="left"><b>themes</b><i> </i>(<i>class Themes</i>)<i>
 
10998
     </i></td>
 
10999
<td align="right">Resource</td>
 
11000
</tr>
 
11001
</table>
 
11002
<table width="95%" align="center">
 
11003
<tr><td>
 
11004
A newline-separated list of themes.  Each theme has the format
 
11005
<var>name</var>, tabulator character, <var>pattern</var>. 
 
11006
</td></tr>
 
11007
</table>
 
11008
 
 
11009
<div class="node">
 
11010
<p><hr>
 
11011
<small class=header>
 
11012
Node:<a name="VSL%20Resources">VSL Resources</a>,
 
11013
Previous:<a rel="previous" accesskey="p" href="#Display%20Resources">Display Resources</a>,
 
11014
Up:<a rel="up" accesskey="u" href="#Customizing%20Displays">Customizing Displays</a>
 
11015
</small>
 
11016
 
 
11017
<br>
 
11018
</div>
 
11019
 
 
11020
<h5 class="subsubsection">VSL Resources</h5>
 
11021
 
 
11022
   <p>The following resources control the <small>VSL</small> interpreter:
 
11023
 
 
11024
<p>
 
11025
<table width="100%">
 
11026
<tr>
 
11027
<td align="left"><b>vslBaseDefs</b><i> </i>(<i>class VSLDefs</i>)<i>
 
11028
     </i></td>
 
11029
<td align="right">Resource</td>
 
11030
</tr>
 
11031
</table>
 
11032
<table width="95%" align="center">
 
11033
<tr><td>
 
11034
A string with additional <small>VSL</small> definitions that are appended to the
 
11035
builtin <small>VSL</small> library.  This resource is prepended to the <code>vslDefs</code>
 
11036
resource below and set in the <small>DDD</small> application defaults file;
 
11037
don't change it. 
 
11038
</td></tr>
 
11039
</table>
 
11040
 
 
11041
<p>
 
11042
<table width="100%">
 
11043
<tr>
 
11044
<td align="left"><b>vslDefs</b><i> </i>(<i>class VSLDefs</i>)<i>
 
11045
     </i></td>
 
11046
<td align="right">Resource</td>
 
11047
</tr>
 
11048
</table>
 
11049
<table width="95%" align="center">
 
11050
<tr><td>
 
11051
A string with additional <small>VSL</small> definitions that are appended to the
 
11052
builtin <small>VSL</small> library.  The default value is an empty string.  This
 
11053
resource can be used to override specific <small>VSL</small> definitions that affect
 
11054
the data display.  The preferred method, though, is to write a specific
 
11055
data theme (see <a href="#Writing%20Data%20Themes">Writing Data Themes</a>). 
 
11056
</td></tr>
 
11057
</table>
 
11058
 
 
11059
<p>
 
11060
<table width="100%">
 
11061
<tr>
 
11062
<td align="left"><b>vslLibrary</b><i> </i>(<i>class VSLLibrary</i>)<i>
 
11063
     </i></td>
 
11064
<td align="right">Resource</td>
 
11065
</tr>
 
11066
</table>
 
11067
<table width="95%" align="center">
 
11068
<tr><td>
 
11069
The <small>VSL</small> library to use.  <code>builtin</code> (default) means to
 
11070
use the built-in library, any other value is used as file name. 
 
11071
</td></tr>
 
11072
</table>
 
11073
 
 
11074
<p>
 
11075
<table width="100%">
 
11076
<tr>
 
11077
<td align="left"><b>vslPath</b><i> </i>(<i>class VSLPath</i>)<i>
 
11078
     </i></td>
 
11079
<td align="right">Resource</td>
 
11080
</tr>
 
11081
</table>
 
11082
<table width="95%" align="center">
 
11083
<tr><td>
 
11084
A colon-separated list of directories to search for <small>VSL</small> include
 
11085
files.  The following directory names are special:
 
11086
          <ul>
 
11087
<li>The special directory name <code>user_themes</code> stands for your individual
 
11088
theme directory, typically <code>~/.ddd/themes/</code>. 
 
11089
<li>The special directory name <code>ddd_themes</code> stands for the installed
 
11090
theme directory,
 
11091
typically <code>/usr/local/share/ddd-3.3.9-test2/themes/</code>. 
 
11092
</ul>
 
11093
     Default is <code>user_themes:ddd_themes:.</code>, which means that <small>DDD</small>
 
11094
first searches your theme directory, followed by the system directory
 
11095
and the current directory. 
 
11096
</td></tr>
 
11097
</table>
 
11098
 
 
11099
   <p>If your <small>DDD</small> source distribution is installed in <code>/opt/src</code>,
 
11100
you can use the following settings to read the <small>VSL</small> library from
 
11101
<code>/home/joe/ddd.vsl</code>:
 
11102
 
 
11103
<pre class="example">     Ddd*vslLibrary: /home/joe/ddd.vsl
 
11104
     Ddd*vslPath:    user_themes:.:/opt/src/ddd/ddd:/opt/src/ddd/vsllib
 
11105
     </pre>
 
11106
 
 
11107
   <p><small>VSL</small> include files referenced by <code>/home/joe/ddd.vsl</code> are searched
 
11108
first in the current directory <code>.</code>, then in your theme directory,
 
11109
then in <code>/opt/src/ddd/ddd/</code>, and then in
 
11110
<code>/opt/src/ddd/vsllib/</code>.
 
11111
 
 
11112
   <p>Instead of supplying another <small>VSL</small> library, it is often easier to
 
11113
specify some minor changes to the built-in library
 
11114
(see <a href="#Writing%20Data%20Themes">Writing Data Themes</a>).
 
11115
 
 
11116
<div class="node">
 
11117
<p><hr>
 
11118
<small class=header>
 
11119
Node:<a name="Layouting%20the%20Graph">Layouting the Graph</a>,
 
11120
Next:<a rel="next" accesskey="n" href="#Printing%20the%20Graph">Printing the Graph</a>,
 
11121
Previous:<a rel="previous" accesskey="p" href="#Customizing%20Displays">Customizing Displays</a>,
 
11122
Up:<a rel="up" accesskey="u" href="#Displaying%20Values">Displaying Values</a>
 
11123
</small>
 
11124
 
 
11125
<br>
 
11126
</div>
 
11127
 
 
11128
<h4 class="subsection">Layouting the Graph</h4>
 
11129
 
 
11130
   <p>If you have several displays at once, you may wish to arrange them
 
11131
according to your personal preferences.  This section tells you how you
 
11132
can do this.
 
11133
 
 
11134
<ul class="menu">
 
11135
<li><a accesskey="1" href="#Moving%20Displays">Moving Displays</a>: 
 
11136
<li><a accesskey="2" href="#Scrolling%20Data">Scrolling Data</a>: 
 
11137
<li><a accesskey="3" href="#Aligning%20Displays">Aligning Displays</a>: 
 
11138
<li><a accesskey="4" href="#Automatic%20Layout">Automatic Layout</a>: 
 
11139
<li><a accesskey="5" href="#Rotating%20the%20Graph">Rotating the Graph</a>: 
 
11140
</ul>
 
11141
 
 
11142
<div class="node">
 
11143
<p><hr>
 
11144
<small class=header>
 
11145
Node:<a name="Moving%20Displays">Moving Displays</a>,
 
11146
Next:<a rel="next" accesskey="n" href="#Scrolling%20Data">Scrolling Data</a>,
 
11147
Up:<a rel="up" accesskey="u" href="#Layouting%20the%20Graph">Layouting the Graph</a>
 
11148
</small>
 
11149
 
 
11150
<br>
 
11151
</div>
 
11152
 
 
11153
<h5 class="subsubsection">Moving Displays</h5>
 
11154
 
 
11155
   <p>From time to time, you may wish to move displays at another place in the
 
11156
data window.  You can move a single display by pressing and holding
 
11157
<em>mouse button 1</em> on the display title.  Moving the pointer while
 
11158
holding the button causes all selected displays to move along with the
 
11159
pointer.
 
11160
 
 
11161
   <p>Edge hints can be selected and moved around like other displays.  If an
 
11162
arc goes through the edge hint, you can change the shape of the arc by
 
11163
moving the edge hint around.
 
11164
 
 
11165
   <p>For fine-grain movements, selected displays may also be moved using the
 
11166
arrow keys.  Pressing &lt;Shift&gt; and an arrow key moves displays by
 
11167
single pixels.  Pressing &lt;Ctrl&gt; and arrow keys moves displays by
 
11168
grid positions.
 
11169
 
 
11170
<div class="node">
 
11171
<p><hr>
 
11172
<small class=header>
 
11173
Node:<a name="Scrolling%20Data">Scrolling Data</a>,
 
11174
Next:<a rel="next" accesskey="n" href="#Aligning%20Displays">Aligning Displays</a>,
 
11175
Previous:<a rel="previous" accesskey="p" href="#Moving%20Displays">Moving Displays</a>,
 
11176
Up:<a rel="up" accesskey="u" href="#Layouting%20the%20Graph">Layouting the Graph</a>
 
11177
</small>
 
11178
 
 
11179
<br>
 
11180
</div>
 
11181
 
 
11182
<h5 class="subsubsection">Scrolling Data</h5>
 
11183
 
 
11184
   <p>If the data window becomes too small to hold all displays, scroll bars
 
11185
are created.  If your <small>DDD</small> is set up to use <em>panners</em>
 
11186
instead, a panner is created in the lower right edge.  When the panner
 
11187
is moved around, the window view follows the position of the panner.
 
11188
 
 
11189
   <p>To change from scroll bars to panners, use <code>Edit =&gt; Startup
 
11190
=&gt; Data Scrolling</code> and choose either <code>Panner</code> or
 
11191
<code>Scrollbars</code>.
 
11192
 
 
11193
   <p>This setting is tied to the following resource:
 
11194
 
 
11195
<p>
 
11196
<table width="100%">
 
11197
<tr>
 
11198
<td align="left"><b>pannedGraphEditor</b><i> </i>(<i>class PannedGraphEditor</i>)<i>
 
11199
     </i></td>
 
11200
<td align="right">Resource</td>
 
11201
</tr>
 
11202
</table>
 
11203
<table width="95%" align="center">
 
11204
<tr><td>
 
11205
The control to scroll the graph.
 
11206
 
 
11207
          <ul>
 
11208
<li>If this is <code>on</code>, an Athena panner is used (a kind of
 
11209
two-directional scrollbar). 
 
11210
<li>If this is <code>off</code> (default), two M*tif scrollbars are used. 
 
11211
</ul>
 
11212
 
 
11213
     <p>See <a href="#Options">Options</a>, for the <code>--scrolled-graph-editor</code> and
 
11214
<code>--panned-graph-editor</code> options. 
 
11215
</td></tr>
 
11216
</table>
 
11217
 
 
11218
<div class="node">
 
11219
<p><hr>
 
11220
<small class=header>
 
11221
Node:<a name="Aligning%20Displays">Aligning Displays</a>,
 
11222
Next:<a rel="next" accesskey="n" href="#Automatic%20Layout">Automatic Layout</a>,
 
11223
Previous:<a rel="previous" accesskey="p" href="#Scrolling%20Data">Scrolling Data</a>,
 
11224
Up:<a rel="up" accesskey="u" href="#Layouting%20the%20Graph">Layouting the Graph</a>
 
11225
</small>
 
11226
 
 
11227
<br>
 
11228
</div>
 
11229
 
 
11230
<h5 class="subsubsection">Aligning Displays</h5>
 
11231
 
 
11232
   <p>You can align all displays on the nearest grid position by selecting
 
11233
<code>Data =&gt; Align on Grid</code>.  This is useful for keeping edges
 
11234
strictly horizontal or vertical.
 
11235
 
 
11236
   <p>You can enforce alignment by selecting <code>Edit =&gt; Preferences
 
11237
=&gt; Data =&gt; Auto-align Displays on Nearest Grid Point</code>.  If
 
11238
this feature is enabled, displays can be moved on grid positions only.
 
11239
 
 
11240
<div class="node">
 
11241
<p><hr>
 
11242
<small class=header>
 
11243
Node:<a name="Automatic%20Layout">Automatic Layout</a>,
 
11244
Next:<a rel="next" accesskey="n" href="#Rotating%20the%20Graph">Rotating the Graph</a>,
 
11245
Previous:<a rel="previous" accesskey="p" href="#Aligning%20Displays">Aligning Displays</a>,
 
11246
Up:<a rel="up" accesskey="u" href="#Layouting%20the%20Graph">Layouting the Graph</a>
 
11247
</small>
 
11248
 
 
11249
<br>
 
11250
</div>
 
11251
 
 
11252
<h5 class="subsubsection">Automatic Layout</h5>
 
11253
 
 
11254
   <p>You can layout the entire graph as a tree by selecting <code>Data
 
11255
=&gt; Layout Graph</code>.  The layout direction is determined from the
 
11256
display placement (see <a href="#Placement">Placement</a>) and from the last rotation
 
11257
(see <a href="#Rotating%20the%20Graph">Rotating the Graph</a>).
 
11258
 
 
11259
<br><p>
 
11260
<div align="center"><img src="PICS/ddd-layout.jpg" alt="PICS/ddd-layout.jpg"></div>
 
11261
<br><p>
 
11262
   <p>Layouting the graph may introduce <dfn>edge hints</dfn>; that is, edges are
 
11263
no more straight lines, but lead to an edge hint and from there to their
 
11264
destination.  Edge hints can be moved around like arbitrary displays.
 
11265
 
 
11266
   <p>To enable a more compact layout, you can set the <code>Edit =&gt;
 
11267
Preferences =&gt; Data =&gt; Compact Layout</code> option.  This
 
11268
realizes an alternate layout algorithm, where successors are placed next
 
11269
to their parents.  This algorithm is suitable for homogeneous data
 
11270
structures only.
 
11271
 
 
11272
   <p>You can enforce layout by setting <code>Edit =&gt; Preferences
 
11273
=&gt; Data =&gt; Automatic Layout</code>.  If automatic layout is
 
11274
enabled, the graph is layouted after each change.
 
11275
 
 
11276
<div class="node">
 
11277
<p><hr>
 
11278
<small class=header>
 
11279
Node:<a name="Rotating%20the%20Graph">Rotating the Graph</a>,
 
11280
Previous:<a rel="previous" accesskey="p" href="#Automatic%20Layout">Automatic Layout</a>,
 
11281
Up:<a rel="up" accesskey="u" href="#Layouting%20the%20Graph">Layouting the Graph</a>
 
11282
</small>
 
11283
 
 
11284
<br>
 
11285
</div>
 
11286
 
 
11287
<h5 class="subsubsection">Rotating the Graph</h5>
 
11288
 
 
11289
   <p>You can rotate the entire graph clockwise by 90 degrees by selecting
 
11290
<code>Data =&gt; Rotate Graph</code>.  You may need to layout the graph
 
11291
after rotating it; See <a href="#Automatic%20Layout">Automatic Layout</a>, for details.
 
11292
 
 
11293
<div class="node">
 
11294
<p><hr>
 
11295
<small class=header>
 
11296
Node:<a name="Printing%20the%20Graph">Printing the Graph</a>,
 
11297
Previous:<a rel="previous" accesskey="p" href="#Layouting%20the%20Graph">Layouting the Graph</a>,
 
11298
Up:<a rel="up" accesskey="u" href="#Displaying%20Values">Displaying Values</a>
 
11299
</small>
 
11300
 
 
11301
<br>
 
11302
</div>
 
11303
 
 
11304
<h4 class="subsection">Printing the Graph</h4>
 
11305
 
 
11306
   <p><small>DDD</small> allows for printing the graph picture on PostScript printers
 
11307
or into files.  This is useful for documenting program states.
 
11308
 
 
11309
<br><p>
 
11310
<div align="center"><img src="PICS/ddd-print-graph.jpg" alt="PICS/ddd-print-graph.jpg"></div>
 
11311
<br><p>
 
11312
   <p>To print the graph on a PostScript printer, select <code>File =&gt;
 
11313
Print Graph</code>.  Enter the printing command in the <code>Print Command</code>
 
11314
field.  Click on the <code>OK</code> or the <code>Apply</code> button to start
 
11315
printing.
 
11316
 
 
11317
   <p>As an alternative, you may also print the graph in a file.  Click on the
 
11318
<code>File</code> button and enter the file name in the <code>File Name</code>
 
11319
field.  Click on the <code>Print</code> button to create the file.
 
11320
 
 
11321
   <p>When the graph is printed in a file, two formats are available:
 
11322
 
 
11323
     <ul>
 
11324
<li><code>PostScript</code>--suitable for enclosing the graph in another
 
11325
document;
 
11326
 
 
11327
     <li><code>FIG</code>--suitable for post-processing, using the <code>xfig</code>
 
11328
graphic editor, or for conversion into other formats (among others,
 
11329
<small>IBMGL</small>, TeX, <small>PIC</small>), using the <code>transfig</code> or
 
11330
<code>fig2dev</code> programs. 
 
11331
</ul>
 
11332
 
 
11333
<br><p>
 
11334
<div align="center"><img src="PICS/ddd-print-output.jpg" alt="PICS/ddd-print-output.jpg"></div>
 
11335
<br><p>
 
11336
   <p>Please note the following <em>caveats</em> related to printing graphs:
 
11337
 
 
11338
     <ul>
 
11339
<li>If any displays were selected when invoking the <code>Print</code> dialog, the
 
11340
option <code>Selected Only</code> is set.  This makes <small>DDD</small> print only
 
11341
the selected displays.
 
11342
 
 
11343
     <li>The <code>Color</code>, <code>Orientation</code>, and <code>Paper Size</code> options are
 
11344
meaningful for PostScript only. 
 
11345
</ul>
 
11346
 
 
11347
   <p>These settings are tied to the following resources:
 
11348
 
 
11349
<p>
 
11350
<table width="100%">
 
11351
<tr>
 
11352
<td align="left"><b>printCommand</b><i> </i>(<i>class PrintCommand</i>)<i>
 
11353
     </i></td>
 
11354
<td align="right">Resource</td>
 
11355
</tr>
 
11356
</table>
 
11357
<table width="95%" align="center">
 
11358
<tr><td>
 
11359
The command to print a PostScript file.  Usually <code>lp</code> or
 
11360
<code>lpr</code>. 
 
11361
</td></tr>
 
11362
</table>
 
11363
 
 
11364
<p>
 
11365
<table width="100%">
 
11366
<tr>
 
11367
<td align="left"><b>paperSize</b><i> </i>(<i>class PaperSize</i>)<i>
 
11368
     </i></td>
 
11369
<td align="right">Resource</td>
 
11370
</tr>
 
11371
</table>
 
11372
<table width="95%" align="center">
 
11373
<tr><td>
 
11374
The paper size used for printing, in format <code></code><var>width</var><code> x
 
11375
</code><var>height</var><code></code>.  The default is ISO A4 format, or <code>210mm x 297mm</code>. 
 
11376
</td></tr>
 
11377
</table>
 
11378
 
 
11379
<div class="node">
 
11380
<p><hr>
 
11381
<small class=header>
 
11382
Node:<a name="Plotting%20Values">Plotting Values</a>,
 
11383
Next:<a rel="next" accesskey="n" href="#Examining%20Memory">Examining Memory</a>,
 
11384
Previous:<a rel="previous" accesskey="p" href="#Displaying%20Values">Displaying Values</a>,
 
11385
Up:<a rel="up" accesskey="u" href="#Examining%20Data">Examining Data</a>
 
11386
</small>
 
11387
 
 
11388
<br>
 
11389
</div>
 
11390
 
 
11391
<h3 class="section">Plotting Values</h3>
 
11392
 
 
11393
   <p>If you have huge amounts of numerical data to examine, a picture often
 
11394
says more than a thousand numbers.  Therefore, <small>DDD</small> allows you to
 
11395
draw numerical values in nice 2-D and 3-D plots.
 
11396
 
 
11397
<ul class="menu">
 
11398
<li><a accesskey="1" href="#Plotting%20Arrays">Plotting Arrays</a>:              Plotting 1-D and 2-D arrays. 
 
11399
<li><a accesskey="2" href="#Plot%20Appearance">Plot Appearance</a>:              Controlling the appearance. 
 
11400
<li><a accesskey="3" href="#Scalars%20and%20Composites">Scalars and Composites</a>:       Plotting simple values. 
 
11401
<li><a accesskey="4" href="#Plotting%20Histories">Plotting Histories</a>:           Plotting the history of a variable. 
 
11402
<li><a accesskey="5" href="#Printing%20Plots">Printing Plots</a>:               Printing on paper. 
 
11403
<li><a accesskey="6" href="#Entering%20Plotting%20Commands">Entering Plotting Commands</a>:   Raw Gnuplot commands. 
 
11404
<li><a accesskey="7" href="#Exporting%20Plot%20Data">Exporting Plot Data</a>:          Processing data outside of <small>DDD</small>
 
11405
<li><a accesskey="8" href="#Animating%20Plots">Animating Plots</a>:              Visualizing dynamic behaviour. 
 
11406
<li><a accesskey="9" href="#Customizing%20Plots">Customizing Plots</a>:            All at your leisure. 
 
11407
</ul>
 
11408
 
 
11409
<div class="node">
 
11410
<p><hr>
 
11411
<small class=header>
 
11412
Node:<a name="Plotting%20Arrays">Plotting Arrays</a>,
 
11413
Next:<a rel="next" accesskey="n" href="#Plot%20Appearance">Plot Appearance</a>,
 
11414
Up:<a rel="up" accesskey="u" href="#Plotting%20Values">Plotting Values</a>
 
11415
</small>
 
11416
 
 
11417
<br>
 
11418
</div>
 
11419
 
 
11420
<h4 class="subsection">Plotting Arrays</h4>
 
11421
 
 
11422
   <p>Basically, <small>DDD</small> can plot two types of numerical values:
 
11423
 
 
11424
     <ul>
 
11425
<li>One-dimensional arrays.  These are drawn in a 2-D <var>x</var>/<var>y</var> space,
 
11426
where <var>x</var> denotes the array index, and <var>y</var> the element value.
 
11427
 
 
11428
     <li>Two-dimensional arrays.  These are drawn in a 3-D
 
11429
<var>x</var>/<var>y</var>/<var>z</var> space, where <var>x</var> and <var>y</var> denote the
 
11430
array indexes, and <var>z</var> the element value. 
 
11431
</ul>
 
11432
 
 
11433
   <p>To plot a fixed-size array, select its name by clicking <em>mouse
 
11434
button 1</em> on an occurrence.  The array name is copied to the argument
 
11435
field.  By clicking the <code>Plot</code> button, a new display is created in
 
11436
the data window, followed by a new top-level window containing the value
 
11437
plot.
 
11438
 
 
11439
   <p>To plot a dynamically sized array, you must use an array slice
 
11440
(see <a href="#Array%20Slices">Array Slices</a>).  In the argument field, enter
 
11441
 
 
11442
<pre class="example">     <var>array</var>[<var>first</var>]@<var>nelems</var>
 
11443
     </pre>
 
11444
 
 
11445
<p>where <var>array</var> is the name of the array to display, <var>first</var> is
 
11446
the index of the first element, and <var>nelems</var> is the number of
 
11447
elements to display.  Then, click on <code>Plot</code> to start the plot.
 
11448
 
 
11449
   <p>To plot a value, you can also enter a command at the debugger prompt:
 
11450
 
 
11451
<pre class="example">     graph plot <var>expr</var>
 
11452
     </pre>
 
11453
 
 
11454
<p>works like <code>graph display </code><var>expr</var><code></code> (and takes the same
 
11455
arguments; see <a href="#Creating%20Single%20Displays">Creating Single Displays</a>), but the value is
 
11456
additionally shown in the plot window.
 
11457
 
 
11458
   <p>Each time the value changes during program execution, the plot is
 
11459
updated to reflect the current values.  The plot window remains active
 
11460
until you close it (via <code>File =&gt; Close</code>) or until the
 
11461
associated display is deleted.
 
11462
 
 
11463
<div class="node">
 
11464
<p><hr>
 
11465
<small class=header>
 
11466
Node:<a name="Plot%20Appearance">Plot Appearance</a>,
 
11467
Next:<a rel="next" accesskey="n" href="#Scalars%20and%20Composites">Scalars and Composites</a>,
 
11468
Previous:<a rel="previous" accesskey="p" href="#Plotting%20Arrays">Plotting Arrays</a>,
 
11469
Up:<a rel="up" accesskey="u" href="#Plotting%20Values">Plotting Values</a>
 
11470
</small>
 
11471
 
 
11472
<br>
 
11473
</div>
 
11474
 
 
11475
<h4 class="subsection">Changing the Plot Appearance</h4>
 
11476
 
 
11477
   <p>The actual drawing is not done by <small>DDD</small> itself.  Instead,
 
11478
<small>DDD</small> relies on an external <code>gnuplot</code> program to create the
 
11479
drawing.
 
11480
 
 
11481
   <p><small>DDD</small> adds a menu bar to the Gnuplot plot window that lets you
 
11482
influence the appearance of the plot:
 
11483
 
 
11484
     <ul>
 
11485
<li>The <code>View</code> menu toggles optional parts of the plot, such as
 
11486
border lines or a background grid.
 
11487
 
 
11488
     <li>The <code>Plot</code> menu changes the <dfn>plotting style</dfn>.  The <code>3-D
 
11489
Lines</code> option is useful for plotting two-dimensional arrays.
 
11490
 
 
11491
     <li>The <code>Scale</code> menu allows you to enable logarithmic scaling and to
 
11492
enable or disable the scale tics.
 
11493
 
 
11494
     <li>The <code>Contour</code> menu adds contour lines to 3-D plots. 
 
11495
</ul>
 
11496
 
 
11497
   <p>In a 3-D plot, you can use the scroll bars to change your view position. 
 
11498
The horizontal scroll bar rotates the plot around the <var>z</var> axis, that
 
11499
is, to the left and right.  The vertical scroll bar rotates the plot
 
11500
around the <var>y</var> axis, that is, up and down.
 
11501
 
 
11502
<br><p>
 
11503
<div align="center"><img src="PICS/ddd-plots.jpg" alt="PICS/ddd-plots.jpg"></div>
 
11504
<br><p>
 
11505
   <p>You can also resize the plot window as desired.
 
11506
 
 
11507
<div class="node">
 
11508
<p><hr>
 
11509
<small class=header>
 
11510
Node:<a name="Scalars%20and%20Composites">Scalars and Composites</a>,
 
11511
Next:<a rel="next" accesskey="n" href="#Plotting%20Histories">Plotting Histories</a>,
 
11512
Previous:<a rel="previous" accesskey="p" href="#Plot%20Appearance">Plot Appearance</a>,
 
11513
Up:<a rel="up" accesskey="u" href="#Plotting%20Values">Plotting Values</a>
 
11514
</small>
 
11515
 
 
11516
<br>
 
11517
</div>
 
11518
 
 
11519
<h4 class="subsection">Plotting Scalars and Composites</h4>
 
11520
 
 
11521
   <p>Besides plotting arrays, <small>DDD</small> also allows you to plot scalars
 
11522
(simple numerical values).  This works just like plotting arrays--you
 
11523
select the numerical variable, click on <code>Plot</code>, and here comes the
 
11524
plot.  However, plotting a scalar is not very exciting.  A plot that
 
11525
contains nothing but a scalar simply draws the scalar's value as a
 
11526
<var>y</var> constant--that is, a horizontal line.
 
11527
 
 
11528
   <p>So why care about scalars at all?  <small>DDD</small> allows you to combine
 
11529
<em>multiple values into one plot.</em>  The basic idea is: if you want to
 
11530
plot something that is neither an array nor a scalar, <small>DDD</small> takes all
 
11531
numerical sub-values it can find and plots them all together in one
 
11532
window.  For instance, you can plot all local variables by selecting
 
11533
<code>Data =&gt; Display Local Variables</code>, followed by <code>Plot</code>. 
 
11534
This will create a plot containing all numerical values as found in the
 
11535
current local variables.  Likewise, you can plot all numeric members
 
11536
contained in a structure by selecting it, followed by <code>Plot</code>.
 
11537
 
 
11538
   <p>If you want more control about what to include in a plot and what not,
 
11539
you can use <em>display clusters</em> (see <a href="#Clustering">Clustering</a>).  A common
 
11540
scenario is to plot a one-dimensional array together with the current
 
11541
index position.  This is done in three steps:
 
11542
 
 
11543
     <ol type=1 start=1>
 
11544
<li>Display the array and the index, using <code>Display</code>.
 
11545
 
 
11546
     <li>Cluster both displays: select them and choose <code>Undisp =&gt;
 
11547
Cluster ()</code>.
 
11548
 
 
11549
     <li>Plot the cluster by pressing <code>Plot</code>.
 
11550
        </ol>
 
11551
 
 
11552
   <p>Scalars that are displayed together with arrays can be displayed either
 
11553
as vertical lines or horizontal lines.  By default, scalars are plotted
 
11554
as horizontal lines.  However, if a scalar is a valid index for an array
 
11555
that was previously plotted, it is shown as a vertical line.  You can
 
11556
change this initial orientation by selecting the scalar display, followed
 
11557
by <code>Rotate</code>.
 
11558
 
 
11559
<div class="node">
 
11560
<p><hr>
 
11561
<small class=header>
 
11562
Node:<a name="Plotting%20Histories">Plotting Histories</a>,
 
11563
Next:<a rel="next" accesskey="n" href="#Printing%20Plots">Printing Plots</a>,
 
11564
Previous:<a rel="previous" accesskey="p" href="#Scalars%20and%20Composites">Scalars and Composites</a>,
 
11565
Up:<a rel="up" accesskey="u" href="#Plotting%20Values">Plotting Values</a>
 
11566
</small>
 
11567
 
 
11568
<br>
 
11569
</div>
 
11570
 
 
11571
<h4 class="subsection">Plotting Display Histories</h4>
 
11572
 
 
11573
   <p>At each program stop, <small>DDD</small> records the values of all displayed
 
11574
variables, such that you can "undo" program execution (see <a href="#Undoing%20Program%20Execution">Undoing Program Execution</a>).  These <em>display histories</em> can be plotted,
 
11575
too.  The menu item <code>Plot =&gt; Plot history of ()</code> creates a
 
11576
plot that shows all previously recorded values of the selected display.
 
11577
 
 
11578
<div class="node">
 
11579
<p><hr>
 
11580
<small class=header>
 
11581
Node:<a name="Printing%20Plots">Printing Plots</a>,
 
11582
Next:<a rel="next" accesskey="n" href="#Entering%20Plotting%20Commands">Entering Plotting Commands</a>,
 
11583
Previous:<a rel="previous" accesskey="p" href="#Plotting%20Histories">Plotting Histories</a>,
 
11584
Up:<a rel="up" accesskey="u" href="#Plotting%20Values">Plotting Values</a>
 
11585
</small>
 
11586
 
 
11587
<br>
 
11588
</div>
 
11589
 
 
11590
<h4 class="subsection">Printing Plots</h4>
 
11591
 
 
11592
   <p>If you want to print the plot, select <code>File =&gt; Print Plot</code>. 
 
11593
This pops up the <small>DDD</small> printing dialog, set up for printing plots. 
 
11594
Just as when printing graphs, you have the choice between printing to a
 
11595
printer or a file and setting up appropriate options.
 
11596
 
 
11597
   <p>The actual printing is also performed by Gnuplot, using the appropriate
 
11598
driver.  Please note the following <em>caveats</em> related to printing:
 
11599
 
 
11600
     <ul>
 
11601
<li>Creating <code>FIG</code> files requires an appropriate driver built into
 
11602
Gnuplot.  Your Gnuplot program may not contain such a driver.  In this
 
11603
case, you will have to recompile Gnuplot, including the line
 
11604
<code>#define FIG</code> in the Gnuplot <code>term.h</code> file.
 
11605
 
 
11606
     <li>The <code>Portrait</code> option generates an <small>EPS</small> file useful for
 
11607
inclusion in other documents.  The <code>Landscape</code> option makes
 
11608
<small>DDD</small> print the plot in the size specified in the <code>Paper
 
11609
Size</code> option; this is useful for printing on a printer.  In
 
11610
<code>Portrait</code> mode, the <code>Paper Size</code> option is ignored.
 
11611
 
 
11612
     <li>The Gnuplot device drivers for PostScript and X11 each have their own
 
11613
set of colors, such that the printed colors may differ from the
 
11614
displayed colors.
 
11615
 
 
11616
     <li>The <code>Selected Only</code> option is set by default, such that only the
 
11617
currently selected plot is printed.  (If you select multiple plots to be
 
11618
printed, the respective outputs will all be concatenated, which may not
 
11619
be what you desire.) 
 
11620
</ul>
 
11621
 
 
11622
<div class="node">
 
11623
<p><hr>
 
11624
<small class=header>
 
11625
Node:<a name="Entering%20Plotting%20Commands">Entering Plotting Commands</a>,
 
11626
Next:<a rel="next" accesskey="n" href="#Exporting%20Plot%20Data">Exporting Plot Data</a>,
 
11627
Previous:<a rel="previous" accesskey="p" href="#Printing%20Plots">Printing Plots</a>,
 
11628
Up:<a rel="up" accesskey="u" href="#Plotting%20Values">Plotting Values</a>
 
11629
</small>
 
11630
 
 
11631
<br>
 
11632
</div>
 
11633
 
 
11634
<h4 class="subsection">Entering Plotting Commands</h4>
 
11635
 
 
11636
   <p>Via <code>File =&gt; Command</code>, you can enter Gnuplot commands
 
11637
directly.  Each command entered at the <code>gnuplot&gt;</code> prompt is passed
 
11638
to Gnuplot, followed by a Gnuplot <code>replot</code> command to update the
 
11639
view.  This is useful for advanced Gnuplot tasks.
 
11640
 
 
11641
   <p>Here's a simple example.  The Gnuplot command
 
11642
 
 
11643
<pre class="example">     set xrange [<var>xmin</var>:<var>xmax</var>]
 
11644
     </pre>
 
11645
 
 
11646
<p>sets the horizontal range that will be displayed to
 
11647
<var>xmin</var><small class="dots">...</small><var>xmax</var>.  To plot only the elements 10 to 20, enter:
 
11648
 
 
11649
<pre class="example">     gnuplot&gt; <kbd>set xrange [10:20]</kbd>
 
11650
     gnuplot&gt; _
 
11651
     </pre>
 
11652
 
 
11653
   <p>After each command entered, <small>DDD</small> adds a <code>replot</code> command, such
 
11654
that the plot is updated automatically.
 
11655
 
 
11656
   <p>Here's a more complex example.  The following sequence of Gnuplot
 
11657
commands saves the plot in TeX format:
 
11658
 
 
11659
<pre class="example">     gnuplot&gt; <kbd>set output "plot.tex"</kbd> # Set the output filename
 
11660
     gnuplot&gt; <kbd>set term latex</kbd>        # Set the output format
 
11661
     gnuplot&gt; <kbd>set term x11</kbd>          # Show original picture again
 
11662
     gnuplot&gt; _
 
11663
     </pre>
 
11664
 
 
11665
   <p>Due to the implicit <code>replot</code> command, the output is automatically
 
11666
written to <code>plot.tex</code> after the <code>set term latex</code> command.
 
11667
 
 
11668
   <p>The dialog keeps track of the commands entered; use the arrow keys to
 
11669
restore previous commands.  Gnuplot error messages (if any) are also
 
11670
shown in the history area.
 
11671
 
 
11672
   <p>The interaction between <small>DDD</small> and Gnuplot is logged in the file
 
11673
<code>~/.ddd/log</code> (see <a href="#Logging">Logging</a>).  The <small>DDD</small>
 
11674
<code>--trace</code> option logs this interaction on standard output.
 
11675
 
 
11676
<div class="node">
 
11677
<p><hr>
 
11678
<small class=header>
 
11679
Node:<a name="Exporting%20Plot%20Data">Exporting Plot Data</a>,
 
11680
Next:<a rel="next" accesskey="n" href="#Animating%20Plots">Animating Plots</a>,
 
11681
Previous:<a rel="previous" accesskey="p" href="#Entering%20Plotting%20Commands">Entering Plotting Commands</a>,
 
11682
Up:<a rel="up" accesskey="u" href="#Plotting%20Values">Plotting Values</a>
 
11683
</small>
 
11684
 
 
11685
<br>
 
11686
</div>
 
11687
 
 
11688
<h4 class="subsection">Exporting Plot Data</h4>
 
11689
 
 
11690
   <p>If you want some external program to process the plot data (a
 
11691
stand-alone Gnuplot program or the <code>xmgr</code> program, for instance),
 
11692
you can save the plot data in a file, using <code>File =&gt; Save
 
11693
Data As</code>.  This pops up a dialog that lets you choose a data file to
 
11694
save the plotted data in.
 
11695
 
 
11696
   <p>The generated file starts with a few comment lines.  The actual data
 
11697
follows in X/Y or X/Y/Z format.  It is the same file as processed by
 
11698
Gnuplot.
 
11699
 
 
11700
<div class="node">
 
11701
<p><hr>
 
11702
<small class=header>
 
11703
Node:<a name="Animating%20Plots">Animating Plots</a>,
 
11704
Next:<a rel="next" accesskey="n" href="#Customizing%20Plots">Customizing Plots</a>,
 
11705
Previous:<a rel="previous" accesskey="p" href="#Exporting%20Plot%20Data">Exporting Plot Data</a>,
 
11706
Up:<a rel="up" accesskey="u" href="#Plotting%20Values">Plotting Values</a>
 
11707
</small>
 
11708
 
 
11709
<br>
 
11710
</div>
 
11711
 
 
11712
<h4 class="subsection">Animating Plots</h4>
 
11713
 
 
11714
   <p>If you want to see how your data evolves in time, you can set a
 
11715
breakpoint whose command sequence ends in a <code>cont</code> command
 
11716
(see <a href="#Breakpoint%20Commands">Breakpoint Commands</a>.  Each time this "continue" breakpoint is
 
11717
reached, the program stops and <small>DDD</small> updates the displayed values,
 
11718
including the plots.  Then, <small>DDD</small> executes the breakpoint command
 
11719
sequence, resuming execution.
 
11720
 
 
11721
   <p>This way, you can set a "continue" breakpoint at some decisive point
 
11722
within an array-processing algorithm and have <small>DDD</small> display the
 
11723
progress graphically.  When your program has stopped for good, you can
 
11724
use <code>Undo</code> and <code>Redo</code> to redisplay and examine previous
 
11725
program states.  See <a href="#Undoing%20Program%20Execution">Undoing Program Execution</a>, for details.
 
11726
 
 
11727
<div class="node">
 
11728
<p><hr>
 
11729
<small class=header>
 
11730
Node:<a name="Customizing%20Plots">Customizing Plots</a>,
 
11731
Previous:<a rel="previous" accesskey="p" href="#Animating%20Plots">Animating Plots</a>,
 
11732
Up:<a rel="up" accesskey="u" href="#Plotting%20Values">Plotting Values</a>
 
11733
</small>
 
11734
 
 
11735
<br>
 
11736
</div>
 
11737
 
 
11738
<h4 class="subsection">Customizing Plots</h4>
 
11739
 
 
11740
   <p>You can customize the Gnuplot program to invoke, as well as a number of
 
11741
basic settings.
 
11742
 
 
11743
<ul class="menu">
 
11744
<li><a accesskey="1" href="#Gnuplot%20Invocation">Gnuplot Invocation</a>: 
 
11745
<li><a accesskey="2" href="#Gnuplot%20Settings">Gnuplot Settings</a>: 
 
11746
</ul>
 
11747
 
 
11748
<div class="node">
 
11749
<p><hr>
 
11750
<small class=header>
 
11751
Node:<a name="Gnuplot%20Invocation">Gnuplot Invocation</a>,
 
11752
Next:<a rel="next" accesskey="n" href="#Gnuplot%20Settings">Gnuplot Settings</a>,
 
11753
Up:<a rel="up" accesskey="u" href="#Customizing%20Plots">Customizing Plots</a>
 
11754
</small>
 
11755
 
 
11756
<br>
 
11757
</div>
 
11758
 
 
11759
<h5 class="subsubsection">Gnuplot Invocation</h5>
 
11760
 
 
11761
   <p>Using <code>Edit =&gt; Preferences =&gt; Helpers =&gt;
 
11762
Plot</code>, you can choose the Gnuplot program to invoke.  This is tied to
 
11763
the following resource:
 
11764
 
 
11765
<p>
 
11766
<table width="100%">
 
11767
<tr>
 
11768
<td align="left"><b>plotCommand</b><i> </i>(<i>class PlotCommand</i>)<i>
 
11769
     </i></td>
 
11770
<td align="right">Resource</td>
 
11771
</tr>
 
11772
</table>
 
11773
<table width="95%" align="center">
 
11774
<tr><td>
 
11775
The name of a Gnuplot executable.  Default is <code>gnuplot</code>,
 
11776
followed by some options to set up colors and the initial geometry. 
 
11777
</td></tr>
 
11778
</table>
 
11779
 
 
11780
   <p>Using <code>Edit =&gt; Preferences =&gt; Helpers =&gt; Plot
 
11781
Window</code>, you can choose whether to use the Gnuplot plot window
 
11782
(<code>External</code>) or to use the plot window supplied by <small>DDD</small>
 
11783
(<code>builtin</code>).  This is tied to the following resource:
 
11784
 
 
11785
<p>
 
11786
<table width="100%">
 
11787
<tr>
 
11788
<td align="left"><b>plotTermType</b><i> </i>(<i>class PlotTermType</i>)<i>
 
11789
     </i></td>
 
11790
<td align="right">Resource</td>
 
11791
</tr>
 
11792
</table>
 
11793
<table width="95%" align="center">
 
11794
<tr><td>
 
11795
The Gnuplot terminal type.  Can have one of two values:
 
11796
          <ul>
 
11797
<li>If this is <code>x11</code>, <small>DDD</small> "swallows" the <em>external</em>
 
11798
Gnuplot output window into its own user interface.  Some window
 
11799
managers, notably <code>mwm</code>, have trouble with swallowing techniques. 
 
11800
<li>Setting this resource to <code>xlib</code> (default) makes <small>DDD</small>
 
11801
provide a <em>builtin plot window</em> instead.  In this mode, plots work
 
11802
well with any window manager, but are less customizable (Gnuplot
 
11803
resources are not understood). 
 
11804
</ul>
 
11805
     </td></tr>
 
11806
</table>
 
11807
 
 
11808
   <p>You can further control interaction with the external plot window:
 
11809
 
 
11810
<p>
 
11811
<table width="100%">
 
11812
<tr>
 
11813
<td align="left"><b>plotWindowClass</b><i> </i>(<i>class PlotWindowClass</i>)<i>
 
11814
     </i></td>
 
11815
<td align="right">Resource</td>
 
11816
</tr>
 
11817
</table>
 
11818
<table width="95%" align="center">
 
11819
<tr><td>
 
11820
The class of the Gnuplot output window.  When invoking Gnuplot,
 
11821
<small>DDD</small> waits for a window with this class and incorporates it into
 
11822
its own user interface (unless <code>plotTermType</code> is <code>xlib</code>; see
 
11823
above).  Default is <code>Gnuplot</code>. 
 
11824
</td></tr>
 
11825
</table>
 
11826
 
 
11827
<p>
 
11828
<table width="100%">
 
11829
<tr>
 
11830
<td align="left"><b>plotWindowDelay</b><i> </i>(<i>class WindowDelay</i>)<i>
 
11831
     </i></td>
 
11832
<td align="right">Resource</td>
 
11833
</tr>
 
11834
</table>
 
11835
<table width="95%" align="center">
 
11836
<tr><td>
 
11837
The time (in ms) to wait for the creation of the Gnuplot window.  Before
 
11838
this delay, <small>DDD</small> looks at each newly created window to see
 
11839
whether this is the plot window to swallow.  This is cheap, but
 
11840
unfortunately, some window managers do not pass the creation event to
 
11841
<small>DDD</small>.  If this delay has passed, and <small>DDD</small> has not found
 
11842
the plot window, <small>DDD</small> searches <em>all</em> existing windows, which
 
11843
is pretty expensive.  Default time is <code>2000</code>. 
 
11844
</td></tr>
 
11845
</table>
 
11846
 
 
11847
<div class="node">
 
11848
<p><hr>
 
11849
<small class=header>
 
11850
Node:<a name="Gnuplot%20Settings">Gnuplot Settings</a>,
 
11851
Previous:<a rel="previous" accesskey="p" href="#Gnuplot%20Invocation">Gnuplot Invocation</a>,
 
11852
Up:<a rel="up" accesskey="u" href="#Customizing%20Plots">Customizing Plots</a>
 
11853
</small>
 
11854
 
 
11855
<br>
 
11856
</div>
 
11857
 
 
11858
<h5 class="subsubsection">Gnuplot Settings</h5>
 
11859
 
 
11860
   <p>To change Gnuplot settings, use these resources:
 
11861
 
 
11862
<p>
 
11863
<table width="100%">
 
11864
<tr>
 
11865
<td align="left"><b>plotInitCommands</b><i> </i>(<i>class PlotInitCommands</i>)<i>
 
11866
     </i></td>
 
11867
<td align="right">Resource</td>
 
11868
</tr>
 
11869
</table>
 
11870
<table width="95%" align="center">
 
11871
<tr><td>
 
11872
The initial Gnuplot commands issued by <small>DDD</small>.  Default is:
 
11873
 
 
11874
     <pre class="example">          set parametric
 
11875
          set urange [0:1]
 
11876
          set vrange [0:1]
 
11877
          set trange [0:1]
 
11878
          </pre>
 
11879
 
 
11880
     <p>The <code>parametric</code> setting is required to make Gnuplot understand the
 
11881
data files as generated <small>DDD</small>.  The range commands are used to
 
11882
plot scalars. 
 
11883
</td></tr>
 
11884
</table>
 
11885
 
 
11886
   <p>See the Gnuplot documentation for additional commands.
 
11887
 
 
11888
<p>
 
11889
<table width="100%">
 
11890
<tr>
 
11891
<td align="left"><b>plot2dSettings</b><i> </i>(<i>class PlotSettings</i>)<i>
 
11892
     </i></td>
 
11893
<td align="right">Resource</td>
 
11894
</tr>
 
11895
</table>
 
11896
<table width="95%" align="center">
 
11897
<tr><td>
 
11898
Additional initial settings for 2-D plots.  Default is <code>set
 
11899
noborder</code>.  Feel free to customize these settings as desired. 
 
11900
</td></tr>
 
11901
</table>
 
11902
 
 
11903
<p>
 
11904
<table width="100%">
 
11905
<tr>
 
11906
<td align="left"><b>plot3dSettings</b><i> </i>(<i>class PlotSettings</i>)<i>
 
11907
     </i></td>
 
11908
<td align="right">Resource</td>
 
11909
</tr>
 
11910
</table>
 
11911
<table width="95%" align="center">
 
11912
<tr><td>
 
11913
Additional initial settings for 3-D plots.  Default is <code>set
 
11914
border</code>.  Feel free to customize these settings as desired. 
 
11915
</td></tr>
 
11916
</table>
 
11917
 
 
11918
<div class="node">
 
11919
<p><hr>
 
11920
<small class=header>
 
11921
Node:<a name="Examining%20Memory">Examining Memory</a>,
 
11922
Previous:<a rel="previous" accesskey="p" href="#Plotting%20Values">Plotting Values</a>,
 
11923
Up:<a rel="up" accesskey="u" href="#Examining%20Data">Examining Data</a>
 
11924
</small>
 
11925
 
 
11926
<br>
 
11927
</div>
 
11928
 
 
11929
<h3 class="section">Examining Memory</h3>
 
11930
 
 
11931
   <p>Using <small>GDB</small> or <small>DBX</small>, you can examine memory in any of several
 
11932
formats, independently of your program's data types.  The item
 
11933
<code>Data =&gt; Memory</code> pops up a panel where you can choose the
 
11934
format to be shown.
 
11935
 
 
11936
<br><p>
 
11937
<div align="center"><img src="PICS/ddd-examine.jpg" alt="PICS/ddd-examine.jpg"></div>
 
11938
<br><p>
 
11939
   <p>In the panel, you can enter
 
11940
 
 
11941
     <ul>
 
11942
<li>a <dfn>repeat count</dfn>, a decimal integer that specifies how much memory
 
11943
(counting by units) to display
 
11944
 
 
11945
     <li>a <dfn>display format</dfn>--one of
 
11946
 
 
11947
          <dl>
 
11948
<dt><code>octal</code>
 
11949
          <dd>Print as integer in octal
 
11950
 
 
11951
          <br><dt><code>hex</code>
 
11952
          <dd>Regard the bits of the value as an integer, and print the integer
 
11953
in hexadecimal.
 
11954
 
 
11955
          <br><dt><code>decimal</code>
 
11956
          <dd>Print as integer in signed decimal.
 
11957
 
 
11958
          <br><dt><code>unsigned</code>
 
11959
          <dd>Print as integer in unsigned decimal.
 
11960
 
 
11961
          <br><dt><code>binary</code>
 
11962
          <dd>Print as integer in binary.
 
11963
 
 
11964
          <br><dt><code>float</code>
 
11965
          <dd>Regard the bits of the value as a floating point number and print
 
11966
using typical floating point syntax.
 
11967
 
 
11968
          <br><dt><code>address</code>
 
11969
          <dd>Print as an address, both absolute in hexadecimal and as an offset
 
11970
from the nearest preceding symbol.
 
11971
 
 
11972
          <br><dt><code>instruction</code>
 
11973
          <dd>Print as machine instructions.  The unit size is ignored for this
 
11974
display format.
 
11975
 
 
11976
          <br><dt><code>char</code>
 
11977
          <dd>Regard as an integer and print it as a character constant.
 
11978
 
 
11979
          <br><dt><code>string</code>
 
11980
          <dd>Print as null-terminated string.  The unit size is ignored for this
 
11981
display format. 
 
11982
</dl>
 
11983
 
 
11984
     <li>a <dfn>unit size</dfn>--one of
 
11985
 
 
11986
          <dl>
 
11987
<dt><code>bytes</code>
 
11988
          <dd>Bytes.
 
11989
 
 
11990
          <br><dt><code>halfwords</code>
 
11991
          <dd>Halfwords (two bytes).
 
11992
 
 
11993
          <br><dt><code>words</code>
 
11994
          <dd>Words (four bytes).
 
11995
 
 
11996
          <br><dt><code>giants</code>
 
11997
          <dd>Giant words (eight bytes). 
 
11998
</dl>
 
11999
 
 
12000
     <li>an <dfn>address</dfn>--the starting display address.  The expression need
 
12001
not have a pointer value (though it may); it is always interpreted as an
 
12002
integer address of a byte of memory. 
 
12003
</ul>
 
12004
 
 
12005
   <p>There are two ways to examine the values:
 
12006
 
 
12007
     <ul>
 
12008
<li>You can dump the memory in the debugger console (using <code>Print</code>). 
 
12009
If you repeat the resulting <code>x</code> command by pressing &lt;Return&gt; in
 
12010
the debugger console (see <a href="#Command%20History">Command History</a>), the following area of
 
12011
memory is shown.
 
12012
 
 
12013
     <li>You can also display the memory dump in the data window (using
 
12014
<code>Display</code>).  If you choose to display the values, the values will
 
12015
be updated automatically each time the program stop. 
 
12016
</ul>
 
12017
 
 
12018
<div class="node">
 
12019
<p><hr>
 
12020
<small class=header>
 
12021
Node:<a name="Machine-Level%20Debugging">Machine-Level Debugging</a>,
 
12022
Next:<a rel="next" accesskey="n" href="#Changing%20the%20Program">Changing the Program</a>,
 
12023
Previous:<a rel="previous" accesskey="p" href="#Examining%20Data">Examining Data</a>,
 
12024
Up:<a rel="up" accesskey="u" href="#Top">Top</a>
 
12025
</small>
 
12026
 
 
12027
<br>
 
12028
</div>
 
12029
 
 
12030
<h2 class="chapter">Machine-Level Debugging</h2>
 
12031
 
 
12032
   <p>Sometimes, it is desirable to examine a program not only at the source
 
12033
level, but also at the machine level.  <small>DDD</small> provides special
 
12034
machine code and register windows for this task.
 
12035
 
 
12036
<ul class="menu">
 
12037
<li><a accesskey="1" href="#Machine%20Code">Machine Code</a>:                 Examining machine code. 
 
12038
<li><a accesskey="2" href="#Machine%20Code%20Execution">Machine Code Execution</a>:       Stepping across instructions. 
 
12039
<li><a accesskey="3" href="#Registers">Registers</a>:                    Examining registers. 
 
12040
<li><a accesskey="4" href="#Customizing%20Machine%20Code">Customizing Machine Code</a>:     Settings. 
 
12041
</ul>
 
12042
 
 
12043
<div class="node">
 
12044
<p><hr>
 
12045
<small class=header>
 
12046
Node:<a name="Machine%20Code">Machine Code</a>,
 
12047
Next:<a rel="next" accesskey="n" href="#Machine%20Code%20Execution">Machine Code Execution</a>,
 
12048
Up:<a rel="up" accesskey="u" href="#Machine-Level%20Debugging">Machine-Level Debugging</a>
 
12049
</small>
 
12050
 
 
12051
<br>
 
12052
</div>
 
12053
 
 
12054
<h3 class="section">Examining Machine Code</h3>
 
12055
 
 
12056
   <p>To enable machine-level support, select <code>Source =&gt; Display
 
12057
Machine Code</code>.  With machine code enabled, an additional <em>machine
 
12058
code window</em> shows up, displaying the machine code of the current
 
12059
function.<a rel="footnote" href="#fn-30"><sup>30</sup></a>  By moving the sash at the right of the
 
12060
separating line between source and machine code, you can resize the
 
12061
source and machine code windows.
 
12062
 
 
12063
<br><p>
 
12064
<div align="center"><img src="PICS/ddd-code.jpg" alt="PICS/ddd-code.jpg"></div>
 
12065
<br><p>
 
12066
   <p>The machine code window works very much like the source window.  You can
 
12067
set, clear, and change breakpoints by selecting the address and pressing
 
12068
a <code>Break</code> or <code>Clear</code> button; the usual popup menus are also
 
12069
available.  Breakpoints and the current execution position are displayed
 
12070
simultaneously in both source and machine code.
 
12071
 
 
12072
   <p>The <code>Lookup</code> button can be used to look up the machine code for a
 
12073
specific function--or the function for a specific address.  Just click
 
12074
on the location in one window and press <code>Lookup</code> to see the
 
12075
corresponding code in the other window.
 
12076
 
 
12077
   <p>If source code is not available, only the machine code window is
 
12078
updated.
 
12079
 
 
12080
   <p>You can customize various aspects of the disassembling window. 
 
12081
See <a href="#Customizing%20Machine%20Code">Customizing Machine Code</a>, for details.
 
12082
 
 
12083
<div class="node">
 
12084
<p><hr>
 
12085
<small class=header>
 
12086
Node:<a name="Machine%20Code%20Execution">Machine Code Execution</a>,
 
12087
Next:<a rel="next" accesskey="n" href="#Registers">Registers</a>,
 
12088
Previous:<a rel="previous" accesskey="p" href="#Machine%20Code">Machine Code</a>,
 
12089
Up:<a rel="up" accesskey="u" href="#Machine-Level%20Debugging">Machine-Level Debugging</a>
 
12090
</small>
 
12091
 
 
12092
<br>
 
12093
</div>
 
12094
 
 
12095
<h3 class="section">Machine Code Execution</h3>
 
12096
 
 
12097
   <p>All execution facilities available in the source code window are
 
12098
available in the machine code window as well.  Two special facilities
 
12099
are convenient for machine-level debugging:
 
12100
 
 
12101
   <p>To execute just one machine instruction, click on the <code>Stepi</code>
 
12102
button or select <code>Program =&gt; Step Instruction</code>.
 
12103
 
 
12104
   <p>To continue to the next instruction in the current function, click on
 
12105
the <code>Nexti</code> button select <code>Program =&gt; Next
 
12106
Instruction</code>..  This is similar to <code>Stepi</code>, but any subroutine
 
12107
calls are executed without stopping.
 
12108
 
 
12109
   <p>Using <small>GDB</small>, it is often useful to do
 
12110
 
 
12111
<pre class="example">     graph display /i $pc
 
12112
     </pre>
 
12113
 
 
12114
<p>when stepping by machine instructions.  This makes <small>DDD</small>
 
12115
automatically display the next instruction to be executed, each time
 
12116
your program stops.
 
12117
 
 
12118
<div class="node">
 
12119
<p><hr>
 
12120
<small class=header>
 
12121
Node:<a name="Registers">Registers</a>,
 
12122
Next:<a rel="next" accesskey="n" href="#Customizing%20Machine%20Code">Customizing Machine Code</a>,
 
12123
Previous:<a rel="previous" accesskey="p" href="#Machine%20Code%20Execution">Machine Code Execution</a>,
 
12124
Up:<a rel="up" accesskey="u" href="#Machine-Level%20Debugging">Machine-Level Debugging</a>
 
12125
</small>
 
12126
 
 
12127
<br>
 
12128
</div>
 
12129
 
 
12130
<h3 class="section">Examining Registers</h3>
 
12131
 
 
12132
   <p><small>DDD</small> provides a <em>register window</em> showing the machine
 
12133
register values after each program stop.  To enable the register window,
 
12134
select <code>Status =&gt; Registers</code>.<a rel="footnote" href="#fn-31"><sup>31</sup></a>
 
12135
 
 
12136
<br><p>
 
12137
<div align="center"><img src="PICS/ddd-registers.jpg" alt="PICS/ddd-registers.jpg"></div>
 
12138
<br><p>
 
12139
   <p>By selecting one of the registers, its name is copied to the argument
 
12140
field.  You can use it as value for <code>Display</code>, for instance, to
 
12141
have its value displayed in the data window.
 
12142
 
 
12143
<div class="node">
 
12144
<p><hr>
 
12145
<small class=header>
 
12146
Node:<a name="Customizing%20Machine%20Code">Customizing Machine Code</a>,
 
12147
Previous:<a rel="previous" accesskey="p" href="#Registers">Registers</a>,
 
12148
Up:<a rel="up" accesskey="u" href="#Machine-Level%20Debugging">Machine-Level Debugging</a>
 
12149
</small>
 
12150
 
 
12151
<br>
 
12152
</div>
 
12153
 
 
12154
<h3 class="section">Customizing Machine Code</h3>
 
12155
 
 
12156
   <p>Enabling machine code via <code>Source =&gt; Display Machine Code</code>
 
12157
(see <a href="#Machine%20Code">Machine Code</a>) toggles the following resource:
 
12158
 
 
12159
<p>
 
12160
<table width="100%">
 
12161
<tr>
 
12162
<td align="left"><b>disassemble</b><i> </i>(<i>class Disassemble</i>)<i>
 
12163
     </i></td>
 
12164
<td align="right">Resource</td>
 
12165
</tr>
 
12166
</table>
 
12167
<table width="95%" align="center">
 
12168
<tr><td>
 
12169
If this is <code>on</code>, the source code is automatically disassembled. 
 
12170
The default is <code>off</code>.  See <a href="#Options">Options</a>, for the <code>--disassemble</code>
 
12171
and <code>--no-disassemble</code> options. 
 
12172
</td></tr>
 
12173
</table>
 
12174
 
 
12175
   <p>You can keep disassembled code in memory, using <code>Edit =&gt;
 
12176
Preferences =&gt; Source =&gt; Cache Machine Code</code>:
 
12177
 
 
12178
<p>
 
12179
<table width="100%">
 
12180
<tr>
 
12181
<td align="left"><b>cacheMachineCode</b><i> </i>(<i>class CacheMachineCode</i>)<i>
 
12182
     </i></td>
 
12183
<td align="right">Resource</td>
 
12184
</tr>
 
12185
</table>
 
12186
<table width="95%" align="center">
 
12187
<tr><td>
 
12188
Whether to cache disassembled machine code (<code>on</code>, default) or
 
12189
not (<code>off</code>).  Caching machine code requires more memory, but
 
12190
makes <small>DDD</small> run faster. 
 
12191
</td></tr>
 
12192
</table>
 
12193
 
 
12194
   <p>You can control the indentation of machine code, using <code>Edit
 
12195
=&gt; Preferences =&gt; Source =&gt; Machine Code
 
12196
Indentation</code>:
 
12197
 
 
12198
<p>
 
12199
<table width="100%">
 
12200
<tr>
 
12201
<td align="left"><b>indentCode</b><i> </i>(<i>class Indent</i>)<i>
 
12202
     </i></td>
 
12203
<td align="right">Resource</td>
 
12204
</tr>
 
12205
</table>
 
12206
<table width="95%" align="center">
 
12207
<tr><td>
 
12208
The number of columns to indent the machine code, such that there is
 
12209
enough place to display breakpoint locations.  Default: <code>4</code>. 
 
12210
</td></tr>
 
12211
</table>
 
12212
 
 
12213
   <p>The <code>maxDisassemble</code> resource controls how much is to be
 
12214
disassembled.  If <code>maxDisassemble</code> is set to 256 (default) and the
 
12215
current function is larger than 256 bytes, <small>DDD</small> only disassembles
 
12216
the first 256 bytes below the current location.  You can set the
 
12217
<code>maxDisassemble</code> resource to a larger value if you prefer to have a
 
12218
larger machine code view.
 
12219
 
 
12220
<p>
 
12221
<table width="100%">
 
12222
<tr>
 
12223
<td align="left"><b>maxDisassemble</b><i> </i>(<i>class MaxDisassemble</i>)<i>
 
12224
     </i></td>
 
12225
<td align="right">Resource</td>
 
12226
</tr>
 
12227
</table>
 
12228
<table width="95%" align="center">
 
12229
<tr><td>
 
12230
Maximum number of bytes to disassemble (default: <code>256</code>).  If this
 
12231
is zero, the entire current function is disassembled. 
 
12232
</td></tr>
 
12233
</table>
 
12234
 
 
12235
<div class="node">
 
12236
<p><hr>
 
12237
<small class=header>
 
12238
Node:<a name="Changing%20the%20Program">Changing the Program</a>,
 
12239
Next:<a rel="next" accesskey="n" href="#Commands">Commands</a>,
 
12240
Previous:<a rel="previous" accesskey="p" href="#Machine-Level%20Debugging">Machine-Level Debugging</a>,
 
12241
Up:<a rel="up" accesskey="u" href="#Top">Top</a>
 
12242
</small>
 
12243
 
 
12244
<br>
 
12245
</div>
 
12246
 
 
12247
<h2 class="chapter">Changing the Program</h2>
 
12248
 
 
12249
   <p><small>DDD</small> offers some basic facilities to edit and recompile the
 
12250
source code, as well as patching executables and core files.
 
12251
 
 
12252
<ul class="menu">
 
12253
<li><a accesskey="1" href="#Editing%20Source%20Code">Editing Source Code</a>:          You can invoke a source editor from <small>DDD</small>. 
 
12254
<li><a accesskey="2" href="#Recompiling">Recompiling</a>:                  Invoking <code>make</code> from within <small>DDD</small>. 
 
12255
<li><a accesskey="3" href="#Patching">Patching</a>:                     Changing source and object code. 
 
12256
</ul>
 
12257
 
 
12258
<div class="node">
 
12259
<p><hr>
 
12260
<small class=header>
 
12261
Node:<a name="Editing%20Source%20Code">Editing Source Code</a>,
 
12262
Next:<a rel="next" accesskey="n" href="#Recompiling">Recompiling</a>,
 
12263
Up:<a rel="up" accesskey="u" href="#Changing%20the%20Program">Changing the Program</a>
 
12264
</small>
 
12265
 
 
12266
<br>
 
12267
</div>
 
12268
 
 
12269
<h3 class="section">Editing Source Code</h3>
 
12270
 
 
12271
   <p>In <small>DDD</small> itself, you cannot change the source file currently
 
12272
displayed.  Instead, <small>DDD</small> allows you to invoke a <em>text
 
12273
editor</em>.  To invoke a text editor for the current source file, select
 
12274
the <code>Edit</code> button or <code>Source =&gt; Edit Source</code>.
 
12275
 
 
12276
   <p>By default, <small>DDD</small> tries a number of common editors.  You can
 
12277
customize <small>DDD</small> to use your favorite editor; See <a href="#Customizing%20Editing">Customizing Editing</a>, for details.
 
12278
 
 
12279
   <p>After the editor has exited, the source code shown is automatically
 
12280
updated.
 
12281
 
 
12282
   <p>If you have <small>DDD</small> and an editor running in parallel, you can also
 
12283
update the source code manually via <code>Source =&gt; Reload
 
12284
Source</code>.  This reloads the source code shown from the source file. 
 
12285
Since <small>DDD</small> automatically reloads the source code if the debugged
 
12286
program has been recompiled, this should seldom be necessary.
 
12287
 
 
12288
<ul class="menu">
 
12289
<li><a accesskey="1" href="#Customizing%20Editing">Customizing Editing</a>: 
 
12290
<li><a accesskey="2" href="#In-Place%20Editing">In-Place Editing</a>: 
 
12291
</ul>
 
12292
 
 
12293
<div class="node">
 
12294
<p><hr>
 
12295
<small class=header>
 
12296
Node:<a name="Customizing%20Editing">Customizing Editing</a>,
 
12297
Next:<a rel="next" accesskey="n" href="#In-Place%20Editing">In-Place Editing</a>,
 
12298
Up:<a rel="up" accesskey="u" href="#Editing%20Source%20Code">Editing Source Code</a>
 
12299
</small>
 
12300
 
 
12301
<br>
 
12302
</div>
 
12303
 
 
12304
<h4 class="subsection">Customizing Editing</h4>
 
12305
 
 
12306
   <p>You can customize the editor to be used via <code>Edit =&gt;
 
12307
Preferences =&gt; Helpers =&gt; Edit Sources</code>.  This is tied to
 
12308
the following resource:
 
12309
 
 
12310
<p>
 
12311
<table width="100%">
 
12312
<tr>
 
12313
<td align="left"><b>editCommand</b><i> </i>(<i>class EditCommand</i>)<i>
 
12314
     </i></td>
 
12315
<td align="right">Resource</td>
 
12316
</tr>
 
12317
</table>
 
12318
<table width="95%" align="center">
 
12319
<tr><td>
 
12320
A command string to invoke an editor on the specific file. 
 
12321
<code>@LINE@</code> is replaced by the current line number, <code>@FILE@</code>
 
12322
by the file name.  The default is to invoke <code>$XEDITOR</code> first, then
 
12323
<code>$EDITOR</code>, then <code>vi</code>:
 
12324
 
 
12325
     <pre class="example">          Ddd*editCommand: \
 
12326
          ${XEDITOR-false} +@LINE@ @FILE@ || \
 
12327
          xterm -e ${EDITOR-vi} +@LINE@ @FILE@
 
12328
          </pre>
 
12329
     </td></tr>
 
12330
</table>
 
12331
 
 
12332
   <p>This <code>~/.ddd/init</code> setting invokes an editing session
 
12333
for an XEmacs editor running <code>gnuserv</code>:
 
12334
 
 
12335
<pre class="example">     Ddd*editCommand: gnuclient +@LINE@ @FILE@
 
12336
     </pre>
 
12337
 
 
12338
   <p>This <code>~/.ddd/init</code> setting invokes an editing session for an
 
12339
Emacs editor running <code>emacsserver</code>:
 
12340
 
 
12341
<pre class="example">     Ddd*editCommand: emacsclient +@LINE@ @FILE@
 
12342
     </pre>
 
12343
 
 
12344
<div class="node">
 
12345
<p><hr>
 
12346
<small class=header>
 
12347
Node:<a name="In-Place%20Editing">In-Place Editing</a>,
 
12348
Previous:<a rel="previous" accesskey="p" href="#Customizing%20Editing">Customizing Editing</a>,
 
12349
Up:<a rel="up" accesskey="u" href="#Editing%20Source%20Code">Editing Source Code</a>
 
12350
</small>
 
12351
 
 
12352
<br>
 
12353
</div>
 
12354
 
 
12355
<h4 class="subsection">In-Place Editing</h4>
 
12356
 
 
12357
   <p>This resource is experimental:
 
12358
 
 
12359
<p>
 
12360
<table width="100%">
 
12361
<tr>
 
12362
<td align="left"><b>sourceEditing</b><i> </i>(<i>class SourceEditing</i>)<i>
 
12363
     </i></td>
 
12364
<td align="right">Resource</td>
 
12365
</tr>
 
12366
</table>
 
12367
<table width="95%" align="center">
 
12368
<tr><td>
 
12369
If this is <code>on</code>, the displayed source code becomes editable. 
 
12370
This is an experimental feature; Default is <code>off</code>. 
 
12371
</td></tr>
 
12372
</table>
 
12373
 
 
12374
<div class="node">
 
12375
<p><hr>
 
12376
<small class=header>
 
12377
Node:<a name="Recompiling">Recompiling</a>,
 
12378
Next:<a rel="next" accesskey="n" href="#Patching">Patching</a>,
 
12379
Previous:<a rel="previous" accesskey="p" href="#Editing%20Source%20Code">Editing Source Code</a>,
 
12380
Up:<a rel="up" accesskey="u" href="#Changing%20the%20Program">Changing the Program</a>
 
12381
</small>
 
12382
 
 
12383
<br>
 
12384
</div>
 
12385
 
 
12386
<h3 class="section">Recompiling</h3>
 
12387
 
 
12388
   <p>To recompile the source code using <code>make</code>, you can select
 
12389
<code>File =&gt; Make</code>.  This pops up a dialog where you can enter a
 
12390
<em>Make Target</em>--typically the name of the executable.  Clicking on
 
12391
the <code>Make</code> button invokes the <code>make</code> program with the given
 
12392
target.
 
12393
 
 
12394
   <p>The <code>Make</code> button on the command tool re-invokes <code>make</code>
 
12395
with the most recently given arguments.
 
12396
 
 
12397
<div class="node">
 
12398
<p><hr>
 
12399
<small class=header>
 
12400
Node:<a name="Patching">Patching</a>,
 
12401
Previous:<a rel="previous" accesskey="p" href="#Recompiling">Recompiling</a>,
 
12402
Up:<a rel="up" accesskey="u" href="#Changing%20the%20Program">Changing the Program</a>
 
12403
</small>
 
12404
 
 
12405
<br>
 
12406
</div>
 
12407
 
 
12408
<h3 class="section">Patching</h3>
 
12409
 
 
12410
   <p>Using <small>GDB</small>, you can open your program's executable code (and the core
 
12411
file) for both reading and writing.  This allows alterations to machine
 
12412
code, such that you can intentionally patch your program's binary.  For
 
12413
example, you might want to turn on internal debugging flags, or even to
 
12414
make emergency repairs.
 
12415
 
 
12416
   <p>Note that depending on your operating system, special preparation steps,
 
12417
such as setting permissions, may be needed before you can change
 
12418
executable files.
 
12419
 
 
12420
   <p>To patch the binary, enable <code>Edit =&gt; </code><small>GDB</small><code> Settings =&gt;
 
12421
Writing into executable and core files</code>.  This makes <small>GDB</small> open executable
 
12422
and core files for both reading and writing.  If you have already loaded
 
12423
a file, you must load it again (using <code>Edit =&gt; Open File</code> or
 
12424
<code>Edit =&gt; Open Core</code>), for your new setting to take effect.
 
12425
 
 
12426
   <p>Be sure to turn off <code>Writing into executable and core files</code> as
 
12427
soon as possible, to prevent accidental alterations to machine code.
 
12428
 
 
12429
<div class="node">
 
12430
<p><hr>
 
12431
<small class=header>
 
12432
Node:<a name="Commands">Commands</a>,
 
12433
Next:<a rel="next" accesskey="n" href="#Application%20Defaults">Application Defaults</a>,
 
12434
Previous:<a rel="previous" accesskey="p" href="#Changing%20the%20Program">Changing the Program</a>,
 
12435
Up:<a rel="up" accesskey="u" href="#Top">Top</a>
 
12436
</small>
 
12437
 
 
12438
<br>
 
12439
</div>
 
12440
 
 
12441
<h2 class="chapter">The Command-Line Interface</h2>
 
12442
 
 
12443
   <p>All the buttons you click within <small>DDD</small> get eventually translated
 
12444
into some debugger command, shown in the debugger console.  You can also
 
12445
type in and edit these commands directly.
 
12446
 
 
12447
<ul class="menu">
 
12448
<li><a accesskey="1" href="#Entering%20Commands">Entering Commands</a>:            Direct interaction with the inferior debugger. 
 
12449
<li><a accesskey="2" href="#TTY%20mode">TTY mode</a>:                     Controlling <small>DDD</small> from a terminal. 
 
12450
<li><a accesskey="3" href="#Integrating%20%3csmall%3eDDD%3c%2fsmall%3e">Integrating <small>DDD</small></a>:           <small>DDD</small> and your programming environment. 
 
12451
<li><a accesskey="4" href="#Defining%20Buttons">Defining Buttons</a>:             Add your own <small>DDD</small> buttons. 
 
12452
<li><a accesskey="5" href="#Defining%20Commands">Defining Commands</a>:            Add your own <small>DDD</small> commands. 
 
12453
</ul>
 
12454
 
 
12455
<div class="node">
 
12456
<p><hr>
 
12457
<small class=header>
 
12458
Node:<a name="Entering%20Commands">Entering Commands</a>,
 
12459
Next:<a rel="next" accesskey="n" href="#TTY%20mode">TTY mode</a>,
 
12460
Up:<a rel="up" accesskey="u" href="#Commands">Commands</a>
 
12461
</small>
 
12462
 
 
12463
<br>
 
12464
</div>
 
12465
 
 
12466
<h3 class="section">Entering Commands</h3>
 
12467
 
 
12468
   <p>In the <em>debugger console</em>, you can interact with the command
 
12469
interface of the inferior debugger.  Enter commands at the
 
12470
<em>debugger prompt</em>--that is, <code>(gdb)</code> for <small>GDB</small>,
 
12471
<code>(dbx)</code> for <small>DBX</small>, <code>(ladebug)</code> for Ladebug, <code>&gt;</code> for
 
12472
<small>XDB</small>, <code>&gt;</code> and <code></code><var>thread</var><code>[</code><var>depth</var><code>]</code> for <small>JDB</small>, or
 
12473
<code>(Pydb)</code> for <small>PYDB</small>, or <code>DB&lt;&gt;</code> for Perl, or
 
12474
<code>bashdb&lt;&gt;</code> for Bash.  You can use arbitrary debugger commands; use the
 
12475
&lt;Return&gt; key to enter them.
 
12476
 
 
12477
<ul class="menu">
 
12478
<li><a accesskey="1" href="#Command%20Completion">Command Completion</a>:           Using the &lt;TAB&gt; key. 
 
12479
<li><a accesskey="2" href="#Command%20History">Command History</a>:              Repeating previous commands. 
 
12480
<li><a accesskey="3" href="#Typing%20in%20the%20Source%20Window">Typing in the Source Window</a>: 
 
12481
</ul>
 
12482
 
 
12483
<div class="node">
 
12484
<p><hr>
 
12485
<small class=header>
 
12486
Node:<a name="Command%20Completion">Command Completion</a>,
 
12487
Next:<a rel="next" accesskey="n" href="#Command%20History">Command History</a>,
 
12488
Up:<a rel="up" accesskey="u" href="#Entering%20Commands">Entering Commands</a>
 
12489
</small>
 
12490
 
 
12491
<br>
 
12492
</div>
 
12493
 
 
12494
<h4 class="subsection">Command Completion</h4>
 
12495
 
 
12496
   <p>When using <small>GDB</small> or Perl, you can use the &lt;TAB&gt; key for
 
12497
<em>completing</em> commands and arguments.  This works in the debugger
 
12498
console as well as in all other text windows.
 
12499
 
 
12500
   <p><small>GDB</small> can fill in the rest of a word in a command for you, if there is
 
12501
only one possibility; it can also show you what the valid possibilities
 
12502
are for the next word in a command, at any time.  This works for <small>GDB</small>
 
12503
commands, <small>GDB</small> subcommands, and the names of symbols in your program.
 
12504
 
 
12505
   <p>Press the &lt;TAB&gt; key whenever you want <small>GDB</small> to fill out the rest
 
12506
of a word.  If there is only one possibility, <small>GDB</small> fills in the
 
12507
word, and waits for you to finish the command (or press &lt;RET&gt; to
 
12508
enter it).  For example, if you type
 
12509
<pre class="example">     (gdb) <kbd>info bre_&lt;TAB&gt;</kbd>
 
12510
     </pre>
 
12511
 
 
12512
<p><small>GDB</small> fills in the rest of the word <code>breakpoints</code>, since that is
 
12513
the only <code>info</code> subcommand beginning with <code>bre</code>:
 
12514
 
 
12515
<pre class="example">     (gdb) <kbd>info breakpoints</kbd>
 
12516
     </pre>
 
12517
 
 
12518
<p>You can either press &lt;RET&gt; at this point, to run the <code>info
 
12519
breakpoints</code> command, or backspace and enter something else, if
 
12520
<code>breakpoints</code> does not look like the command you expected.  (If you
 
12521
were sure you wanted <code>info breakpoints</code> in the first place, you
 
12522
might as well just type &lt;RET&gt; immediately after <code>info bre</code>, to
 
12523
exploit command abbreviations rather than command completion).
 
12524
 
 
12525
   <p>If there is more than one possibility for the next word when you press
 
12526
&lt;TAB&gt;, <small>DDD</small> sounds a bell.  You can either supply more
 
12527
characters and try again, or just press &lt;TAB&gt; a second time; <small>GDB</small>
 
12528
displays all the possible completions for that word.  For example, you
 
12529
might want to set a breakpoint on a subroutine whose name begins with
 
12530
<code>make_</code>, but when you type <kbd>b make_&lt;TAB&gt;</kbd>, <small>DDD</small> just
 
12531
sounds the bell.  Typing &lt;TAB&gt; again displays all the function names
 
12532
in your program that begin with those characters.  If you type &lt;TAB&gt;
 
12533
again, you cycle through the list of completions, for example:
 
12534
 
 
12535
<pre class="example">     (gdb) <kbd>b make</kbd>_ &lt;TAB&gt;
 
12536
<br><small>DDD</small> sounds bell; press &lt;TAB&gt; again, to see:<br>
 
12537
     make_a_section_from_file     make_environ
 
12538
     make_abs_section             make_function_type
 
12539
     make_blockvector             make_pointer_type
 
12540
     make_cleanup                 make_reference_type
 
12541
     make_command                 make_symbol_completion_list
 
12542
     (gdb) <kbd>b make</kbd>_ &lt;TAB&gt;
 
12543
<br><small>DDD</small> presents one expansion after the other:<br>
 
12544
     (gdb) b make_a_section_from_file &lt;TAB&gt;
 
12545
     (gdb) b make_abs_section &lt;TAB&gt;
 
12546
     (gdb) b make_blockvector &lt;TAB&gt;
 
12547
     </pre>
 
12548
 
 
12549
<p>After displaying the available possibilities, <small>GDB</small> copies your partial
 
12550
input (<code>b make_</code> in the example) so you can finish the command--by
 
12551
pressing &lt;TAB&gt; again, or by entering the remainder manually.
 
12552
 
 
12553
   <p>Sometimes the string you need, while logically a "word", may contain
 
12554
parentheses or other characters that <small>GDB</small> normally excludes from its
 
12555
notion of a word.  To permit word completion to work in this situation,
 
12556
you may enclose words in <code>'</code> (single quote marks) in <small>GDB</small> commands.
 
12557
 
 
12558
   <p>The most likely situation where you might need this is in typing the
 
12559
name of a C++ function.  This is because C++ allows function overloading
 
12560
(multiple definitions of the same function, distinguished by argument
 
12561
type).  For example, when you want to set a breakpoint you may need to
 
12562
distinguish whether you mean the version of <code>name</code> that takes an
 
12563
<code>int</code> parameter, <code>name(int)</code>, or the version that takes a
 
12564
<code>float</code> parameter, <code>name(float)</code>.  To use the word-completion
 
12565
facilities in this situation, type a single quote <code>'</code> at the
 
12566
beginning of the function name.  This alerts <small>GDB</small> that it may need to
 
12567
consider more information than usual when you press &lt;TAB&gt; to request
 
12568
word completion:
 
12569
 
 
12570
<pre class="example">     (gdb) <kbd>b 'bubble(</kbd>_&lt;TAB&gt;
 
12571
     bubble(double,double)    bubble(int,int)
 
12572
     (gdb) <kbd>b 'bubble(</kbd>_
 
12573
     </pre>
 
12574
 
 
12575
   <p>In some cases, <small>DDD</small> can tell that completing a name requires
 
12576
using quotes.  When this happens, <small>DDD</small> inserts the quote for you
 
12577
(while completing as much as it can) if you do not type the quote in the
 
12578
first place:
 
12579
 
 
12580
<pre class="example">     (gdb) <kbd>b bub</kbd>_&lt;TAB&gt;
 
12581
<br><small>DDD</small> alters your input line to the following, and rings a bell:<br>
 
12582
     (gdb) <kbd>b 'bubble(</kbd>_
 
12583
     </pre>
 
12584
 
 
12585
<p>In general, <small>DDD</small> can tell that a quote is needed (and inserts it)
 
12586
if you have not yet started typing the argument list when you ask for
 
12587
completion on an overloaded symbol.
 
12588
 
 
12589
   <p>If you prefer to use the &lt;TAB&gt; key for switching between items,
 
12590
unset <code>Edit =&gt; Preferences =&gt; General =&gt; TAB
 
12591
Key completes in All Windows</code>.  This is useful if you have
 
12592
pointer-driven keyboard focus (see below) and no special usage for the
 
12593
&lt;TAB&gt; key.  If the option is set, the &lt;TAB&gt; key completes in the
 
12594
debugger console only.
 
12595
 
 
12596
   <p>This option is tied to the following resource:
 
12597
 
 
12598
<p>
 
12599
<table width="100%">
 
12600
<tr>
 
12601
<td align="left"><b>globalTabCompletion</b><i> </i>(<i>class GlobalTabCompletion</i>)<i>
 
12602
     </i></td>
 
12603
<td align="right">Resource</td>
 
12604
</tr>
 
12605
</table>
 
12606
<table width="95%" align="center">
 
12607
<tr><td>
 
12608
If this is <code>on</code> (default), the &lt;TAB&gt; key completes arguments in
 
12609
all windows.  If this is <code>off</code>, the &lt;TAB&gt; key completes
 
12610
arguments in the debugger console only. 
 
12611
</td></tr>
 
12612
</table>
 
12613
 
 
12614
<div class="node">
 
12615
<p><hr>
 
12616
<small class=header>
 
12617
Node:<a name="Command%20History">Command History</a>,
 
12618
Next:<a rel="next" accesskey="n" href="#Typing%20in%20the%20Source%20Window">Typing in the Source Window</a>,
 
12619
Previous:<a rel="previous" accesskey="p" href="#Command%20Completion">Command Completion</a>,
 
12620
Up:<a rel="up" accesskey="u" href="#Entering%20Commands">Entering Commands</a>
 
12621
</small>
 
12622
 
 
12623
<br>
 
12624
</div>
 
12625
 
 
12626
<h4 class="subsection">Command History</h4>
 
12627
 
 
12628
   <p>You can <em>repeat</em> previous and next commands by pressing the
 
12629
&lt;Up&gt; and &lt;Down&gt; arrow keys, respectively.  This presents you
 
12630
previous and later commands on the command line; use &lt;Return&gt; to
 
12631
apply the current command.
 
12632
 
 
12633
   <p>If you enter an empty line (just use &lt;Return&gt; at the debugger
 
12634
prompt), the last command is repeated as well.
 
12635
 
 
12636
   <p><code>Commands =&gt; Command History</code> shows the command history.
 
12637
 
 
12638
<br><p>
 
12639
<div align="center"><img src="PICS/ddd-history.jpg" alt="PICS/ddd-history.jpg"></div>
 
12640
<br><p>
 
12641
   <p>You can <em>search</em> for previous commands by pressing &lt;Ctrl+B&gt;. 
 
12642
This invokes <em>incremental search mode,</em> where you can enter a
 
12643
string to be searched in previous commands.  Press &lt;Ctrl+B&gt; again to
 
12644
repeat the search, or &lt;Ctrl+F&gt; to search in the reverse direction. 
 
12645
To return to normal mode, press &lt;ESC&gt;, or use any cursor command.
 
12646
 
 
12647
   <p>The command history is automatically saved when exiting <small>DDD</small>. 
 
12648
You can turn off this feature by setting the following resource to
 
12649
<code>off</code>:
 
12650
 
 
12651
<p>
 
12652
<table width="100%">
 
12653
<tr>
 
12654
<td align="left"><b>saveHistoryOnExit</b><i> </i>(<i>class SaveOnExit</i>)<i>
 
12655
     </i></td>
 
12656
<td align="right">Resource</td>
 
12657
</tr>
 
12658
</table>
 
12659
<table width="95%" align="center">
 
12660
<tr><td>
 
12661
If <code>on</code> (default), the command history is automatically saved
 
12662
when <small>DDD</small> exits. 
 
12663
</td></tr>
 
12664
</table>
 
12665
 
 
12666
<div class="node">
 
12667
<p><hr>
 
12668
<small class=header>
 
12669
Node:<a name="Typing%20in%20the%20Source%20Window">Typing in the Source Window</a>,
 
12670
Previous:<a rel="previous" accesskey="p" href="#Command%20History">Command History</a>,
 
12671
Up:<a rel="up" accesskey="u" href="#Entering%20Commands">Entering Commands</a>
 
12672
</small>
 
12673
 
 
12674
<br>
 
12675
</div>
 
12676
 
 
12677
<h4 class="subsection">Typing in the Source Window</h4>
 
12678
 
 
12679
   <p>As a special convenience, anything you type into the source window is
 
12680
automatically forwarded to the debugger console.  Thus, you don't have
 
12681
to change the keyboard focus explicitly in order to enter commands.
 
12682
 
 
12683
   <p>You can change this behaviour using the following resource:
 
12684
 
 
12685
<p>
 
12686
<table width="100%">
 
12687
<tr>
 
12688
<td align="left"><b>consoleHasFocus</b><i> </i>(<i>class ConsoleHasFocus</i>)<i>
 
12689
     </i></td>
 
12690
<td align="right">Resource</td>
 
12691
</tr>
 
12692
</table>
 
12693
<table width="95%" align="center">
 
12694
<tr><td>
 
12695
If <code>on</code> (default), all keyboard events in the source window are
 
12696
automatically forwarded to the debugger console.  If <code>off</code>,
 
12697
keyboard events are not forwarded.  If <code>auto</code>, keyboard events
 
12698
forwarded only if the debugger console is open. 
 
12699
</td></tr>
 
12700
</table>
 
12701
 
 
12702
<div class="node">
 
12703
<p><hr>
 
12704
<small class=header>
 
12705
Node:<a name="TTY%20mode">TTY mode</a>,
 
12706
Next:<a rel="next" accesskey="n" href="#Integrating%20%3csmall%3eDDD%3c%2fsmall%3e">Integrating <small>DDD</small></a>,
 
12707
Previous:<a rel="previous" accesskey="p" href="#Entering%20Commands">Entering Commands</a>,
 
12708
Up:<a rel="up" accesskey="u" href="#Commands">Commands</a>
 
12709
</small>
 
12710
 
 
12711
<br>
 
12712
</div>
 
12713
 
 
12714
<h3 class="section">Entering Commands at the TTY</h3>
 
12715
 
 
12716
   <p>Rather than entering commands at the debugger console, you may prefer to
 
12717
enter commands at the terminal window <small>DDD</small> was invoked from.
 
12718
 
 
12719
   <p>When <small>DDD</small> is invoked using the <code>--tty</code> option, it enables its
 
12720
<em></em><small>TTY</small><em> interface</em>, taking additional debugger commands from
 
12721
standard input and forwarding debugger output to standard output, just
 
12722
as if the inferior debugger had been invoked directly.  All remaining
 
12723
<small>DDD</small> functionality stays unchanged.
 
12724
 
 
12725
   <p>By default, the debugger console remains closed if <small>DDD</small> is
 
12726
invoked using the <code>--tty</code> option.  Use <code>View =&gt;
 
12727
Debugger Console</code> to open it.
 
12728
 
 
12729
   <p><small>DDD</small> can be configured to use the <code>readline</code> library for reading
 
12730
in commands from standard input.  This <small>GNU</small> library provides
 
12731
consistent behavior for programs which provide a command line interface
 
12732
to the user.  Advantages are <small>GNU</small> Emacs-style or <dfn>vi</dfn>-style inline
 
12733
editing of commands, <code>csh</code>-like history substitution, and a
 
12734
storage and recall of command history across debugging sessions. 
 
12735
See <a href="gdb.html#Command%20Line%20Editing">Command Line Editing</a>, for details on command-line editing via the
 
12736
<small>TTY</small> interface.
 
12737
 
 
12738
<div class="node">
 
12739
<p><hr>
 
12740
<small class=header>
 
12741
Node:<a name="Integrating%20%3csmall%3eDDD%3c%2fsmall%3e">Integrating <small>DDD</small></a>,
 
12742
Next:<a rel="next" accesskey="n" href="#Defining%20Buttons">Defining Buttons</a>,
 
12743
Previous:<a rel="previous" accesskey="p" href="#TTY%20mode">TTY mode</a>,
 
12744
Up:<a rel="up" accesskey="u" href="#Commands">Commands</a>
 
12745
</small>
 
12746
 
 
12747
<br>
 
12748
</div>
 
12749
 
 
12750
<h3 class="section">Integrating DDD</h3>
 
12751
 
 
12752
   <p>You can run <small>DDD</small> as an inferior debugger in other debugger
 
12753
front-ends, combining their special abilities with those of <small>DDD</small>.
 
12754
 
 
12755
   <p>To have <small>DDD</small> run as an inferior debugger in other front-ends, the
 
12756
general idea is to set up your debugger front-end such that
 
12757
<code>ddd --tty</code> is invoked instead of the inferior debugger. 
 
12758
When <small>DDD</small> is invoked using the <code>--tty</code> option, it enables its
 
12759
<em></em><small>TTY</small><em> interface</em>, taking additional debugger commands from
 
12760
standard input and forwarding debugger output to standard output, just
 
12761
as if the inferior debugger had been invoked directly.  All remaining
 
12762
<small>DDD</small> functionality stays unchanged.
 
12763
 
 
12764
   <p>In case your debugger front-end uses the <small>GDB</small> <code>-fullname</code>
 
12765
option to have <small>GDB</small> report source code positions, the <code>--tty</code>
 
12766
option is not required.  <small>DDD</small> recognizes the <code>-fullname</code>
 
12767
option, finds that it has been invoked from a debugger front-end and
 
12768
automatically enables the <small>TTY</small> interface.
 
12769
 
 
12770
   <p>If <small>DDD</small> is invoked with the <code>-fullname</code> option, the debugger
 
12771
console and the source window are initially disabled, as their
 
12772
facilities are supposed to be provided by the integrating front-end.  In
 
12773
case of need, you can use the <code>View</code> menu to re-enable these
 
12774
windows.
 
12775
 
 
12776
<h4 class="subsection">Using DDD with Emacs</h4>
 
12777
 
 
12778
   <p>To integrate <small>DDD</small> with Emacs, use <kbd>M-x gdb</kbd> or <kbd>M-x dbx</kbd>
 
12779
in Emacs to start a debugging session.  At the prompt, enter
 
12780
<code>ddd --tty</code> (followed by <code>--dbx</code> or
 
12781
<code>--gdb</code>, if required), and the name of the program to be
 
12782
debugged.  Proceed as usual.
 
12783
 
 
12784
<h4 class="subsection">Using DDD with XEmacs</h4>
 
12785
 
 
12786
   <p>To integrate <small>DDD</small> with XEmacs, set the variable
 
12787
<code>gdb-command-name</code> to <code>"ddd"</code>, by inserting the following line
 
12788
in your <code>~/.emacs</code> file:
 
12789
 
 
12790
<pre class="example">     (setq gdb-command-name "ddd")
 
12791
     </pre>
 
12792
 
 
12793
   <p>You can also evaluate this expression by pressing &lt;ESC&gt; &lt;:&gt; and
 
12794
entering it directly (&lt;ESC&gt; &lt;ESC&gt; for XEmacs 19.13 and earlier).
 
12795
 
 
12796
   <p>To start a <small>DDD</small> debugging session in XEmacs, use <code>M-x gdb</code> or
 
12797
<code>M-x gdbsrc</code>.  Proceed as usual.
 
12798
 
 
12799
<h4 class="subsection">Using DDD with <small>XXGDB</small></h4>
 
12800
 
 
12801
   <p>To integrate <small>DDD</small> with <small>XXGDB</small>, invoke <code>xxgdb</code> as
 
12802
 
 
12803
<pre class="example">     xxgdb -db_name ddd -db_prompt '(gdb) '
 
12804
     </pre>
 
12805
 
 
12806
<div class="node">
 
12807
<p><hr>
 
12808
<small class=header>
 
12809
Node:<a name="Defining%20Buttons">Defining Buttons</a>,
 
12810
Next:<a rel="next" accesskey="n" href="#Defining%20Commands">Defining Commands</a>,
 
12811
Previous:<a rel="previous" accesskey="p" href="#Integrating%20%3csmall%3eDDD%3c%2fsmall%3e">Integrating <small>DDD</small></a>,
 
12812
Up:<a rel="up" accesskey="u" href="#Commands">Commands</a>
 
12813
</small>
 
12814
 
 
12815
<br>
 
12816
</div>
 
12817
 
 
12818
<h3 class="section">Defining Buttons</h3>
 
12819
 
 
12820
   <p>To facilitate interaction, you can add own command buttons to
 
12821
<small>DDD</small>.  These buttons can be added below the debugger console
 
12822
(<code>Console Buttons</code>), the source window (<code>Source Buttons</code>), or
 
12823
the data window (<code>Data Buttons</code>).
 
12824
 
 
12825
   <p>To define individual buttons, use the <em>Button Editor</em>, invoked via
 
12826
<code>Commands =&gt; Edit Buttons</code>.  The button editor displays a
 
12827
text, where each line contains the command for exactly one button. 
 
12828
Clicking on <code>OK</code> creates the appropriate buttons from the text.  If
 
12829
the text is empty (the default), no button is created.
 
12830
 
 
12831
   <p>As a simple example, assume you want to create a <code>print i</code>
 
12832
button.  Invoke <code>Commands =&gt; Edit Buttons</code> and enter a line
 
12833
saying <code>print i</code> in the button editor.  Then click on
 
12834
<code>OK</code>.  A button named <code>Print i</code> will now appear below the
 
12835
debugger console--try it!  To remove the button, reopen the button
 
12836
editor, clear the <code>print i</code> line and press <code>OK</code> again.
 
12837
 
 
12838
   <p>If a button command contains <code>()</code>, the string <code>()</code> will
 
12839
automatically be replaced by the contents of the argument field.  For
 
12840
instance, a button named <code>return ()</code> will execute the <small>GDB</small>
 
12841
<code>return</code> command with the current content of the argument field as
 
12842
argument.
 
12843
 
 
12844
   <p>By default, <small>DDD</small> disables buttons whose commands are not
 
12845
supported by the inferior debugger.  To enable such buttons, unset the
 
12846
<code>Enable supported buttons only</code> toggle in the button editor.
 
12847
 
 
12848
<br><p>
 
12849
<div align="center"><img src="PICS/ddd-button-editor.jpg" alt="PICS/ddd-button-editor.jpg"></div>
 
12850
<br><p>
 
12851
   <p><small>DDD</small> also allows you to specify control sequences and special
 
12852
labels for user-defined buttons.  See <a href="#Customizing%20Buttons">Customizing Buttons</a>, for
 
12853
details.
 
12854
 
 
12855
<ul class="menu">
 
12856
<li><a accesskey="1" href="#Customizing%20Buttons">Customizing Buttons</a>:          Adding your own command buttons. 
 
12857
</ul>
 
12858
 
 
12859
<div class="node">
 
12860
<p><hr>
 
12861
<small class=header>
 
12862
Node:<a name="Customizing%20Buttons">Customizing Buttons</a>,
 
12863
Up:<a rel="up" accesskey="u" href="#Defining%20Buttons">Defining Buttons</a>
 
12864
</small>
 
12865
 
 
12866
<br>
 
12867
</div>
 
12868
 
 
12869
<h4 class="subsection">Customizing Buttons</h4>
 
12870
 
 
12871
   <p><small>DDD</small> allows defining additional command buttons; See <a href="#Defining%20Buttons">Defining Buttons</a>, for doing this interactively.  This section describes the
 
12872
resources that control user-defined buttons.
 
12873
 
 
12874
<p>
 
12875
<table width="100%">
 
12876
<tr>
 
12877
<td align="left"><b>consoleButtons</b><i> </i>(<i>class Buttons</i>)<i>
 
12878
     </i></td>
 
12879
<td align="right">Resource</td>
 
12880
</tr>
 
12881
</table>
 
12882
<table width="95%" align="center">
 
12883
<tr><td>
 
12884
A newline-separated list of buttons to be added under the debugger
 
12885
console.  Each button issues the command given by its name.
 
12886
 
 
12887
     <p>The following characters have special meanings:
 
12888
          <ul>
 
12889
<li>Commands ending with <code>...</code> insert their name, followed by a
 
12890
space, in the debugger console.
 
12891
 
 
12892
          <li>Commands ending with a control character (that is, <code>^</code> followed
 
12893
by a letter or <code>?</code>) insert the given control character.
 
12894
 
 
12895
          <li>The string <code>()</code> is replaced by the current contents
 
12896
of the argument field <code>()</code>.
 
12897
 
 
12898
          <li>The string specified in the <code>labelDelimiter</code> resource (usually
 
12899
<code>//</code>) separates the command name from the button label.  If no
 
12900
button label is specified, the capitalized command will be used as
 
12901
button label. 
 
12902
</ul>
 
12903
 
 
12904
     <p>The following button names are reserved:
 
12905
 
 
12906
          <dl>
 
12907
<dt><code>Apply</code>
 
12908
          <dd>Send the given command to the debugger.
 
12909
 
 
12910
          <br><dt><code>Back</code>
 
12911
          <dd>Lookup previously selected source position.
 
12912
 
 
12913
          <br><dt><code>Clear</code>
 
12914
          <dd>Clear current command
 
12915
 
 
12916
          <br><dt><code>Complete</code>
 
12917
          <dd>Complete current command.
 
12918
 
 
12919
          <br><dt><code>Edit</code>
 
12920
          <dd>Edit current source file.
 
12921
 
 
12922
          <br><dt><code>Forward</code>
 
12923
          <dd>Lookup next selected source position.
 
12924
 
 
12925
          <br><dt><code>Make</code>
 
12926
          <dd>Invoke the <code>make</code> program, using the most recently given arguments.
 
12927
 
 
12928
          <br><dt><code>Next</code>
 
12929
          <dd>Show next command
 
12930
 
 
12931
          <br><dt><code>No</code>
 
12932
          <dd>Answer current debugger prompt with <code>no</code>.  This button is
 
12933
visible only if the debugger asks a yes/no question.
 
12934
 
 
12935
          <br><dt><code>Prev</code>
 
12936
          <dd>Show previous command
 
12937
 
 
12938
          <br><dt><code>Reload</code>
 
12939
          <dd>Reload source file.
 
12940
 
 
12941
          <br><dt><code>Yes</code>
 
12942
          <dd>Answer current debugger prompt with <code>yes</code>.  This button is
 
12943
visible only if the debugger asks a yes/no question. 
 
12944
</dl>
 
12945
 
 
12946
     <p>The default resource value is empty--no console buttons are
 
12947
created.
 
12948
 
 
12949
     <p>Here are some examples to insert into your <code>~/.ddd/init</code> file. 
 
12950
These are the settings of <small>DDD</small> 1.x:
 
12951
     <pre class="example">          Ddd*consoleButtons: Yes\nNo\nbreak^C
 
12952
          </pre>
 
12953
 
 
12954
     <p>This setting creates some more buttons:
 
12955
     <pre class="example">            Ddd*consoleButtons: \
 
12956
            Yes\nNo\nrun\nClear\nPrev\nNext\nApply\nbreak^C
 
12957
          </pre>
 
12958
 
 
12959
     <p>See also the <code>dataButtons</code>, <code>sourceButtons</code> and
 
12960
<code>toolButtons</code> resources. 
 
12961
</td></tr>
 
12962
</table>
 
12963
 
 
12964
<p>
 
12965
<table width="100%">
 
12966
<tr>
 
12967
<td align="left"><b>dataButtons</b><i> </i>(<i>class Buttons</i>)<i>
 
12968
     </i></td>
 
12969
<td align="right">Resource</td>
 
12970
</tr>
 
12971
</table>
 
12972
<table width="95%" align="center">
 
12973
<tr><td>
 
12974
A newline-separated list of buttons to be added under the data display. 
 
12975
Each button issues the command given by its name.  See the
 
12976
<code>consoleButtons</code> resource, above, for details on button syntax.
 
12977
 
 
12978
     <p>The default resource value is empty--no source buttons are
 
12979
created. 
 
12980
</td></tr>
 
12981
</table>
 
12982
 
 
12983
<p>
 
12984
<table width="100%">
 
12985
<tr>
 
12986
<td align="left"><b>sourceButtons</b><i> </i>(<i>class Buttons</i>)<i>
 
12987
     </i></td>
 
12988
<td align="right">Resource</td>
 
12989
</tr>
 
12990
</table>
 
12991
<table width="95%" align="center">
 
12992
<tr><td>
 
12993
A newline-separated list of buttons to be added under the debugger
 
12994
console.  Each button issues the command given by its name.  See the
 
12995
<code>consoleButtons</code> resource, above, for details on button syntax.
 
12996
 
 
12997
     <p>The default resource value is empty--no source buttons are
 
12998
created.
 
12999
 
 
13000
     <p>Here are some example to insert into your <code>~/.ddd/init</code> file. 
 
13001
These are the settings of <small>DDD</small> 1.x:
 
13002
 
 
13003
     <pre class="example">          Ddd*sourceButtons: \
 
13004
            run\nstep\nnext\nstepi\nnexti\ncont\n\
 
13005
            finish\nkill\nup\ndown\n\
 
13006
            Back\nForward\nEdit\ninterrupt^C
 
13007
          </pre>
 
13008
 
 
13009
     <p>This setting creates some buttons which are not found on the command tool:
 
13010
 
 
13011
     <pre class="example">            Ddd*sourceButtons: \
 
13012
            print *()\ngraph display *()\nprint /x ()\n\
 
13013
            whatis ()\nptype ()\nwatch ()\nuntil\nshell
 
13014
          </pre>
 
13015
 
 
13016
     <p>An even more professional setting uses customized button labels.
 
13017
 
 
13018
     <pre class="example">            Ddd*sourceButtons: \
 
13019
            print *(()) // Print *()\n\
 
13020
            graph display *(()) // Display *()\n\
 
13021
            print /x ()\n\
 
13022
            whatis () // What is ()\n\
 
13023
            ptype ()\n\
 
13024
            watch ()\n\
 
13025
            until\n\
 
13026
            shell
 
13027
          </pre>
 
13028
 
 
13029
     <p>See also the <code>consoleButtons</code> and <code>dataButtons</code> resources,
 
13030
above, and the <code>toolButtons</code> resource, below. 
 
13031
</td></tr>
 
13032
</table>
 
13033
 
 
13034
<p>
 
13035
<table width="100%">
 
13036
<tr>
 
13037
<td align="left"><b>toolButtons</b><i> </i>(<i>class Buttons</i>)<i>
 
13038
     </i></td>
 
13039
<td align="right">Resource</td>
 
13040
</tr>
 
13041
</table>
 
13042
<table width="95%" align="center">
 
13043
<tr><td>
 
13044
A newline-separated list of buttons to be included in the command tool
 
13045
or the command tool bar (see <a href="#Disabling%20the%20Command%20Tool">Disabling the Command Tool</a>).  Each
 
13046
button issues the command given by its name.  See <a href="#Defining%20Buttons">Defining Buttons</a>,
 
13047
for details on button syntax.
 
13048
 
 
13049
     <p>The default resource value is
 
13050
 
 
13051
     <pre class="example">          Ddd*toolButtons: \
 
13052
          run\nbreak^C\nstep\nstepi\nnext\nnexti\n\
 
13053
          until\nfinish\ncont\n\kill\n\
 
13054
          up\ndown\nBack\nForward\nEdit\nMake
 
13055
          </pre>
 
13056
 
 
13057
     <p>For each button, its location in the command tool must be specified
 
13058
using <code>XmForm</code> constraint resources.  See the <code>Ddd</code>
 
13059
application defaults file for instructions.
 
13060
 
 
13061
     <p>If the <code>toolButtons</code> resource value is empty, the command tool is
 
13062
not created. 
 
13063
</td></tr>
 
13064
</table>
 
13065
 
 
13066
   <p>The following resources set up button details:
 
13067
 
 
13068
<p>
 
13069
<table width="100%">
 
13070
<tr>
 
13071
<td align="left"><b>labelDelimiter</b><i> </i>(<i>class LabelDelimiter</i>)<i>
 
13072
     </i></td>
 
13073
<td align="right">Resource</td>
 
13074
</tr>
 
13075
</table>
 
13076
<table width="95%" align="center">
 
13077
<tr><td>
 
13078
The string used to separate labels from commands and shortcuts. 
 
13079
Default is <code>//</code>. 
 
13080
</td></tr>
 
13081
</table>
 
13082
 
 
13083
<p>
 
13084
<table width="100%">
 
13085
<tr>
 
13086
<td align="left"><b>verifyButtons</b><i> </i>(<i>class VerifyButtons</i>)<i>
 
13087
     </i></td>
 
13088
<td align="right">Resource</td>
 
13089
</tr>
 
13090
</table>
 
13091
<table width="95%" align="center">
 
13092
<tr><td>
 
13093
If <code>on</code> (default), verify for each button whether its command is
 
13094
actually supported by the inferior debugger.  If the command is unknown,
 
13095
the button is disabled.  If this resource is <code>off</code>, no checking is
 
13096
done: all commands are accepted "as is". 
 
13097
</td></tr>
 
13098
</table>
 
13099
 
 
13100
<div class="node">
 
13101
<p><hr>
 
13102
<small class=header>
 
13103
Node:<a name="Defining%20Commands">Defining Commands</a>,
 
13104
Previous:<a rel="previous" accesskey="p" href="#Defining%20Buttons">Defining Buttons</a>,
 
13105
Up:<a rel="up" accesskey="u" href="#Commands">Commands</a>
 
13106
</small>
 
13107
 
 
13108
<br>
 
13109
</div>
 
13110
 
 
13111
<h3 class="section">Defining Commands</h3>
 
13112
 
 
13113
   <p>Aside from breakpoint commands (see <a href="#Breakpoint%20Commands">Breakpoint Commands</a>),
 
13114
<small>DDD</small> also allows you to define user-defined commands.  A
 
13115
<em>user-defined command</em> is a sequence of commands to which you
 
13116
assign a new name as a command.  This new command can be entered at the
 
13117
debugger prompt or invoked via a button.
 
13118
 
 
13119
<ul class="menu">
 
13120
<li><a accesskey="1" href="#GDB%20Simple%20Commands">GDB Simple Commands</a>: 
 
13121
<li><a accesskey="2" href="#GDB%20Argument%20Commands">GDB Argument Commands</a>: 
 
13122
<li><a accesskey="3" href="#Commands%20with%20Other%20Debuggers">Commands with Other Debuggers</a>: 
 
13123
</ul>
 
13124
 
 
13125
<div class="node">
 
13126
<p><hr>
 
13127
<small class=header>
 
13128
Node:<a name="GDB%20Simple%20Commands">GDB Simple Commands</a>,
 
13129
Next:<a rel="next" accesskey="n" href="#GDB%20Argument%20Commands">GDB Argument Commands</a>,
 
13130
Up:<a rel="up" accesskey="u" href="#Defining%20Commands">Defining Commands</a>
 
13131
</small>
 
13132
 
 
13133
<br>
 
13134
</div>
 
13135
 
 
13136
<h4 class="subsection">Defining Simple Commands using GDB</h4>
 
13137
 
 
13138
   <p>Aside from breakpoint commands (see <code>Breakpoint commands</code>,
 
13139
above), <small>DDD</small> also allows you to store sequences of commands
 
13140
as a user-defined <small>GDB</small> command.  A <em>user-defined command</em>
 
13141
is a sequence of <small>GDB</small> commands to which you assign a new name
 
13142
as a command.  Using <small>DDD</small>, this is done via the <em>Command
 
13143
Editor</em>, invoked via <code>Commands =&gt; Define Command</code>.
 
13144
 
 
13145
   <p>A <small>GDB</small> command is created in five steps:
 
13146
 
 
13147
     <ol type=1 start=1>
 
13148
<li>Enter the name of the command in the <code>Command</code> field.  Use the
 
13149
drop-down list on the right to select from already defined commands.
 
13150
 
 
13151
     <li>Click on <code>Record</code> to begin the recording of the command sequence.
 
13152
 
 
13153
     <li>Now interact with <small>DDD</small>.  While recording, <small>DDD</small> does not
 
13154
execute commands, but simply records them to be executed when the
 
13155
breakpoint is hit.  The recorded debugger commands are shown in the
 
13156
debugger console.
 
13157
 
 
13158
     <li>To stop the recording, click on <code>End</code> or enter <code>end</code> at
 
13159
the <small>GDB</small> prompt.  To <em>cancel</em> the recording, click on
 
13160
<code>Interrupt</code> or press &lt;ESC&gt;.
 
13161
 
 
13162
     <li>Click on <code>Edit &gt;&gt;</code> to edit the recorded commands. 
 
13163
When done with editing, click on <code>Edit &lt;&lt;</code> to close the
 
13164
commands editor.
 
13165
        </ol>
 
13166
 
 
13167
   <p>After the command is defined, you can enter it at the <small>GDB</small> prompt.  You
 
13168
may also click on <code>Execute</code> to test the given user-defined command.
 
13169
 
 
13170
   <p>For convenience, you can assign a button to the defined command. 
 
13171
Enabling one of the <code>Button</code> locations will add a button with the
 
13172
given command to the specified location.  If you want to edit the
 
13173
button, select <code>Commands =&gt; Edit Buttons</code>.  See <a href="#Defining%20Buttons">Defining Buttons</a>, for a discussion.
 
13174
 
 
13175
<br><p>
 
13176
<div align="center"><img src="PICS/ddd-define-command.jpg" alt="PICS/ddd-define-command.jpg"></div>
 
13177
<br><p>
 
13178
   <p>When user-defined <small>GDB</small> commands are executed, the commands of the
 
13179
definition are not printed.  An error in any command stops execution of
 
13180
the user-defined command.<a rel="footnote" href="#fn-32"><sup>32</sup></a>
 
13181
 
 
13182
   <p>If used interactively, commands that would ask for confirmation
 
13183
proceed without asking when used inside a user-defined command.  Many
 
13184
<small>GDB</small> commands that normally print messages to say what they are
 
13185
doing omit the messages when used in a user-defined command.
 
13186
 
 
13187
   <p>Command definitions are saved across <small>DDD</small> sessions.
 
13188
 
 
13189
<div class="node">
 
13190
<p><hr>
 
13191
<small class=header>
 
13192
Node:<a name="GDB%20Argument%20Commands">GDB Argument Commands</a>,
 
13193
Next:<a rel="next" accesskey="n" href="#Commands%20with%20Other%20Debuggers">Commands with Other Debuggers</a>,
 
13194
Previous:<a rel="previous" accesskey="p" href="#GDB%20Simple%20Commands">GDB Simple Commands</a>,
 
13195
Up:<a rel="up" accesskey="u" href="#Defining%20Commands">Defining Commands</a>
 
13196
</small>
 
13197
 
 
13198
<br>
 
13199
</div>
 
13200
 
 
13201
<h4 class="subsection">Defining Argument Commands using GDB</h4>
 
13202
 
 
13203
   <p>If you want to pass arguments to user-defined commands, you can enable
 
13204
the <code>()</code> toggle button in the Command Editor.  Enabling
 
13205
<code>()</code> has two effects:
 
13206
 
 
13207
     <ul>
 
13208
<li>While recording commands, all references to the argument field are taken
 
13209
<em>symbolically</em> instead of literally.  The argument field value is
 
13210
frozen to <code>$arg0</code>, which is how <small>GDB</small> denotes the argument of a
 
13211
user-defined command.  When <small>GDB</small> executes the command, it will replace
 
13212
<code>$arg0</code> by the current command argument.
 
13213
 
 
13214
     <li>When assigning a button to the command, the command will be suffixed by
 
13215
the current contents of the argument field. 
 
13216
</ul>
 
13217
 
 
13218
   <p>While defining a command, you can toggle the <code>()</code> button as you
 
13219
wish to switch between using the argument field symbolically and
 
13220
literally.
 
13221
 
 
13222
   <p>As an example, let us define a command <code>contuntil</code> that will set a
 
13223
breakpoint in the given argument and continue execution.
 
13224
 
 
13225
     <ol type=1 start=1>
 
13226
<li>Enter <code>contuntil</code> in the <code>Command</code> field.
 
13227
 
 
13228
     <li>Enable the <code>()</code> toggle button.
 
13229
 
 
13230
     <li>Now click on <code>Record</code> to start recording.  Note that the
 
13231
contents of the argument field change to <code>$arg0</code>.
 
13232
 
 
13233
     <li>Click on <code>Break at ()</code> to create a breakpoint.  Note that the
 
13234
recorded breakpoint command refers to <code>$arg0</code>.
 
13235
 
 
13236
     <li>Click on <code>Cont</code> to continue execution.
 
13237
 
 
13238
     <li>Click on <code>End</code> to end recording.  Note that the argument field
 
13239
is restored to its original value.
 
13240
 
 
13241
     <li>Finally, click on one of the <code>Button</code> locations.  This creates a
 
13242
<code>Contuntil ()</code> button where <code>()</code> will be replaced by the
 
13243
current contents of the argument field--and thus passed to the
 
13244
<code>contuntil</code> command.
 
13245
 
 
13246
     <li>You can now either use the <code>Contuntil ()</code> button or enter a
 
13247
<code>contuntil</code> command at the <small>GDB</small> prompt.  (If you plan to
 
13248
use the command frequently, you may wish to define a <code>cu</code>
 
13249
command, which again calls <code>contuntil</code> with its argument.  This
 
13250
is a nice exercise.)
 
13251
        </ol>
 
13252
 
 
13253
   <p>There is a little drawback with argument commands: a user-defined
 
13254
command in <small>GDB</small> has no means to access the argument list as a whole; only
 
13255
the first argument (up to whitespace) is processed.  This may change in
 
13256
future <small>GDB</small> releases.
 
13257
 
 
13258
<div class="node">
 
13259
<p><hr>
 
13260
<small class=header>
 
13261
Node:<a name="Commands%20with%20Other%20Debuggers">Commands with Other Debuggers</a>,
 
13262
Previous:<a rel="previous" accesskey="p" href="#GDB%20Argument%20Commands">GDB Argument Commands</a>,
 
13263
Up:<a rel="up" accesskey="u" href="#Defining%20Commands">Defining Commands</a>
 
13264
</small>
 
13265
 
 
13266
<br>
 
13267
</div>
 
13268
 
 
13269
<h4 class="subsection">Defining Commands using Other Debuggers</h4>
 
13270
 
 
13271
   <p>If your inferior debugger allows you to define own command sequences,
 
13272
you can also use these user-defined commands within <small>DDD</small>; just
 
13273
enter them at the debugger prompt.
 
13274
 
 
13275
   <p>However, you may encounter some problems:
 
13276
 
 
13277
     <ul>
 
13278
<li>In contrast to the well-documented commands of the inferior debugger,
 
13279
<small>DDD</small> does not know what a user-defined command does.  This may
 
13280
lead to inconsistencies between <small>DDD</small> and the inferior debugger. 
 
13281
For instance, if your the user-defined command <code>bp</code> sets a
 
13282
breakpoint, <small>DDD</small> may not display it immediately, because
 
13283
<small>DDD</small> does not know that <code>bp</code> changes the breakpoint state.
 
13284
 
 
13285
     <li>You cannot use <small>DDD</small> <code>graph</code> commands within user-defined
 
13286
commands.  This is only natural, because user-defined commands are
 
13287
interpreted by the inferior debugger, which does not know about
 
13288
<small>DDD</small> commands. 
 
13289
</ul>
 
13290
 
 
13291
   <p>As a solution, <small>DDD</small> provides a simple facility called
 
13292
<dfn>auto-commands</dfn>.  If <small>DDD</small> receives any output from the
 
13293
inferior debugger in the form <code></code><var>prefix</var><code> </code><var>command</var><code></code>, it will
 
13294
interpret <var>command</var> as if it had been entered at the debugger
 
13295
prompt.  <var>prefix</var> is a user-defined string, for example
 
13296
<code>ddd: </code>.
 
13297
 
 
13298
   <p>Suppose you want to define a command <code>gd</code> that serves as
 
13299
abbreviation for <code>graph display</code>.  All the command <code>gd</code> has
 
13300
to do is to issue a string
 
13301
 
 
13302
<pre class="example">     ddd: graph display <var>argument</var>
 
13303
     </pre>
 
13304
 
 
13305
   <p>where <var>argument</var> is the argument given to <code>gd</code>.  Using
 
13306
<small>GDB</small>, this can be achieved using the <code>echo</code> command.  In
 
13307
your <code>~/.gdbinit</code> file, insert the lines
 
13308
 
 
13309
<pre class="example">     define gd
 
13310
       echo ddd: graph display $arg0\n
 
13311
     end
 
13312
     </pre>
 
13313
 
 
13314
   <p>To complete the setting, you must also set the <code>autoCommandPrefix</code>
 
13315
resource to the <code>ddd: </code> prefix you gave in your command. 
 
13316
In <code>~/.ddd/init</code>, write:
 
13317
 
 
13318
<pre class="example">     Ddd*autoCommandPrefix: ddd:\
 
13319
     </pre>
 
13320
 
 
13321
<p>(Be sure to leave a space after the trailing backslash.)
 
13322
 
 
13323
   <p>Entering <code>gd foo</code> will now have the same effect as entering
 
13324
<code>graph display foo</code> at the debugger prompt.
 
13325
 
 
13326
   <p>Please note: In your commands, you should choose some other prefix than
 
13327
<code>ddd: </code>.  This is because auto-commands raise a security
 
13328
problem, since arbitrary commands can be executed.  Just imagine some
 
13329
malicious program issuing a string like <code></code><var>prefix</var><code> shell rm -fr
 
13330
~</code> when being debugged!  As a consequence, be sure to choose your own
 
13331
<var>prefix</var>; it must be at least three characters long.
 
13332
 
 
13333
<div class="node">
 
13334
<p><hr>
 
13335
<small class=header>
 
13336
Node:<a name="Application%20Defaults">Application Defaults</a>,
 
13337
Next:<a rel="next" accesskey="n" href="#Bugs">Bugs</a>,
 
13338
Previous:<a rel="previous" accesskey="p" href="#Commands">Commands</a>,
 
13339
Up:<a rel="up" accesskey="u" href="#Top">Top</a>
 
13340
</small>
 
13341
 
 
13342
<br>
 
13343
</div>
 
13344
 
 
13345
<h2 class="appendix">Application Defaults</h2>
 
13346
 
 
13347
   <p>Like any good X citizen, <small>DDD</small> comes with a large
 
13348
application-defaults file named <code>Ddd</code>.  This appendix documents the
 
13349
actions and images referenced in <code>Ddd</code>, such that you can easily
 
13350
modify them.
 
13351
 
 
13352
<ul class="menu">
 
13353
<li><a accesskey="1" href="#Actions">Actions</a>:                      All actions used in translation tables. 
 
13354
<li><a accesskey="2" href="#Images">Images</a>:                       All images used in resources,
 
13355
</ul>
 
13356
 
 
13357
<div class="node">
 
13358
<p><hr>
 
13359
<small class=header>
 
13360
Node:<a name="Actions">Actions</a>,
 
13361
Next:<a rel="next" accesskey="n" href="#Images">Images</a>,
 
13362
Up:<a rel="up" accesskey="u" href="#Application%20Defaults">Application Defaults</a>
 
13363
</small>
 
13364
 
 
13365
<br>
 
13366
</div>
 
13367
 
 
13368
<h3 class="section">Actions</h3>
 
13369
 
 
13370
   <p>The following <small>DDD</small> actions may be used in translation tables.
 
13371
 
 
13372
<ul class="menu">
 
13373
<li><a accesskey="1" href="#General%20Actions">General Actions</a>: 
 
13374
<li><a accesskey="2" href="#Data%20Display%20Actions">Data Display Actions</a>: 
 
13375
<li><a accesskey="3" href="#Debugger%20Console%20Actions">Debugger Console Actions</a>: 
 
13376
<li><a accesskey="4" href="#Source%20Window%20Actions">Source Window Actions</a>: 
 
13377
</ul>
 
13378
 
 
13379
<div class="node">
 
13380
<p><hr>
 
13381
<small class=header>
 
13382
Node:<a name="General%20Actions">General Actions</a>,
 
13383
Next:<a rel="next" accesskey="n" href="#Data%20Display%20Actions">Data Display Actions</a>,
 
13384
Up:<a rel="up" accesskey="u" href="#Actions">Actions</a>
 
13385
</small>
 
13386
 
 
13387
<br>
 
13388
</div>
 
13389
 
 
13390
<h4 class="subsection">General Actions</h4>
 
13391
 
 
13392
<p>
 
13393
<table width="100%">
 
13394
<tr>
 
13395
<td align="left"><b>ddd-get-focus</b><i> </i>(<i></i>)<i>
 
13396
     </i></td>
 
13397
<td align="right">Action</td>
 
13398
</tr>
 
13399
</table>
 
13400
<table width="95%" align="center">
 
13401
<tr><td>
 
13402
Assign focus to the element that just received input. 
 
13403
</td></tr>
 
13404
</table>
 
13405
 
 
13406
<p>
 
13407
<table width="100%">
 
13408
<tr>
 
13409
<td align="left"><b>ddd-next-tab-group</b><i> </i>(<i></i>)<i>
 
13410
     </i></td>
 
13411
<td align="right">Action</td>
 
13412
</tr>
 
13413
</table>
 
13414
<table width="95%" align="center">
 
13415
<tr><td>
 
13416
Assign focus to the next tab group. 
 
13417
</td></tr>
 
13418
</table>
 
13419
 
 
13420
<p>
 
13421
<table width="100%">
 
13422
<tr>
 
13423
<td align="left"><b>ddd-prev-tab-group</b><i> </i>(<i></i>)<i>
 
13424
     </i></td>
 
13425
<td align="right">Action</td>
 
13426
</tr>
 
13427
</table>
 
13428
<table width="95%" align="center">
 
13429
<tr><td>
 
13430
Assign focus to the previous tab group. 
 
13431
</td></tr>
 
13432
</table>
 
13433
 
 
13434
<p>
 
13435
<table width="100%">
 
13436
<tr>
 
13437
<td align="left"><b>ddd-previous-tab-group</b><i> </i>(<i></i>)<i>
 
13438
     </i></td>
 
13439
<td align="right">Action</td>
 
13440
</tr>
 
13441
</table>
 
13442
<table width="95%" align="center">
 
13443
<tr><td>
 
13444
Assign focus to the previous tab group. 
 
13445
</td></tr>
 
13446
</table>
 
13447
 
 
13448
<div class="node">
 
13449
<p><hr>
 
13450
<small class=header>
 
13451
Node:<a name="Data%20Display%20Actions">Data Display Actions</a>,
 
13452
Next:<a rel="next" accesskey="n" href="#Debugger%20Console%20Actions">Debugger Console Actions</a>,
 
13453
Previous:<a rel="previous" accesskey="p" href="#General%20Actions">General Actions</a>,
 
13454
Up:<a rel="up" accesskey="u" href="#Actions">Actions</a>
 
13455
</small>
 
13456
 
 
13457
<br>
 
13458
</div>
 
13459
 
 
13460
<h4 class="subsection">Data Display Actions</h4>
 
13461
 
 
13462
   <p>These actions are used in the <small>DDD</small> graph editor.
 
13463
 
 
13464
<p>
 
13465
<table width="100%">
 
13466
<tr>
 
13467
<td align="left"><b>end</b><i> </i>(<i></i>)<i>
 
13468
     </i></td>
 
13469
<td align="right">Action</td>
 
13470
</tr>
 
13471
</table>
 
13472
<table width="95%" align="center">
 
13473
<tr><td>
 
13474
End the action initiated by <code>select</code>.  Bound to a button up event. 
 
13475
</td></tr>
 
13476
</table>
 
13477
 
 
13478
<p>
 
13479
<table width="100%">
 
13480
<tr>
 
13481
<td align="left"><b>extend</b><i> </i>(<i></i>)<i>
 
13482
     </i></td>
 
13483
<td align="right">Action</td>
 
13484
</tr>
 
13485
</table>
 
13486
<table width="95%" align="center">
 
13487
<tr><td>
 
13488
Extend the current selection.  Bound to a button down event. 
 
13489
</td></tr>
 
13490
</table>
 
13491
 
 
13492
<p>
 
13493
<table width="100%">
 
13494
<tr>
 
13495
<td align="left"><b>extend-or-move</b><i> </i>(<i></i>)<i>
 
13496
     </i></td>
 
13497
<td align="right">Action</td>
 
13498
</tr>
 
13499
</table>
 
13500
<table width="95%" align="center">
 
13501
<tr><td>
 
13502
Extend the current selection.  Bound to a button down event. 
 
13503
If the pointer is dragged, move the selection. 
 
13504
</td></tr>
 
13505
</table>
 
13506
 
 
13507
<p>
 
13508
<table width="100%">
 
13509
<tr>
 
13510
<td align="left"><b>follow</b><i> </i>(<i></i>)<i>
 
13511
     </i></td>
 
13512
<td align="right">Action</td>
 
13513
</tr>
 
13514
</table>
 
13515
<table width="95%" align="center">
 
13516
<tr><td>
 
13517
Continue the action initiated by <code>select</code>.  Bound to a pointer
 
13518
motion event. 
 
13519
</td></tr>
 
13520
</table>
 
13521
 
 
13522
<p>
 
13523
<table width="100%">
 
13524
<tr>
 
13525
<td align="left"><b>graph-select</b><i> </i>(<i></i>)<i>
 
13526
     </i></td>
 
13527
<td align="right">Action</td>
 
13528
</tr>
 
13529
</table>
 
13530
<table width="95%" align="center">
 
13531
<tr><td>
 
13532
Equivalent to <code>select</code>, but also updates the current argument. 
 
13533
</td></tr>
 
13534
</table>
 
13535
 
 
13536
<p>
 
13537
<table width="100%">
 
13538
<tr>
 
13539
<td align="left"><b>graph-select-or-move</b><i> </i>(<i></i>)<i>
 
13540
     </i></td>
 
13541
<td align="right">Action</td>
 
13542
</tr>
 
13543
</table>
 
13544
<table width="95%" align="center">
 
13545
<tr><td>
 
13546
Equivalent to <code>select-or-move</code>, but also updates the current argument. 
 
13547
</td></tr>
 
13548
</table>
 
13549
 
 
13550
<p>
 
13551
<table width="100%">
 
13552
<tr>
 
13553
<td align="left"><b>graph-extend</b><i> </i>(<i></i>)<i>
 
13554
     </i></td>
 
13555
<td align="right">Action</td>
 
13556
</tr>
 
13557
</table>
 
13558
<table width="95%" align="center">
 
13559
<tr><td>
 
13560
Equivalent to <code>extend</code>, but also updates the current argument. 
 
13561
</td></tr>
 
13562
</table>
 
13563
 
 
13564
<p>
 
13565
<table width="100%">
 
13566
<tr>
 
13567
<td align="left"><b>graph-extend-or-move</b><i> </i>(<i></i>)<i>
 
13568
     </i></td>
 
13569
<td align="right">Action</td>
 
13570
</tr>
 
13571
</table>
 
13572
<table width="95%" align="center">
 
13573
<tr><td>
 
13574
Equivalent to <code>extend-or-move</code>, but also updates the current argument. 
 
13575
</td></tr>
 
13576
</table>
 
13577
 
 
13578
<p>
 
13579
<table width="100%">
 
13580
<tr>
 
13581
<td align="left"><b>graph-toggle</b><i> </i>(<i></i>)<i>
 
13582
     </i></td>
 
13583
<td align="right">Action</td>
 
13584
</tr>
 
13585
</table>
 
13586
<table width="95%" align="center">
 
13587
<tr><td>
 
13588
Equivalent to <code>toggle</code>, but also updates the current argument. 
 
13589
</td></tr>
 
13590
</table>
 
13591
 
 
13592
<p>
 
13593
<table width="100%">
 
13594
<tr>
 
13595
<td align="left"><b>graph-toggle-or-move</b><i> </i>(<i></i>)<i>
 
13596
     </i></td>
 
13597
<td align="right">Action</td>
 
13598
</tr>
 
13599
</table>
 
13600
<table width="95%" align="center">
 
13601
<tr><td>
 
13602
Equivalent to <code>toggle-or-move</code>, but also updates the current argument. 
 
13603
</td></tr>
 
13604
</table>
 
13605
 
 
13606
<p>
 
13607
<table width="100%">
 
13608
<tr>
 
13609
<td align="left"><b>graph-popup-menu</b><i> </i>(<i></i>[<i></i><code>graph</code><i>|</i><code>node</code><i>|</i><code>shortcut</code><i></i>]<i></i>)<i>
 
13610
     </i></td>
 
13611
<td align="right">Action</td>
 
13612
</tr>
 
13613
</table>
 
13614
<table width="95%" align="center">
 
13615
<tr><td>
 
13616
Pops up a menu.  <code>graph</code> pops up a menu with global graph
 
13617
operations, <code>node</code> pops up a menu with node operations, and
 
13618
<code>shortcut</code> pops up a menu with display shortcuts.
 
13619
 
 
13620
     <p>If no argument is given, pops up a menu depending on the context: when
 
13621
pointing on a node with the &lt;Shift&gt; key pressed, behaves like
 
13622
<code>shortcut</code>; when pointing on a without the &lt;Shift&gt; key pressed,
 
13623
behaves like <code>node</code>; otherwise, behaves as if <code>graph</code> was
 
13624
given. 
 
13625
</td></tr>
 
13626
</table>
 
13627
 
 
13628
<p>
 
13629
<table width="100%">
 
13630
<tr>
 
13631
<td align="left"><b>graph-dereference</b><i> </i>(<i></i>)<i>
 
13632
     </i></td>
 
13633
<td align="right">Action</td>
 
13634
</tr>
 
13635
</table>
 
13636
<table width="95%" align="center">
 
13637
<tr><td>
 
13638
Dereference the selected display. 
 
13639
</td></tr>
 
13640
</table>
 
13641
 
 
13642
<p>
 
13643
<table width="100%">
 
13644
<tr>
 
13645
<td align="left"><b>graph-detail</b><i> </i>(<i></i>)<i>
 
13646
     </i></td>
 
13647
<td align="right">Action</td>
 
13648
</tr>
 
13649
</table>
 
13650
<table width="95%" align="center">
 
13651
<tr><td>
 
13652
Show or hide detail of the selected display. 
 
13653
</td></tr>
 
13654
</table>
 
13655
 
 
13656
<p>
 
13657
<table width="100%">
 
13658
<tr>
 
13659
<td align="left"><b>graph-rotate</b><i> </i>(<i></i>)<i>
 
13660
     </i></td>
 
13661
<td align="right">Action</td>
 
13662
</tr>
 
13663
</table>
 
13664
<table width="95%" align="center">
 
13665
<tr><td>
 
13666
Rotate the selected display. 
 
13667
</td></tr>
 
13668
</table>
 
13669
 
 
13670
<p>
 
13671
<table width="100%">
 
13672
<tr>
 
13673
<td align="left"><b>graph-dependent</b><i> </i>(<i></i>)<i>
 
13674
     </i></td>
 
13675
<td align="right">Action</td>
 
13676
</tr>
 
13677
</table>
 
13678
<table width="95%" align="center">
 
13679
<tr><td>
 
13680
Pop up a dialog to create a dependent display. 
 
13681
</td></tr>
 
13682
</table>
 
13683
 
 
13684
<p>
 
13685
<table width="100%">
 
13686
<tr>
 
13687
<td align="left"><b>hide-edges</b><i> </i>(<i></i>[<i></i><code>any</code><i>|</i><code>both</code><i>|</i><code>from</code><i>|</i><code>to</code><i></i>]<i></i>)<i>
 
13688
     </i></td>
 
13689
<td align="right">Action</td>
 
13690
</tr>
 
13691
</table>
 
13692
<table width="95%" align="center">
 
13693
<tr><td>
 
13694
Hide some edges.  <code>any</code> means to process all edges where either
 
13695
source or target node are selected. <code>both</code> means to process all
 
13696
edges where both nodes are selected. <code>from</code> means to process all
 
13697
edges where at least the source node is selected. <code>to</code> means to
 
13698
process all edges where at least the target node is selected.  Default
 
13699
is <code>any</code>. 
 
13700
</td></tr>
 
13701
</table>
 
13702
 
 
13703
<p>
 
13704
<table width="100%">
 
13705
<tr>
 
13706
<td align="left"><b>layout</b><i> </i>(<i></i>[<i></i><code>regular</code><i>|</i><code>compact</code><i></i>]<i>, </i>[<i></i>[<i></i><code>+</code><i>|</i><code>-</code><i></i>]<i> degrees</i>]<i></i>)<i>
 
13707
     </i></td>
 
13708
<td align="right">Action</td>
 
13709
</tr>
 
13710
</table>
 
13711
<table width="95%" align="center">
 
13712
<tr><td>
 
13713
Layout the graph.  <code>regular</code> means to use the regular layout
 
13714
algorithm; <code>compact</code> uses an alternate layout algorithm, where
 
13715
successors are placed next to their parents.  Default is
 
13716
<code>regular</code>.  <var>degrees</var> indicates in which direction the graph
 
13717
should be layouted.  Default is the current graph direction. 
 
13718
</td></tr>
 
13719
</table>
 
13720
 
 
13721
<p>
 
13722
<table width="100%">
 
13723
<tr>
 
13724
<td align="left"><b>move-selected</b><i> </i>(<i>x-offset, y-offset</i>)<i>
 
13725
     </i></td>
 
13726
<td align="right">Action</td>
 
13727
</tr>
 
13728
</table>
 
13729
<table width="95%" align="center">
 
13730
<tr><td>
 
13731
Move all selected nodes in the direction given by <var>x-offset</var> and
 
13732
<var>y-offset</var>.  <var>x-offset</var> and <var>y-offset</var> is either given as a
 
13733
numeric pixel value, or as <code>+grid</code>, or <code>-grid</code>, meaning the
 
13734
current grid size. 
 
13735
</td></tr>
 
13736
</table>
 
13737
 
 
13738
<p>
 
13739
<table width="100%">
 
13740
<tr>
 
13741
<td align="left"><b>normalize</b><i> </i>(<i></i>)<i>
 
13742
     </i></td>
 
13743
<td align="right">Action</td>
 
13744
</tr>
 
13745
</table>
 
13746
<table width="95%" align="center">
 
13747
<tr><td>
 
13748
Place all nodes on their positions and redraw the graph. 
 
13749
</td></tr>
 
13750
</table>
 
13751
 
 
13752
<p>
 
13753
<table width="100%">
 
13754
<tr>
 
13755
<td align="left"><b>rotate</b><i> </i>(<i></i>[<i></i>[<i></i><code>+</code><i>|</i><code>-</code><i></i>]<i>degrees</i>]<i></i>)<i>
 
13756
     </i></td>
 
13757
<td align="right">Action</td>
 
13758
</tr>
 
13759
</table>
 
13760
<table width="95%" align="center">
 
13761
<tr><td>
 
13762
Rotate the graph around <var>degrees</var> degrees. 
 
13763
<var>degrees</var> must be a multiple of 90.  Default is <code>+90</code>. 
 
13764
</td></tr>
 
13765
</table>
 
13766
 
 
13767
<p>
 
13768
<table width="100%">
 
13769
<tr>
 
13770
<td align="left"><b>select</b><i> </i>(<i></i>)<i>
 
13771
     </i></td>
 
13772
<td align="right">Action</td>
 
13773
</tr>
 
13774
</table>
 
13775
<table width="95%" align="center">
 
13776
<tr><td>
 
13777
Select the node pointed at.  Clear all other selections.  Bound to a
 
13778
button down event. 
 
13779
</td></tr>
 
13780
</table>
 
13781
 
 
13782
<p>
 
13783
<table width="100%">
 
13784
<tr>
 
13785
<td align="left"><b>select-all</b><i> </i>(<i></i>)<i>
 
13786
     </i></td>
 
13787
<td align="right">Action</td>
 
13788
</tr>
 
13789
</table>
 
13790
<table width="95%" align="center">
 
13791
<tr><td>
 
13792
Select all nodes in the graph. 
 
13793
</td></tr>
 
13794
</table>
 
13795
 
 
13796
<p>
 
13797
<table width="100%">
 
13798
<tr>
 
13799
<td align="left"><b>select-first</b><i> </i>(<i></i>)<i>
 
13800
     </i></td>
 
13801
<td align="right">Action</td>
 
13802
</tr>
 
13803
</table>
 
13804
<table width="95%" align="center">
 
13805
<tr><td>
 
13806
Select the first node in the graph. 
 
13807
</td></tr>
 
13808
</table>
 
13809
 
 
13810
<p>
 
13811
<table width="100%">
 
13812
<tr>
 
13813
<td align="left"><b>select-next</b><i> </i>(<i></i>)<i>
 
13814
     </i></td>
 
13815
<td align="right">Action</td>
 
13816
</tr>
 
13817
</table>
 
13818
<table width="95%" align="center">
 
13819
<tr><td>
 
13820
Select the next node in the graph. 
 
13821
</td></tr>
 
13822
</table>
 
13823
 
 
13824
<p>
 
13825
<table width="100%">
 
13826
<tr>
 
13827
<td align="left"><b>select-or-move</b><i> </i>(<i></i>)<i>
 
13828
     </i></td>
 
13829
<td align="right">Action</td>
 
13830
</tr>
 
13831
</table>
 
13832
<table width="95%" align="center">
 
13833
<tr><td>
 
13834
Select the node pointed at.  Clear all other selections.  Bound to a
 
13835
button down event. If the pointer is dragged, move the selected node. 
 
13836
</td></tr>
 
13837
</table>
 
13838
 
 
13839
<p>
 
13840
<table width="100%">
 
13841
<tr>
 
13842
<td align="left"><b>select-prev</b><i> </i>(<i></i>)<i>
 
13843
     </i></td>
 
13844
<td align="right">Action</td>
 
13845
</tr>
 
13846
</table>
 
13847
<table width="95%" align="center">
 
13848
<tr><td>
 
13849
Select the previous node in the graph. 
 
13850
</td></tr>
 
13851
</table>
 
13852
 
 
13853
<p>
 
13854
<table width="100%">
 
13855
<tr>
 
13856
<td align="left"><b>show-edges</b><i> </i>(<i></i>[<i></i><code>any</code><i>|</i><code>both</code><i>|</i><code>from</code><i>|</i><code>to</code><i></i>]<i></i>)<i>
 
13857
     </i></td>
 
13858
<td align="right">Action</td>
 
13859
</tr>
 
13860
</table>
 
13861
<table width="95%" align="center">
 
13862
<tr><td>
 
13863
Show some edges.  <code>any</code> means to process all edges where either
 
13864
source or target node are selected. <code>both</code> means to process all
 
13865
edges where both nodes are selected. <code>from</code> means to process all
 
13866
edges where at least the source node is selected. <code>to</code> means to
 
13867
process all edges where at least the target node is selected.  Default
 
13868
is <code>any</code>. 
 
13869
</td></tr>
 
13870
</table>
 
13871
 
 
13872
<p>
 
13873
<table width="100%">
 
13874
<tr>
 
13875
<td align="left"><b>snap-to-grid</b><i> </i>(<i></i>)<i>
 
13876
     </i></td>
 
13877
<td align="right">Action</td>
 
13878
</tr>
 
13879
</table>
 
13880
<table width="95%" align="center">
 
13881
<tr><td>
 
13882
Place all nodes on the nearest grid position. 
 
13883
</td></tr>
 
13884
</table>
 
13885
 
 
13886
<p>
 
13887
<table width="100%">
 
13888
<tr>
 
13889
<td align="left"><b>toggle</b><i> </i>(<i></i>)<i>
 
13890
     </i></td>
 
13891
<td align="right">Action</td>
 
13892
</tr>
 
13893
</table>
 
13894
<table width="95%" align="center">
 
13895
<tr><td>
 
13896
Toggle the current selection--if the node pointed at is selected,
 
13897
it will be unselected, and vice versa.  Bound to a button down event. 
 
13898
</td></tr>
 
13899
</table>
 
13900
 
 
13901
<p>
 
13902
<table width="100%">
 
13903
<tr>
 
13904
<td align="left"><b>toggle-or-move</b><i> </i>(<i></i>)<i>
 
13905
     </i></td>
 
13906
<td align="right">Action</td>
 
13907
</tr>
 
13908
</table>
 
13909
<table width="95%" align="center">
 
13910
<tr><td>
 
13911
Toggle the current selection--if the node pointed at is selected,
 
13912
it will be unselected, and vice versa.  Bound to a button down event. 
 
13913
If the pointer is dragged, move the selection. 
 
13914
</td></tr>
 
13915
</table>
 
13916
 
 
13917
<p>
 
13918
<table width="100%">
 
13919
<tr>
 
13920
<td align="left"><b>unselect-all</b><i> </i>(<i></i>)<i>
 
13921
     </i></td>
 
13922
<td align="right">Action</td>
 
13923
</tr>
 
13924
</table>
 
13925
<table width="95%" align="center">
 
13926
<tr><td>
 
13927
Clear the selection. 
 
13928
</td></tr>
 
13929
</table>
 
13930
 
 
13931
<div class="node">
 
13932
<p><hr>
 
13933
<small class=header>
 
13934
Node:<a name="Debugger%20Console%20Actions">Debugger Console Actions</a>,
 
13935
Next:<a rel="next" accesskey="n" href="#Source%20Window%20Actions">Source Window Actions</a>,
 
13936
Previous:<a rel="previous" accesskey="p" href="#Data%20Display%20Actions">Data Display Actions</a>,
 
13937
Up:<a rel="up" accesskey="u" href="#Actions">Actions</a>
 
13938
</small>
 
13939
 
 
13940
<br>
 
13941
</div>
 
13942
 
 
13943
<h4 class="subsection">Debugger Console Actions</h4>
 
13944
 
 
13945
   <p>These actions are used in the debugger console and other text fields.
 
13946
 
 
13947
<p>
 
13948
<table width="100%">
 
13949
<tr>
 
13950
<td align="left"><b>gdb-backward-character</b><i> </i>(<i></i>)<i>
 
13951
     </i></td>
 
13952
<td align="right">Action</td>
 
13953
</tr>
 
13954
</table>
 
13955
<table width="95%" align="center">
 
13956
<tr><td>
 
13957
Move one character to the left.  Bound to <code>Left</code>. 
 
13958
</td></tr>
 
13959
</table>
 
13960
 
 
13961
<p>
 
13962
<table width="100%">
 
13963
<tr>
 
13964
<td align="left"><b>gdb-beginning-of-line</b><i> </i>(<i></i>)<i>
 
13965
     </i></td>
 
13966
<td align="right">Action</td>
 
13967
</tr>
 
13968
</table>
 
13969
<table width="95%" align="center">
 
13970
<tr><td>
 
13971
Move cursor to the beginning of the current line, after the prompt. 
 
13972
Bound to <code>HOME</code>. 
 
13973
</td></tr>
 
13974
</table>
 
13975
 
 
13976
<p>
 
13977
<table width="100%">
 
13978
<tr>
 
13979
<td align="left"><b>gdb-control</b><i> </i>(<i>control-character</i>)<i>
 
13980
     </i></td>
 
13981
<td align="right">Action</td>
 
13982
</tr>
 
13983
</table>
 
13984
<table width="95%" align="center">
 
13985
<tr><td>
 
13986
Send the given <var>control-character</var> to the inferior debugger. 
 
13987
<var>control-character</var> must be specified in the form <code>^</code><var>X</var><code></code>,
 
13988
where <var>X</var> is an upper-case letter, or <code>?</code>. 
 
13989
</td></tr>
 
13990
</table>
 
13991
 
 
13992
<p>
 
13993
<table width="100%">
 
13994
<tr>
 
13995
<td align="left"><b>gdb-command</b><i> </i>(<i>command</i>)<i>
 
13996
     </i></td>
 
13997
<td align="right">Action</td>
 
13998
</tr>
 
13999
</table>
 
14000
<table width="95%" align="center">
 
14001
<tr><td>
 
14002
Execute <var>command</var> in the debugger console.  The following
 
14003
replacements are performed on <var>command</var>:
 
14004
 
 
14005
          <ul>
 
14006
<li>If <var>command</var> has the form <code></code><var>name</var><code>...</code>, insert <var>name</var>,
 
14007
followed by a space, in the debugger console.
 
14008
 
 
14009
          <li>All occurrences of <code>()</code> are replaced by the current contents of
 
14010
the argument field <code>()</code>.
 
14011
 
 
14012
     </ul>
 
14013
     </td></tr>
 
14014
</table>
 
14015
 
 
14016
<p>
 
14017
<table width="100%">
 
14018
<tr>
 
14019
<td align="left"><b>gdb-complete-arg</b><i> </i>(<i>command</i>)<i>
 
14020
     </i></td>
 
14021
<td align="right">Action</td>
 
14022
</tr>
 
14023
</table>
 
14024
<table width="95%" align="center">
 
14025
<tr><td>
 
14026
Complete current argument as if <var>command</var> was prepended. 
 
14027
Bound to &lt;Ctrl+T&gt;. 
 
14028
</td></tr>
 
14029
</table>
 
14030
 
 
14031
<p>
 
14032
<table width="100%">
 
14033
<tr>
 
14034
<td align="left"><b>gdb-complete-command</b><i> </i>(<i></i>)<i>
 
14035
     </i></td>
 
14036
<td align="right">Action</td>
 
14037
</tr>
 
14038
</table>
 
14039
<table width="95%" align="center">
 
14040
<tr><td>
 
14041
Complete current command line in the debugger console. 
 
14042
Bound to &lt;TAB&gt;. 
 
14043
</td></tr>
 
14044
</table>
 
14045
 
 
14046
<p>
 
14047
<table width="100%">
 
14048
<tr>
 
14049
<td align="left"><b>gdb-complete-tab</b><i> </i>(<i>command</i>)<i>
 
14050
     </i></td>
 
14051
<td align="right">Action</td>
 
14052
</tr>
 
14053
</table>
 
14054
<table width="95%" align="center">
 
14055
<tr><td>
 
14056
If global &lt;TAB&gt; completion is enabled, complete current
 
14057
argument as if <var>command</var> was prepended.  Otherwise, proceed as if
 
14058
the &lt;TAB&gt; key was hit.  Bound to &lt;TAB&gt;. 
 
14059
</td></tr>
 
14060
</table>
 
14061
 
 
14062
<p>
 
14063
<table width="100%">
 
14064
<tr>
 
14065
<td align="left"><b>gdb-delete-or-control</b><i> </i>(<i>control-character</i>)<i>
 
14066
     </i></td>
 
14067
<td align="right">Action</td>
 
14068
</tr>
 
14069
</table>
 
14070
<table width="95%" align="center">
 
14071
<tr><td>
 
14072
Like <code>gdb-control</code>, but effective only if the cursor is at the end
 
14073
of a line.  Otherwise, <var>control-character</var> is ignored and the
 
14074
character following the cursor is deleted.  Bound to &lt;Ctrl+D&gt;. 
 
14075
</td></tr>
 
14076
</table>
 
14077
 
 
14078
<p>
 
14079
<table width="100%">
 
14080
<tr>
 
14081
<td align="left"><b>gdb-end-of-line</b><i> </i>(<i></i>)<i>
 
14082
     </i></td>
 
14083
<td align="right">Action</td>
 
14084
</tr>
 
14085
</table>
 
14086
<table width="95%" align="center">
 
14087
<tr><td>
 
14088
Move cursor to the end of the current line.  Bound to <code>End</code>. 
 
14089
</td></tr>
 
14090
</table>
 
14091
 
 
14092
<p>
 
14093
<table width="100%">
 
14094
<tr>
 
14095
<td align="left"><b>gdb-forward-character</b><i> </i>(<i></i>)<i>
 
14096
     </i></td>
 
14097
<td align="right">Action</td>
 
14098
</tr>
 
14099
</table>
 
14100
<table width="95%" align="center">
 
14101
<tr><td>
 
14102
Move one character to the right.  Bound to <code>Right</code>. 
 
14103
</td></tr>
 
14104
</table>
 
14105
 
 
14106
<p>
 
14107
<table width="100%">
 
14108
<tr>
 
14109
<td align="left"><b>gdb-insert-graph-arg</b><i> </i>(<i></i>)<i>
 
14110
     </i></td>
 
14111
<td align="right">Action</td>
 
14112
</tr>
 
14113
</table>
 
14114
<table width="95%" align="center">
 
14115
<tr><td>
 
14116
Insert the contents of the data display argument field <code>()</code>. 
 
14117
</td></tr>
 
14118
</table>
 
14119
 
 
14120
<p>
 
14121
<table width="100%">
 
14122
<tr>
 
14123
<td align="left"><b>gdb-insert-source-arg</b><i> </i>(<i></i>)<i>
 
14124
     </i></td>
 
14125
<td align="right">Action</td>
 
14126
</tr>
 
14127
</table>
 
14128
<table width="95%" align="center">
 
14129
<tr><td>
 
14130
Insert the contents of the source argument field <code>()</code>. 
 
14131
</td></tr>
 
14132
</table>
 
14133
 
 
14134
<p>
 
14135
<table width="100%">
 
14136
<tr>
 
14137
<td align="left"><b>gdb-interrupt</b><i> </i>(<i></i>)<i>
 
14138
     </i></td>
 
14139
<td align="right">Action</td>
 
14140
</tr>
 
14141
</table>
 
14142
<table width="95%" align="center">
 
14143
<tr><td>
 
14144
If <small>DDD</small> is in incremental search mode, exit it; otherwise
 
14145
call <code>gdb-control(^C)</code>. 
 
14146
</td></tr>
 
14147
</table>
 
14148
 
 
14149
<p>
 
14150
<table width="100%">
 
14151
<tr>
 
14152
<td align="left"><b>gdb-isearch-prev</b><i> </i>(<i></i>)<i>
 
14153
     </i></td>
 
14154
<td align="right">Action</td>
 
14155
</tr>
 
14156
</table>
 
14157
<table width="95%" align="center">
 
14158
<tr><td>
 
14159
Enter reverse incremental search mode.  Bound to &lt;Ctrl+B&gt;. 
 
14160
</td></tr>
 
14161
</table>
 
14162
 
 
14163
<p>
 
14164
<table width="100%">
 
14165
<tr>
 
14166
<td align="left"><b>gdb-isearch-next</b><i> </i>(<i></i>)<i>
 
14167
     </i></td>
 
14168
<td align="right">Action</td>
 
14169
</tr>
 
14170
</table>
 
14171
<table width="95%" align="center">
 
14172
<tr><td>
 
14173
Enter incremental search mode.  Bound to &lt;Ctrl+F&gt;. 
 
14174
</td></tr>
 
14175
</table>
 
14176
 
 
14177
<p>
 
14178
<table width="100%">
 
14179
<tr>
 
14180
<td align="left"><b>gdb-isearch-exit</b><i> </i>(<i></i>)<i>
 
14181
     </i></td>
 
14182
<td align="right">Action</td>
 
14183
</tr>
 
14184
</table>
 
14185
<table width="95%" align="center">
 
14186
<tr><td>
 
14187
Exit incremental search mode.  Bound to &lt;ESC&gt;. 
 
14188
</td></tr>
 
14189
</table>
 
14190
 
 
14191
<p>
 
14192
<table width="100%">
 
14193
<tr>
 
14194
<td align="left"><b>gdb-next-history</b><i> </i>(<i></i>)<i>
 
14195
     </i></td>
 
14196
<td align="right">Action</td>
 
14197
</tr>
 
14198
</table>
 
14199
<table width="95%" align="center">
 
14200
<tr><td>
 
14201
Recall next command from history.  Bound to <code>Down</code>. 
 
14202
</td></tr>
 
14203
</table>
 
14204
 
 
14205
<p>
 
14206
<table width="100%">
 
14207
<tr>
 
14208
<td align="left"><b>gdb-prev-history</b><i> </i>(<i></i>)<i>
 
14209
     </i></td>
 
14210
<td align="right">Action</td>
 
14211
</tr>
 
14212
</table>
 
14213
<table width="95%" align="center">
 
14214
<tr><td>
 
14215
Recall previous command from history.  Bound to <code>Up</code>. 
 
14216
</td></tr>
 
14217
</table>
 
14218
 
 
14219
<p>
 
14220
<table width="100%">
 
14221
<tr>
 
14222
<td align="left"><b>gdb-previous-history</b><i> </i>(<i></i>)<i>
 
14223
     </i></td>
 
14224
<td align="right">Action</td>
 
14225
</tr>
 
14226
</table>
 
14227
<table width="95%" align="center">
 
14228
<tr><td>
 
14229
Recall previous command from history.  Bound to <code>Up</code>. 
 
14230
</td></tr>
 
14231
</table>
 
14232
 
 
14233
<p>
 
14234
<table width="100%">
 
14235
<tr>
 
14236
<td align="left"><b>gdb-process</b><i> </i>(<i></i>[<i>action </i>[<i>, args<small class="dots">...</small></i>]<i></i>]<i></i>)<i>
 
14237
     </i></td>
 
14238
<td align="right">Action</td>
 
14239
</tr>
 
14240
</table>
 
14241
<table width="95%" align="center">
 
14242
<tr><td>
 
14243
Process the given event in the debugger console.  Bound to key events
 
14244
in the source and data window.  If this action is bound to the source
 
14245
window, and the source window is editable, perform
 
14246
<code></code><var>action</var><code>(</code><var>args</var><code>...)</code> on the source window instead; if
 
14247
<var>action</var> is not given, perform <code>self-insert()</code>. 
 
14248
</td></tr>
 
14249
</table>
 
14250
 
 
14251
<p>
 
14252
<table width="100%">
 
14253
<tr>
 
14254
<td align="left"><b>gdb-select-all</b><i> </i>(<i></i>)<i>
 
14255
     </i></td>
 
14256
<td align="right">Action</td>
 
14257
</tr>
 
14258
</table>
 
14259
<table width="95%" align="center">
 
14260
<tr><td>
 
14261
If the <code>selectAllBindings</code> resource is set to <code>Motif</code>,
 
14262
perform <code>beginning-of-line</code>.  Otherwise, perform <code>select-all</code>. 
 
14263
Bound to &lt;Ctrl+A&gt;. 
 
14264
</td></tr>
 
14265
</table>
 
14266
 
 
14267
<p>
 
14268
<table width="100%">
 
14269
<tr>
 
14270
<td align="left"><b>gdb-set-line</b><i> </i>(<i>value</i>)<i>
 
14271
     </i></td>
 
14272
<td align="right">Action</td>
 
14273
</tr>
 
14274
</table>
 
14275
<table width="95%" align="center">
 
14276
<tr><td>
 
14277
Set the current line to <var>value</var>.  Bound to &lt;Ctrl+U&gt;. 
 
14278
</td></tr>
 
14279
</table>
 
14280
 
 
14281
<div class="node">
 
14282
<p><hr>
 
14283
<small class=header>
 
14284
Node:<a name="Source%20Window%20Actions">Source Window Actions</a>,
 
14285
Previous:<a rel="previous" accesskey="p" href="#Debugger%20Console%20Actions">Debugger Console Actions</a>,
 
14286
Up:<a rel="up" accesskey="u" href="#Actions">Actions</a>
 
14287
</small>
 
14288
 
 
14289
<br>
 
14290
</div>
 
14291
 
 
14292
<h4 class="subsection">Source Window Actions</h4>
 
14293
 
 
14294
   <p>These actions are used in the source and code windows.
 
14295
 
 
14296
<p>
 
14297
<table width="100%">
 
14298
<tr>
 
14299
<td align="left"><b>source-delete-glyph</b><i> </i>(<i></i>)<i>
 
14300
     </i></td>
 
14301
<td align="right">Action</td>
 
14302
</tr>
 
14303
</table>
 
14304
<table width="95%" align="center">
 
14305
<tr><td>
 
14306
Delete the breakpoint related to the glyph at cursor position. 
 
14307
</td></tr>
 
14308
</table>
 
14309
 
 
14310
<p>
 
14311
<table width="100%">
 
14312
<tr>
 
14313
<td align="left"><b>source-double-click</b><i> </i>(<i></i>[<i>text-action </i>[<i>, line-action </i>[<i>, function-action</i>]<i></i>]<i></i>]<i></i>)<i>
 
14314
     </i></td>
 
14315
<td align="right">Action</td>
 
14316
</tr>
 
14317
</table>
 
14318
<table width="95%" align="center">
 
14319
<tr><td>
 
14320
The double-click action in the source window.
 
14321
 
 
14322
          <ul>
 
14323
<li>If this action is taken on a breakpoint glyph, edit the breakpoint
 
14324
properties. 
 
14325
<li>If this action is taken in the breakpoint area, invoke
 
14326
<code>gdb-command(</code><var>line-action</var><code>)</code>.  If <var>line-action</var> is not
 
14327
given, it defaults to <code>break ()</code>. 
 
14328
<li>If this action is taken in the source text, and the next character
 
14329
following the current selection is <code>(</code>, invoke
 
14330
<code>gdb-command(</code><var>function-action</var><code>)</code>.  If <var>function-action</var>
 
14331
is not given, it defaults to <code>list ()</code>. 
 
14332
<li>Otherwise, invoke <code>gdb-command(</code><var>text-action</var><code>)</code>.  If
 
14333
<var>text-action</var> is not given, it defaults to <code>graph display ()</code>. 
 
14334
</ul>
 
14335
     </td></tr>
 
14336
</table>
 
14337
 
 
14338
<p>
 
14339
<table width="100%">
 
14340
<tr>
 
14341
<td align="left"><b>source-drag-glyph</b><i> </i>(<i></i>)<i>
 
14342
     </i></td>
 
14343
<td align="right">Action</td>
 
14344
</tr>
 
14345
</table>
 
14346
<table width="95%" align="center">
 
14347
<tr><td>
 
14348
Initiate a drag on the glyph at cursor position. 
 
14349
</td></tr>
 
14350
</table>
 
14351
 
 
14352
<p>
 
14353
<table width="100%">
 
14354
<tr>
 
14355
<td align="left"><b>source-drop-glyph</b><i> </i>(<i></i>[<i>action</i>]<i></i>)<i>
 
14356
     </i></td>
 
14357
<td align="right">Action</td>
 
14358
</tr>
 
14359
</table>
 
14360
<table width="95%" align="center">
 
14361
<tr><td>
 
14362
Drop the dragged glyph at cursor position.  <var>action</var> is either
 
14363
<code>move</code>, meaning to move the dragged glyph, or <code>copy</code>,
 
14364
meaning to copy the dragged glyph.  If no <var>action</var> is given,
 
14365
<code>move</code> is assumed. 
 
14366
</td></tr>
 
14367
</table>
 
14368
 
 
14369
<p>
 
14370
<table width="100%">
 
14371
<tr>
 
14372
<td align="left"><b>source-end-select-word</b><i> </i>(<i></i>)<i>
 
14373
     </i></td>
 
14374
<td align="right">Action</td>
 
14375
</tr>
 
14376
</table>
 
14377
<table width="95%" align="center">
 
14378
<tr><td>
 
14379
End selecting a word. 
 
14380
</td></tr>
 
14381
</table>
 
14382
 
 
14383
<p>
 
14384
<table width="100%">
 
14385
<tr>
 
14386
<td align="left"><b>source-follow-glyph</b><i> </i>(<i></i>)<i>
 
14387
     </i></td>
 
14388
<td align="right">Action</td>
 
14389
</tr>
 
14390
</table>
 
14391
<table width="95%" align="center">
 
14392
<tr><td>
 
14393
Continue a drag on the glyph at cursor position.  Usually bound to
 
14394
some motion event. 
 
14395
</td></tr>
 
14396
</table>
 
14397
 
 
14398
<p>
 
14399
<table width="100%">
 
14400
<tr>
 
14401
<td align="left"><b>source-popup-menu</b><i> </i>(<i></i>)<i>
 
14402
     </i></td>
 
14403
<td align="right">Action</td>
 
14404
</tr>
 
14405
</table>
 
14406
<table width="95%" align="center">
 
14407
<tr><td>
 
14408
Pop up a menu, depending on the location. 
 
14409
</td></tr>
 
14410
</table>
 
14411
 
 
14412
<p>
 
14413
<table width="100%">
 
14414
<tr>
 
14415
<td align="left"><b>source-set-arg</b><i> </i>(<i></i>)<i>
 
14416
     </i></td>
 
14417
<td align="right">Action</td>
 
14418
</tr>
 
14419
</table>
 
14420
<table width="95%" align="center">
 
14421
<tr><td>
 
14422
Set the argument field to the current selection.  Typically bound to
 
14423
some selection operation. 
 
14424
</td></tr>
 
14425
</table>
 
14426
 
 
14427
<p>
 
14428
<table width="100%">
 
14429
<tr>
 
14430
<td align="left"><b>source-start-select-word</b><i> </i>(<i></i>)<i>
 
14431
     </i></td>
 
14432
<td align="right">Action</td>
 
14433
</tr>
 
14434
</table>
 
14435
<table width="95%" align="center">
 
14436
<tr><td>
 
14437
Start selecting a word. 
 
14438
</td></tr>
 
14439
</table>
 
14440
 
 
14441
<p>
 
14442
<table width="100%">
 
14443
<tr>
 
14444
<td align="left"><b>source-update-glyphs</b><i> </i>(<i></i>)<i>
 
14445
     </i></td>
 
14446
<td align="right">Action</td>
 
14447
</tr>
 
14448
</table>
 
14449
<table width="95%" align="center">
 
14450
<tr><td>
 
14451
Update all visible glyphs.  Usually invoked after a scrolling operation. 
 
14452
</td></tr>
 
14453
</table>
 
14454
 
 
14455
<div class="node">
 
14456
<p><hr>
 
14457
<small class=header>
 
14458
Node:<a name="Images">Images</a>,
 
14459
Previous:<a rel="previous" accesskey="p" href="#Actions">Actions</a>,
 
14460
Up:<a rel="up" accesskey="u" href="#Application%20Defaults">Application Defaults</a>
 
14461
</small>
 
14462
 
 
14463
<br>
 
14464
</div>
 
14465
 
 
14466
<h3 class="section">Images</h3>
 
14467
 
 
14468
   <p><small>DDD</small> installs a number of images that may be used as pixmap
 
14469
resources, simply by giving a symbolic name.  For button images,
 
14470
three variants are installed as well:
 
14471
 
 
14472
     <ul>
 
14473
<li>The suffix <code>-hi</code> indicates a highlighted variant (Button is entered). 
 
14474
<li>The suffix <code>-arm</code> indicates an armed variant (Button is pushed). 
 
14475
<li>The suffix <code>-xx</code> indicates a disabled (insensitive) variant. 
 
14476
</ul>
 
14477
 
 
14478
<p>
 
14479
<table width="100%">
 
14480
<tr>
 
14481
<td align="left"><b>break_at</b><i>
 
14482
     </i></td>
 
14483
<td align="right">Image</td>
 
14484
</tr>
 
14485
</table>
 
14486
<table width="95%" align="center">
 
14487
<tr><td>
 
14488
<code>Break at ()</code> button. 
 
14489
</td></tr>
 
14490
</table>
 
14491
 
 
14492
<p>
 
14493
<table width="100%">
 
14494
<tr>
 
14495
<td align="left"><b>clear_at</b><i>
 
14496
     </i></td>
 
14497
<td align="right">Image</td>
 
14498
</tr>
 
14499
</table>
 
14500
<table width="95%" align="center">
 
14501
<tr><td>
 
14502
<code>Clear at ()</code> button. 
 
14503
</td></tr>
 
14504
</table>
 
14505
 
 
14506
<p>
 
14507
<table width="100%">
 
14508
<tr>
 
14509
<td align="left"><b>ddd</b><i>
 
14510
     </i></td>
 
14511
<td align="right">Image</td>
 
14512
</tr>
 
14513
</table>
 
14514
<table width="95%" align="center">
 
14515
<tr><td>
 
14516
<small>DDD</small> icon. 
 
14517
</td></tr>
 
14518
</table>
 
14519
 
 
14520
<p>
 
14521
<table width="100%">
 
14522
<tr>
 
14523
<td align="left"><b>delete</b><i>
 
14524
     </i></td>
 
14525
<td align="right">Image</td>
 
14526
</tr>
 
14527
</table>
 
14528
<table width="95%" align="center">
 
14529
<tr><td>
 
14530
<code>Delete ()</code> button. 
 
14531
</td></tr>
 
14532
</table>
 
14533
 
 
14534
<p>
 
14535
<table width="100%">
 
14536
<tr>
 
14537
<td align="left"><b>disable</b><i>
 
14538
     </i></td>
 
14539
<td align="right">Image</td>
 
14540
</tr>
 
14541
</table>
 
14542
<table width="95%" align="center">
 
14543
<tr><td>
 
14544
<code>Disable</code> button. 
 
14545
</td></tr>
 
14546
</table>
 
14547
 
 
14548
<p>
 
14549
<table width="100%">
 
14550
<tr>
 
14551
<td align="left"><b>dispref</b><i>
 
14552
     </i></td>
 
14553
<td align="right">Image</td>
 
14554
</tr>
 
14555
</table>
 
14556
<table width="95%" align="center">
 
14557
<tr><td>
 
14558
<code>Display * ()</code> button. 
 
14559
</td></tr>
 
14560
</table>
 
14561
 
 
14562
<p>
 
14563
<table width="100%">
 
14564
<tr>
 
14565
<td align="left"><b>display</b><i>
 
14566
     </i></td>
 
14567
<td align="right">Image</td>
 
14568
</tr>
 
14569
</table>
 
14570
<table width="95%" align="center">
 
14571
<tr><td>
 
14572
<code>Display ()</code> button. 
 
14573
</td></tr>
 
14574
</table>
 
14575
 
 
14576
<p>
 
14577
<table width="100%">
 
14578
<tr>
 
14579
<td align="left"><b>drag_arrow</b><i>
 
14580
     </i></td>
 
14581
<td align="right">Image</td>
 
14582
</tr>
 
14583
</table>
 
14584
<table width="95%" align="center">
 
14585
<tr><td>
 
14586
The execution pointer (being dragged). 
 
14587
</td></tr>
 
14588
</table>
 
14589
 
 
14590
<p>
 
14591
<table width="100%">
 
14592
<tr>
 
14593
<td align="left"><b>drag_cond</b><i>
 
14594
     </i></td>
 
14595
<td align="right">Image</td>
 
14596
</tr>
 
14597
</table>
 
14598
<table width="95%" align="center">
 
14599
<tr><td>
 
14600
A conditional breakpoint (being dragged). 
 
14601
</td></tr>
 
14602
</table>
 
14603
 
 
14604
<p>
 
14605
<table width="100%">
 
14606
<tr>
 
14607
<td align="left"><b>drag_stop</b><i>
 
14608
     </i></td>
 
14609
<td align="right">Image</td>
 
14610
</tr>
 
14611
</table>
 
14612
<table width="95%" align="center">
 
14613
<tr><td>
 
14614
A breakpoint (being dragged). 
 
14615
</td></tr>
 
14616
</table>
 
14617
 
 
14618
<p>
 
14619
<table width="100%">
 
14620
<tr>
 
14621
<td align="left"><b>drag_temp</b><i>
 
14622
     </i></td>
 
14623
<td align="right">Image</td>
 
14624
</tr>
 
14625
</table>
 
14626
<table width="95%" align="center">
 
14627
<tr><td>
 
14628
A temporary breakpoint (being dragged). 
 
14629
</td></tr>
 
14630
</table>
 
14631
 
 
14632
<p>
 
14633
<table width="100%">
 
14634
<tr>
 
14635
<td align="left"><b>enable</b><i>
 
14636
     </i></td>
 
14637
<td align="right">Image</td>
 
14638
</tr>
 
14639
</table>
 
14640
<table width="95%" align="center">
 
14641
<tr><td>
 
14642
<code>Enable</code> button. 
 
14643
</td></tr>
 
14644
</table>
 
14645
 
 
14646
<p>
 
14647
<table width="100%">
 
14648
<tr>
 
14649
<td align="left"><b>find_forward</b><i>
 
14650
     </i></td>
 
14651
<td align="right">Image</td>
 
14652
</tr>
 
14653
</table>
 
14654
<table width="95%" align="center">
 
14655
<tr><td>
 
14656
<code>Find&gt;&gt; ()</code> button. 
 
14657
</td></tr>
 
14658
</table>
 
14659
 
 
14660
<p>
 
14661
<table width="100%">
 
14662
<tr>
 
14663
<td align="left"><b>find_backward</b><i>
 
14664
     </i></td>
 
14665
<td align="right">Image</td>
 
14666
</tr>
 
14667
</table>
 
14668
<table width="95%" align="center">
 
14669
<tr><td>
 
14670
<code>Find&lt;&lt; ()</code> button. 
 
14671
</td></tr>
 
14672
</table>
 
14673
 
 
14674
<p>
 
14675
<table width="100%">
 
14676
<tr>
 
14677
<td align="left"><b>grey_arrow</b><i>
 
14678
     </i></td>
 
14679
<td align="right">Image</td>
 
14680
</tr>
 
14681
</table>
 
14682
<table width="95%" align="center">
 
14683
<tr><td>
 
14684
The execution pointer (not in lowest frame). 
 
14685
</td></tr>
 
14686
</table>
 
14687
 
 
14688
<p>
 
14689
<table width="100%">
 
14690
<tr>
 
14691
<td align="left"><b>grey_cond</b><i>
 
14692
     </i></td>
 
14693
<td align="right">Image</td>
 
14694
</tr>
 
14695
</table>
 
14696
<table width="95%" align="center">
 
14697
<tr><td>
 
14698
A conditional breakpoint (disabled). 
 
14699
</td></tr>
 
14700
</table>
 
14701
 
 
14702
<p>
 
14703
<table width="100%">
 
14704
<tr>
 
14705
<td align="left"><b>grey_stop</b><i>
 
14706
     </i></td>
 
14707
<td align="right">Image</td>
 
14708
</tr>
 
14709
</table>
 
14710
<table width="95%" align="center">
 
14711
<tr><td>
 
14712
A breakpoint (disabled). 
 
14713
</td></tr>
 
14714
</table>
 
14715
 
 
14716
<p>
 
14717
<table width="100%">
 
14718
<tr>
 
14719
<td align="left"><b>grey_temp</b><i>
 
14720
     </i></td>
 
14721
<td align="right">Image</td>
 
14722
</tr>
 
14723
</table>
 
14724
<table width="95%" align="center">
 
14725
<tr><td>
 
14726
A temporary breakpoint (disabled). 
 
14727
</td></tr>
 
14728
</table>
 
14729
 
 
14730
<p>
 
14731
<table width="100%">
 
14732
<tr>
 
14733
<td align="left"><b>hide</b><i>
 
14734
     </i></td>
 
14735
<td align="right">Image</td>
 
14736
</tr>
 
14737
</table>
 
14738
<table width="95%" align="center">
 
14739
<tr><td>
 
14740
<code>Hide ()</code> button. 
 
14741
</td></tr>
 
14742
</table>
 
14743
 
 
14744
<p>
 
14745
<table width="100%">
 
14746
<tr>
 
14747
<td align="left"><b>lookup</b><i>
 
14748
     </i></td>
 
14749
<td align="right">Image</td>
 
14750
</tr>
 
14751
</table>
 
14752
<table width="95%" align="center">
 
14753
<tr><td>
 
14754
<code>Lookup ()</code> button. 
 
14755
</td></tr>
 
14756
</table>
 
14757
 
 
14758
<p>
 
14759
<table width="100%">
 
14760
<tr>
 
14761
<td align="left"><b>maketemp</b><i>
 
14762
     </i></td>
 
14763
<td align="right">Image</td>
 
14764
</tr>
 
14765
</table>
 
14766
<table width="95%" align="center">
 
14767
<tr><td>
 
14768
<code>Make Temporary</code> button. 
 
14769
</td></tr>
 
14770
</table>
 
14771
 
 
14772
<p>
 
14773
<table width="100%">
 
14774
<tr>
 
14775
<td align="left"><b>new_break</b><i>
 
14776
     </i></td>
 
14777
<td align="right">Image</td>
 
14778
</tr>
 
14779
</table>
 
14780
<table width="95%" align="center">
 
14781
<tr><td>
 
14782
<code>New Breakpoint</code> button. 
 
14783
</td></tr>
 
14784
</table>
 
14785
 
 
14786
<p>
 
14787
<table width="100%">
 
14788
<tr>
 
14789
<td align="left"><b>new_display</b><i>
 
14790
     </i></td>
 
14791
<td align="right">Image</td>
 
14792
</tr>
 
14793
</table>
 
14794
<table width="95%" align="center">
 
14795
<tr><td>
 
14796
<code>New Display</code> button. 
 
14797
</td></tr>
 
14798
</table>
 
14799
 
 
14800
<p>
 
14801
<table width="100%">
 
14802
<tr>
 
14803
<td align="left"><b>new_watch</b><i>
 
14804
     </i></td>
 
14805
<td align="right">Image</td>
 
14806
</tr>
 
14807
</table>
 
14808
<table width="95%" align="center">
 
14809
<tr><td>
 
14810
<code>New Watchpoint</code> button. 
 
14811
</td></tr>
 
14812
</table>
 
14813
 
 
14814
<p>
 
14815
<table width="100%">
 
14816
<tr>
 
14817
<td align="left"><b>plain_arrow</b><i>
 
14818
     </i></td>
 
14819
<td align="right">Image</td>
 
14820
</tr>
 
14821
</table>
 
14822
<table width="95%" align="center">
 
14823
<tr><td>
 
14824
The execution pointer. 
 
14825
</td></tr>
 
14826
</table>
 
14827
 
 
14828
<p>
 
14829
<table width="100%">
 
14830
<tr>
 
14831
<td align="left"><b>plain_cond</b><i>
 
14832
     </i></td>
 
14833
<td align="right">Image</td>
 
14834
</tr>
 
14835
</table>
 
14836
<table width="95%" align="center">
 
14837
<tr><td>
 
14838
A conditional breakpoint (enabled). 
 
14839
</td></tr>
 
14840
</table>
 
14841
 
 
14842
<p>
 
14843
<table width="100%">
 
14844
<tr>
 
14845
<td align="left"><b>plain_stop</b><i>
 
14846
     </i></td>
 
14847
<td align="right">Image</td>
 
14848
</tr>
 
14849
</table>
 
14850
<table width="95%" align="center">
 
14851
<tr><td>
 
14852
A breakpoint (enabled). 
 
14853
</td></tr>
 
14854
</table>
 
14855
 
 
14856
<p>
 
14857
<table width="100%">
 
14858
<tr>
 
14859
<td align="left"><b>plain_temp</b><i>
 
14860
     </i></td>
 
14861
<td align="right">Image</td>
 
14862
</tr>
 
14863
</table>
 
14864
<table width="95%" align="center">
 
14865
<tr><td>
 
14866
A temporary breakpoint (enabled). 
 
14867
</td></tr>
 
14868
</table>
 
14869
 
 
14870
<p>
 
14871
<table width="100%">
 
14872
<tr>
 
14873
<td align="left"><b>print</b><i>
 
14874
     </i></td>
 
14875
<td align="right">Image</td>
 
14876
</tr>
 
14877
</table>
 
14878
<table width="95%" align="center">
 
14879
<tr><td>
 
14880
<code>Print ()</code> button. 
 
14881
</td></tr>
 
14882
</table>
 
14883
 
 
14884
<p>
 
14885
<table width="100%">
 
14886
<tr>
 
14887
<td align="left"><b>properties</b><i>
 
14888
     </i></td>
 
14889
<td align="right">Image</td>
 
14890
</tr>
 
14891
</table>
 
14892
<table width="95%" align="center">
 
14893
<tr><td>
 
14894
<code>Properties</code> button. 
 
14895
</td></tr>
 
14896
</table>
 
14897
 
 
14898
<p>
 
14899
<table width="100%">
 
14900
<tr>
 
14901
<td align="left"><b>rotate</b><i>
 
14902
     </i></td>
 
14903
<td align="right">Image</td>
 
14904
</tr>
 
14905
</table>
 
14906
<table width="95%" align="center">
 
14907
<tr><td>
 
14908
<code>Rotate ()</code> button. 
 
14909
</td></tr>
 
14910
</table>
 
14911
 
 
14912
<p>
 
14913
<table width="100%">
 
14914
<tr>
 
14915
<td align="left"><b>set</b><i>
 
14916
     </i></td>
 
14917
<td align="right">Image</td>
 
14918
</tr>
 
14919
</table>
 
14920
<table width="95%" align="center">
 
14921
<tr><td>
 
14922
<code>Set ()</code> button. 
 
14923
</td></tr>
 
14924
</table>
 
14925
 
 
14926
<p>
 
14927
<table width="100%">
 
14928
<tr>
 
14929
<td align="left"><b>show</b><i>
 
14930
     </i></td>
 
14931
<td align="right">Image</td>
 
14932
</tr>
 
14933
</table>
 
14934
<table width="95%" align="center">
 
14935
<tr><td>
 
14936
<code>Show ()</code> button. 
 
14937
</td></tr>
 
14938
</table>
 
14939
 
 
14940
<p>
 
14941
<table width="100%">
 
14942
<tr>
 
14943
<td align="left"><b>signal_arrow</b><i>
 
14944
     </i></td>
 
14945
<td align="right">Image</td>
 
14946
</tr>
 
14947
</table>
 
14948
<table width="95%" align="center">
 
14949
<tr><td>
 
14950
The execution pointer (stopped by signal). 
 
14951
</td></tr>
 
14952
</table>
 
14953
 
 
14954
<p>
 
14955
<table width="100%">
 
14956
<tr>
 
14957
<td align="left"><b>undisplay</b><i>
 
14958
     </i></td>
 
14959
<td align="right">Image</td>
 
14960
</tr>
 
14961
</table>
 
14962
<table width="95%" align="center">
 
14963
<tr><td>
 
14964
<code>Undisplay ()</code> button. 
 
14965
</td></tr>
 
14966
</table>
 
14967
 
 
14968
<p>
 
14969
<table width="100%">
 
14970
<tr>
 
14971
<td align="left"><b>unwatch</b><i>
 
14972
     </i></td>
 
14973
<td align="right">Image</td>
 
14974
</tr>
 
14975
</table>
 
14976
<table width="95%" align="center">
 
14977
<tr><td>
 
14978
<code>Unwatch ()</code> button. 
 
14979
</td></tr>
 
14980
</table>
 
14981
 
 
14982
<p>
 
14983
<table width="100%">
 
14984
<tr>
 
14985
<td align="left"><b>watch</b><i>
 
14986
     </i></td>
 
14987
<td align="right">Image</td>
 
14988
</tr>
 
14989
</table>
 
14990
<table width="95%" align="center">
 
14991
<tr><td>
 
14992
<code>Watch ()</code> button. 
 
14993
</td></tr>
 
14994
</table>
 
14995
 
 
14996
<div class="node">
 
14997
<p><hr>
 
14998
<small class=header>
 
14999
Node:<a name="Bugs">Bugs</a>,
 
15000
Next:<a rel="next" accesskey="n" href="#Configuration%20Notes">Configuration Notes</a>,
 
15001
Previous:<a rel="previous" accesskey="p" href="#Application%20Defaults">Application Defaults</a>,
 
15002
Up:<a rel="up" accesskey="u" href="#Top">Top</a>
 
15003
</small>
 
15004
 
 
15005
<br>
 
15006
</div>
 
15007
 
 
15008
<h2 class="appendix">Bugs and How To Report Them</h2>
 
15009
 
 
15010
   <p>Sometimes you will encounter a bug in <small>DDD</small>.  Although we cannot
 
15011
promise we can or will fix the bug, and we might not even agree that it
 
15012
is a bug, we want to hear about bugs you encounter in case we do want to
 
15013
fix them.
 
15014
 
 
15015
   <p>To make it possible for us to fix a bug, you must report it.  In order
 
15016
to do so effectively, you must know when and how to do it.
 
15017
 
 
15018
<ul class="menu">
 
15019
<li><a accesskey="1" href="#Where%20to%20Send%20Bug%20Reports">Where to Send Bug Reports</a>:    Our e-mail address. 
 
15020
<li><a accesskey="2" href="#Is%20it%20a%20%3csmall%3eDDD%3c%2fsmall%3e%20Bug%3f">Is it a <small>DDD</small> Bug?</a>:          <small>DDD</small> may not be at fault. 
 
15021
<li><a accesskey="3" href="#How%20to%20Report%20Bugs">How to Report Bugs</a>:           Report all the facts. 
 
15022
<li><a accesskey="4" href="#Bug%20Reports">Bug Reports</a>:                  Include all configuration information. 
 
15023
<li><a accesskey="5" href="#Diagnostics">Diagnostics</a>:                  Maintaining <small>DDD</small>
 
15024
</ul>
 
15025
 
 
15026
<div class="node">
 
15027
<p><hr>
 
15028
<small class=header>
 
15029
Node:<a name="Where%20to%20Send%20Bug%20Reports">Where to Send Bug Reports</a>,
 
15030
Next:<a rel="next" accesskey="n" href="#Is%20it%20a%20%3csmall%3eDDD%3c%2fsmall%3e%20Bug%3f">Is it a <small>DDD</small> Bug?</a>,
 
15031
Up:<a rel="up" accesskey="u" href="#Bugs">Bugs</a>
 
15032
</small>
 
15033
 
 
15034
<br>
 
15035
</div>
 
15036
 
 
15037
<h3 class="section">Where to Send Bug Reports</h3>
 
15038
 
 
15039
   <p>Send bug reports for <small>DDD</small> via electronic mail to
 
15040
 
 
15041
<pre class="example">     <a href="mailto:bug-ddd@gnu.org">bug-ddd@gnu.org</a>
 
15042
     </pre>
 
15043
 
 
15044
<div class="node">
 
15045
<p><hr>
 
15046
<small class=header>
 
15047
Node:<a name="Is%20it%20a%20%3csmall%3eDDD%3c%2fsmall%3e%20Bug%3f">Is it a <small>DDD</small> Bug?</a>,
 
15048
Next:<a rel="next" accesskey="n" href="#How%20to%20Report%20Bugs">How to Report Bugs</a>,
 
15049
Previous:<a rel="previous" accesskey="p" href="#Where%20to%20Send%20Bug%20Reports">Where to Send Bug Reports</a>,
 
15050
Up:<a rel="up" accesskey="u" href="#Bugs">Bugs</a>
 
15051
</small>
 
15052
 
 
15053
<br>
 
15054
</div>
 
15055
 
 
15056
<h3 class="section">Is it a DDD Bug?</h3>
 
15057
 
 
15058
   <p>Before sending in a bug report, try to find out whether the problem
 
15059
cause really lies within <small>DDD</small>.  A common cause of problems
 
15060
are incomplete or missing X or M*tif installations, for instance, or
 
15061
bugs in the X server or M*tif itself.  Running <small>DDD</small> as
 
15062
 
 
15063
<pre class="example">     $ <kbd>ddd --check-configuration</kbd>
 
15064
     </pre>
 
15065
 
 
15066
   <p>checks for common problems and gives hints on how to repair them.
 
15067
 
 
15068
   <p>Another potential cause of problems is the inferior debugger;
 
15069
occasionally, they show bugs, too.  To find out whether a bug was
 
15070
caused by the inferior debugger, run <small>DDD</small> as
 
15071
 
 
15072
<pre class="example">     $ <kbd>ddd --trace</kbd>
 
15073
     </pre>
 
15074
 
 
15075
   <p>This shows the interaction between <small>DDD</small> and the inferior debugger
 
15076
on standard error while <small>DDD</small> is running.  (If <code>--trace</code> is
 
15077
not given, this interaction is logged in the file
 
15078
<code>~/.ddd/log</code>; see <a href="#Logging">Logging</a>) Compare the debugger output
 
15079
to the output of <small>DDD</small> and determine which one is wrong.
 
15080
 
 
15081
<div class="node">
 
15082
<p><hr>
 
15083
<small class=header>
 
15084
Node:<a name="How%20to%20Report%20Bugs">How to Report Bugs</a>,
 
15085
Next:<a rel="next" accesskey="n" href="#Bug%20Reports">Bug Reports</a>,
 
15086
Previous:<a rel="previous" accesskey="p" href="#Is%20it%20a%20%3csmall%3eDDD%3c%2fsmall%3e%20Bug%3f">Is it a <small>DDD</small> Bug?</a>,
 
15087
Up:<a rel="up" accesskey="u" href="#Bugs">Bugs</a>
 
15088
</small>
 
15089
 
 
15090
<br>
 
15091
</div>
 
15092
 
 
15093
<h3 class="section">How to Report Bugs</h3>
 
15094
 
 
15095
   <p>Here are some guidelines for bug reports:
 
15096
 
 
15097
     <ul>
 
15098
<li>The fundamental principle of reporting bugs usefully is this:
 
15099
<strong>report all the facts</strong>.  If you are not sure whether to state a
 
15100
fact or leave it out, state it!
 
15101
 
 
15102
     <li>Keep in mind that the purpose of a bug report is to enable someone to
 
15103
fix the bug if it is not known.  It is not very important what happens
 
15104
if the bug is already known.  Therefore, always write your bug reports
 
15105
on the assumption that the bug is not known.
 
15106
 
 
15107
     <li>Your bug report should be self-contained.  Do not refer to information
 
15108
sent in previous mails; your previous mail may have been forwarded to
 
15109
somebody else.
 
15110
 
 
15111
     <li>Please report each bug in a separate message.  This makes it easier
 
15112
for us to track which bugs have been fixed and to forward your bugs
 
15113
reports to the appropriate maintainer.
 
15114
 
 
15115
     <li>Please report bugs in English; this increases the chances of finding
 
15116
someone who can fix the bug.  Do not assume one particular person will
 
15117
receive your bug report. 
 
15118
</ul>
 
15119
 
 
15120
<div class="node">
 
15121
<p><hr>
 
15122
<small class=header>
 
15123
Node:<a name="Bug%20Reports">Bug Reports</a>,
 
15124
Next:<a rel="next" accesskey="n" href="#Diagnostics">Diagnostics</a>,
 
15125
Previous:<a rel="previous" accesskey="p" href="#How%20to%20Report%20Bugs">How to Report Bugs</a>,
 
15126
Up:<a rel="up" accesskey="u" href="#Bugs">Bugs</a>
 
15127
</small>
 
15128
 
 
15129
<br>
 
15130
</div>
 
15131
 
 
15132
<h3 class="section">What to Include in a Bug Report</h3>
 
15133
 
 
15134
   <p>To enable us to fix a <small>DDD</small> bug, you <em>must</em> include the
 
15135
following information:
 
15136
 
 
15137
     <ul>
 
15138
<li>Your <small>DDD</small> configuration.  Invoke <small>DDD</small> as
 
15139
 
 
15140
     <pre class="example">          $ <kbd>ddd --configuration</kbd>
 
15141
          </pre>
 
15142
 
 
15143
     <p>to get the configuration information.  If this does not work, please
 
15144
include at least the <small>DDD</small> version, the type of machine you
 
15145
are using, and its operating system name and version number.
 
15146
 
 
15147
     </p><li>The debugger you are using and its version (e.g., <code>gdb-4.17</code> or
 
15148
<code>dbx as shipped with Solaris 2.6</code>).
 
15149
 
 
15150
     <li>The compiler you used to compile <small>DDD</small> and its version (e.g.,
 
15151
<code>gcc-2.8.1</code>).
 
15152
 
 
15153
     <li>A description of what behavior you observe that you believe is
 
15154
incorrect.  For example, "<small>DDD</small> gets a fatal signal"
 
15155
or "<small>DDD</small> exits immediately after attempting to create the
 
15156
data window".
 
15157
 
 
15158
     <li>A <em>log file</em> showing the interaction between <small>DDD</small> and the
 
15159
inferior debugger.  By default, this interaction is logged in the file
 
15160
<code>~/.ddd/log</code>.  Include all trace output from the
 
15161
<small>DDD</small> invocation up to the first bug occurrence; insert own
 
15162
comments where necessary.
 
15163
 
 
15164
     <li>If you wish to suggest changes to the <small>DDD</small> source, send us context
 
15165
diffs.  If you even discuss something in the <small>DDD</small> source, refer to
 
15166
it by context, <em>never</em> by line number. 
 
15167
</ul>
 
15168
 
 
15169
   <p>Be sure to include this information in <em>every</em> single bug report.
 
15170
 
 
15171
<div class="node">
 
15172
<p><hr>
 
15173
<small class=header>
 
15174
Node:<a name="Diagnostics">Diagnostics</a>,
 
15175
Previous:<a rel="previous" accesskey="p" href="#Bug%20Reports">Bug Reports</a>,
 
15176
Up:<a rel="up" accesskey="u" href="#Bugs">Bugs</a>
 
15177
</small>
 
15178
 
 
15179
<br>
 
15180
</div>
 
15181
 
 
15182
<h3 class="section">Getting Diagnostics</h3>
 
15183
 
 
15184
<ul class="menu">
 
15185
<li><a accesskey="1" href="#Logging">Logging</a>:                      <small>DDD</small> logs all interactions. 
 
15186
<li><a accesskey="2" href="#Debugging%20%3csmall%3eDDD%3c%2fsmall%3e">Debugging <small>DDD</small></a>:             Facilities to debug <small>DDD</small>. 
 
15187
<li><a accesskey="3" href="#Customizing%20Diagnostics">Customizing Diagnostics</a>:      All diagnostics resources. 
 
15188
</ul>
 
15189
 
 
15190
<div class="node">
 
15191
<p><hr>
 
15192
<small class=header>
 
15193
Node:<a name="Logging">Logging</a>,
 
15194
Next:<a rel="next" accesskey="n" href="#Debugging%20%3csmall%3eDDD%3c%2fsmall%3e">Debugging <small>DDD</small></a>,
 
15195
Up:<a rel="up" accesskey="u" href="#Diagnostics">Diagnostics</a>
 
15196
</small>
 
15197
 
 
15198
<br>
 
15199
</div>
 
15200
 
 
15201
<h4 class="subsection">Logging</h4>
 
15202
 
 
15203
   <p>If things go wrong, the first and most important information source is
 
15204
the <dfn></dfn><small>DDD</small><dfn> log file</dfn>.  This file, created in
 
15205
<code>~/.ddd/log</code> (<code>~</code> stands for your home directory),
 
15206
records the following information:
 
15207
 
 
15208
     <ul>
 
15209
<li>Your <small>DDD</small> configuration (at the top)
 
15210
 
 
15211
     <li>All programs invoked by <small>DDD</small>, shown as
 
15212
<code>$ </code><kbd></kbd><var>program</var><kbd> </kbd><var>args</var><kbd>...</kbd><code></code>
 
15213
 
 
15214
     <li>All <small>DDD</small> messages, shown as <code>#  </code><var>message</var><code></code>.
 
15215
 
 
15216
     <li>All information sent from <small>DDD</small> to the inferior debugger,
 
15217
shown as <code>-&gt; </code><var>text</var><code></code>.
 
15218
 
 
15219
     <li>All information sent from the inferior debugger standard output to
 
15220
<small>DDD</small>, shown as <code>&lt;- </code><var>text</var><code></code>.
 
15221
 
 
15222
     <li>All information sent from the inferior debugger standard error to
 
15223
<small>DDD</small>, shown as <code>&lt;= </code><var>text</var><code></code>.<a rel="footnote" href="#fn-33"><sup>33</sup></a>
 
15224
 
 
15225
     <li>All information sent from <small>DDD</small> to Gnuplot,
 
15226
shown as <code>&gt;&gt; </code><var>text</var><code></code>.
 
15227
 
 
15228
     <li>All information sent from Gnuplot standard output to
 
15229
<small>DDD</small>, shown as <code>&lt;&lt; </code><var>text</var><code></code>.
 
15230
 
 
15231
     <li>All information sent from Gnuplot standard error to
 
15232
<small>DDD</small>, shown as <code>&lt;= </code><var>text</var><code></code>.
 
15233
 
 
15234
     <li>If <small>DDD</small> crashes, a <small>GDB</small> backtrace of the <small>DDD</small> core dump
 
15235
is included at the end. 
 
15236
</ul>
 
15237
 
 
15238
   <p>This information, all in one place, should give you (and anyone
 
15239
maintaining <small>DDD</small>) a first insight of what's going wrong.
 
15240
 
 
15241
<ul class="menu">
 
15242
<li><a accesskey="1" href="#Disabling%20Logging">Disabling Logging</a>: 
 
15243
</ul>
 
15244
 
 
15245
<div class="node">
 
15246
<p><hr>
 
15247
<small class=header>
 
15248
Node:<a name="Disabling%20Logging">Disabling Logging</a>,
 
15249
Up:<a rel="up" accesskey="u" href="#Logging">Logging</a>
 
15250
</small>
 
15251
 
 
15252
<br>
 
15253
</div>
 
15254
 
 
15255
<h5 class="subsubsection">Disabling Logging</h5>
 
15256
 
 
15257
   <p>The log files created by <small>DDD</small> can become quite large, so you
 
15258
might want to turn off logging.  There is no explicit <small>DDD</small>
 
15259
feature that allows you to do that.  However, you can easily create a
 
15260
<em>symbolic link</em> from <code>~/.ddd/log</code> to <code>/dev/null</code>,
 
15261
such that logging information is lost.  Enter the following commands at
 
15262
the shell prompt:
 
15263
 
 
15264
<pre class="example">     $ <kbd>cd</kbd>
 
15265
     $ <kbd>rm .ddd/log</kbd>
 
15266
     $ <kbd>ln -s /dev/null .ddd/log</kbd>
 
15267
     $ _
 
15268
     </pre>
 
15269
 
 
15270
   <p>Be aware, though, that having logging turned off makes diagnostics much
 
15271
more difficult; in case of trouble, it may be hard to reproduce the
 
15272
error.
 
15273
 
 
15274
<div class="node">
 
15275
<p><hr>
 
15276
<small class=header>
 
15277
Node:<a name="Debugging%20%3csmall%3eDDD%3c%2fsmall%3e">Debugging <small>DDD</small></a>,
 
15278
Next:<a rel="next" accesskey="n" href="#Customizing%20Diagnostics">Customizing Diagnostics</a>,
 
15279
Previous:<a rel="previous" accesskey="p" href="#Logging">Logging</a>,
 
15280
Up:<a rel="up" accesskey="u" href="#Diagnostics">Diagnostics</a>
 
15281
</small>
 
15282
 
 
15283
<br>
 
15284
</div>
 
15285
 
 
15286
<h4 class="subsection">Debugging DDD</h4>
 
15287
 
 
15288
   <p>As long as <small>DDD</small> is compiled with <code>-g</code> (see <a href="#Compiling%20for%20Debugging">Compiling for Debugging</a>), you can invoke a debugger on <small>DDD</small>--even <small>DDD</small>
 
15289
itself, if you wish.  From within <small>DDD</small>, a special
 
15290
<code>Maintenance</code> menu is provided that invokes <small>GDB</small> on the running
 
15291
<small>DDD</small> process.  See <a href="#Maintenance%20Menu">Maintenance Menu</a>, for details.
 
15292
 
 
15293
   <p>The <small>DDD</small> distribution comes with a <code>.gdbinit</code> file that is
 
15294
suitable for debugging <small>DDD</small>.  Among others, this defines a
 
15295
<code>ddd</code> command that sets up an environment for debugging <small>DDD</small>
 
15296
and a <code>string</code> command that lets you print the contents of
 
15297
<small>DDD</small> <code>string</code> variables; just use <code>print </code><var>var</var><code></code>
 
15298
followed by <code>string</code>.
 
15299
 
 
15300
   <p>You can cause <small>DDD</small> to dump core at any time by sending it a
 
15301
<code>SIGUSR1</code> signal.  <small>DDD</small> resumes execution while you can examine
 
15302
the core file with <small>GDB</small>.
 
15303
 
 
15304
   <p>When debugging <small>DDD</small>, it can be useful to make <small>DDD</small> not
 
15305
catch fatal errors.  This can be achieved by setting the environment
 
15306
variable <code>DDD_NO_SIGNAL_HANDLERS</code> before invoking
 
15307
<small>DDD</small>.
 
15308
 
 
15309
<div class="node">
 
15310
<p><hr>
 
15311
<small class=header>
 
15312
Node:<a name="Customizing%20Diagnostics">Customizing Diagnostics</a>,
 
15313
Previous:<a rel="previous" accesskey="p" href="#Debugging%20%3csmall%3eDDD%3c%2fsmall%3e">Debugging <small>DDD</small></a>,
 
15314
Up:<a rel="up" accesskey="u" href="#Diagnostics">Diagnostics</a>
 
15315
</small>
 
15316
 
 
15317
<br>
 
15318
</div>
 
15319
 
 
15320
<h4 class="subsection">Customizing Diagnostics</h4>
 
15321
 
 
15322
   <p>You can use these additional resources to obtain diagnostics about
 
15323
<small>DDD</small>.  Most of them are tied to a particular invocation option.
 
15324
 
 
15325
<p>
 
15326
<table width="100%">
 
15327
<tr>
 
15328
<td align="left"><b>appDefaultsVersion</b><i> </i>(<i>class Version</i>)<i>
 
15329
     </i></td>
 
15330
<td align="right">Resource</td>
 
15331
</tr>
 
15332
</table>
 
15333
<table width="95%" align="center">
 
15334
<tr><td>
 
15335
The version of the <small>DDD</small> app-defaults file.  If this string
 
15336
does not match the version of the current <small>DDD</small> executable,
 
15337
<small>DDD</small> issues a warning. 
 
15338
</td></tr>
 
15339
</table>
 
15340
 
 
15341
<p>
 
15342
<table width="100%">
 
15343
<tr>
 
15344
<td align="left"><b>checkConfiguration</b><i> </i>(<i>class CheckConfiguration</i>)<i>
 
15345
     </i></td>
 
15346
<td align="right">Resource</td>
 
15347
</tr>
 
15348
</table>
 
15349
<table width="95%" align="center">
 
15350
<tr><td>
 
15351
If <code>on</code>, check the <small>DDD</small> environment (in particular, the
 
15352
X configuration), report any possible problem causes and exit. 
 
15353
See <a href="#Options">Options</a>, for the <code>--check-configuration</code> option. 
 
15354
</td></tr>
 
15355
</table>
 
15356
 
 
15357
<p>
 
15358
<table width="100%">
 
15359
<tr>
 
15360
<td align="left"><b>dddinitVersion</b><i> </i>(<i>class Version</i>)<i>
 
15361
     </i></td>
 
15362
<td align="right">Resource</td>
 
15363
</tr>
 
15364
</table>
 
15365
<table width="95%" align="center">
 
15366
<tr><td>
 
15367
The version of the <small>DDD</small> executable that last wrote the
 
15368
<code>~/.ddd/init</code> file.  If this string does not match the
 
15369
version of the current <small>DDD</small> executable, <small>DDD</small> issues
 
15370
a warning. 
 
15371
</td></tr>
 
15372
</table>
 
15373
 
 
15374
<p>
 
15375
<table width="100%">
 
15376
<tr>
 
15377
<td align="left"><b>debugCoreDumps</b><i> </i>(<i>class DebugCoreDumps</i>)<i>
 
15378
     </i></td>
 
15379
<td align="right">Resource</td>
 
15380
</tr>
 
15381
</table>
 
15382
<table width="95%" align="center">
 
15383
<tr><td>
 
15384
If <code>on</code>, <small>DDD</small> invokes a debugger on itself when receiving a
 
15385
fatal signal.  See <a href="#Maintenance%20Menu">Maintenance Menu</a>, for setting this resource. 
 
15386
</td></tr>
 
15387
</table>
 
15388
 
 
15389
<p>
 
15390
<table width="100%">
 
15391
<tr>
 
15392
<td align="left"><b>dumpCore</b><i> </i>(<i>class DumpCore</i>)<i>
 
15393
     </i></td>
 
15394
<td align="right">Resource</td>
 
15395
</tr>
 
15396
</table>
 
15397
<table width="95%" align="center">
 
15398
<tr><td>
 
15399
If <code>on</code> (default), <small>DDD</small> dumps core when receiving a
 
15400
fatal signal.  See <a href="#Maintenance%20Menu">Maintenance Menu</a>, for setting this resource. 
 
15401
</td></tr>
 
15402
</table>
 
15403
 
 
15404
<p>
 
15405
<table width="100%">
 
15406
<tr>
 
15407
<td align="left"><b>maintenance</b><i> </i>(<i>class Maintenance</i>)<i>
 
15408
     </i></td>
 
15409
<td align="right">Resource</td>
 
15410
</tr>
 
15411
</table>
 
15412
<table width="95%" align="center">
 
15413
<tr><td>
 
15414
If <code>on</code>, enables the top-level <code>Maintenance</code> menu
 
15415
(see <a href="#Maintenance%20Menu">Maintenance Menu</a>) with additional options.  See <a href="#Options">Options</a>, for
 
15416
the <code>--maintenance</code> option. 
 
15417
</td></tr>
 
15418
</table>
 
15419
 
 
15420
<p>
 
15421
<table width="100%">
 
15422
<tr>
 
15423
<td align="left"><b>showConfiguration</b><i> </i>(<i>class ShowConfiguration</i>)<i>
 
15424
     </i></td>
 
15425
<td align="right">Resource</td>
 
15426
</tr>
 
15427
</table>
 
15428
<table width="95%" align="center">
 
15429
<tr><td>
 
15430
If <code>on</code>, show the <small>DDD</small> configuration on standard output and
 
15431
exit.  See <a href="#Options">Options</a>, for the <code>--configuration</code> option. 
 
15432
</td></tr>
 
15433
</table>
 
15434
 
 
15435
<p>
 
15436
<table width="100%">
 
15437
<tr>
 
15438
<td align="left"><b>showFonts</b><i> </i>(<i>class ShowFonts</i>)<i>
 
15439
     </i></td>
 
15440
<td align="right">Resource</td>
 
15441
</tr>
 
15442
</table>
 
15443
<table width="95%" align="center">
 
15444
<tr><td>
 
15445
If <code>on</code>, show the <small>DDD</small> font definitions on standard output
 
15446
and exit.  See <a href="#Options">Options</a>, for the <code>--fonts</code> option. 
 
15447
</td></tr>
 
15448
</table>
 
15449
 
 
15450
<p>
 
15451
<table width="100%">
 
15452
<tr>
 
15453
<td align="left"><b>showInvocation</b><i> </i>(<i>class ShowInvocation</i>)<i>
 
15454
     </i></td>
 
15455
<td align="right">Resource</td>
 
15456
</tr>
 
15457
</table>
 
15458
<table width="95%" align="center">
 
15459
<tr><td>
 
15460
If <code>on</code>, show the <small>DDD</small> invocation options on standard
 
15461
output and exit.  See <a href="#Options">Options</a>, for the <code>--help</code> option. 
 
15462
</td></tr>
 
15463
</table>
 
15464
 
 
15465
<p>
 
15466
<table width="100%">
 
15467
<tr>
 
15468
<td align="left"><b>showLicense</b><i> </i>(<i>class ShowLicense</i>)<i>
 
15469
     </i></td>
 
15470
<td align="right">Resource</td>
 
15471
</tr>
 
15472
</table>
 
15473
<table width="95%" align="center">
 
15474
<tr><td>
 
15475
If <code>on</code>, show the <small>DDD</small> license on standard output and
 
15476
exit.  See <a href="#Options">Options</a>, for the <code>--license</code> option. 
 
15477
</td></tr>
 
15478
</table>
 
15479
 
 
15480
<p>
 
15481
<table width="100%">
 
15482
<tr>
 
15483
<td align="left"><b>showManual</b><i> </i>(<i>class ShowManual</i>)<i>
 
15484
     </i></td>
 
15485
<td align="right">Resource</td>
 
15486
</tr>
 
15487
</table>
 
15488
<table width="95%" align="center">
 
15489
<tr><td>
 
15490
If <code>on</code>, show this <small>DDD</small> manual page on standard output and exit. 
 
15491
If the standard output is a terminal, the manual page is shown in a
 
15492
pager (<code>$PAGER</code>, <code>less</code> or <code>more</code>). 
 
15493
See <a href="#Options">Options</a>, for the <code>--manual</code> option. 
 
15494
</td></tr>
 
15495
</table>
 
15496
 
 
15497
<p>
 
15498
<table width="100%">
 
15499
<tr>
 
15500
<td align="left"><b>showNews</b><i> </i>(<i>class ShowNews</i>)<i>
 
15501
     </i></td>
 
15502
<td align="right">Resource</td>
 
15503
</tr>
 
15504
</table>
 
15505
<table width="95%" align="center">
 
15506
<tr><td>
 
15507
If <code>on</code>, show the <small>DDD</small> news on standard output and
 
15508
exit.  See <a href="#Options">Options</a>, for the <code>--news</code> option. 
 
15509
</td></tr>
 
15510
</table>
 
15511
 
 
15512
<p>
 
15513
<table width="100%">
 
15514
<tr>
 
15515
<td align="left"><b>showVersion</b><i> </i>(<i>class ShowVersion</i>)<i>
 
15516
     </i></td>
 
15517
<td align="right">Resource</td>
 
15518
</tr>
 
15519
</table>
 
15520
<table width="95%" align="center">
 
15521
<tr><td>
 
15522
If <code>on</code>, show the <small>DDD</small> version on standard output and
 
15523
exit.  See <a href="#Options">Options</a>, for the <code>--version</code> option. 
 
15524
</td></tr>
 
15525
</table>
 
15526
 
 
15527
<p>
 
15528
<table width="100%">
 
15529
<tr>
 
15530
<td align="left"><b>suppressWarnings</b><i> </i>(<i>class SuppressWarnings</i>)<i>
 
15531
     </i></td>
 
15532
<td align="right">Resource</td>
 
15533
</tr>
 
15534
</table>
 
15535
<table width="95%" align="center">
 
15536
<tr><td>
 
15537
If <code>on</code>, X warnings are suppressed.  This is sometimes useful for
 
15538
executables that were built on a machine with a different X or M*tif
 
15539
configuration.  By default, this is <code>off</code>.  See <a href="#X%20Warnings">X Warnings</a>, for
 
15540
details. 
 
15541
</td></tr>
 
15542
</table>
 
15543
 
 
15544
<p>
 
15545
<table width="100%">
 
15546
<tr>
 
15547
<td align="left"><b>trace</b><i> </i>(<i>class Trace</i>)<i>
 
15548
     </i></td>
 
15549
<td align="right">Resource</td>
 
15550
</tr>
 
15551
</table>
 
15552
<table width="95%" align="center">
 
15553
<tr><td>
 
15554
If <code>on</code>, show the dialog between <small>DDD</small> and the inferior debugger
 
15555
on standard output.  Default is <code>off</code>.  See <a href="#Options">Options</a>, for the
 
15556
<code>--trace</code> option. 
 
15557
</td></tr>
 
15558
</table>
 
15559
 
 
15560
<div class="node">
 
15561
<p><hr>
 
15562
<small class=header>
 
15563
Node:<a name="Configuration%20Notes">Configuration Notes</a>,
 
15564
Next:<a rel="next" accesskey="n" href="#Dirty%20Tricks">Dirty Tricks</a>,
 
15565
Previous:<a rel="previous" accesskey="p" href="#Bugs">Bugs</a>,
 
15566
Up:<a rel="up" accesskey="u" href="#Top">Top</a>
 
15567
</small>
 
15568
 
 
15569
<br>
 
15570
</div>
 
15571
 
 
15572
<h2 class="appendix">Configuration Notes</h2>
 
15573
 
 
15574
<ul class="menu">
 
15575
<li><a accesskey="1" href="#GDB">GDB</a>:                          Using <small>DDD</small> with <small>GDB</small>
 
15576
<li><a accesskey="2" href="#DBX">DBX</a>:                          Using <small>DDD</small> with <small>DBX</small>
 
15577
<li><a accesskey="3" href="#Ladebug">Ladebug</a>:                      Using <small>DDD</small> with Ladebug
 
15578
<li><a accesskey="4" href="#XDB">XDB</a>:                          Using <small>DDD</small> with <small>XDB</small>
 
15579
<li><a accesskey="5" href="#JDB">JDB</a>:                          Using <small>DDD</small> with <small>JDB</small>
 
15580
<li><a accesskey="6" href="#Perl">Perl</a>:                         Using <small>DDD</small> with Perl
 
15581
<li><a accesskey="7" href="#Bash">Bash</a>:                         Using <small>DDD</small> with Bash
 
15582
<li><a accesskey="8" href="#LessTif">LessTif</a>:                      Using <small>DDD</small> with LessTif
 
15583
</ul>
 
15584
 
 
15585
<div class="node">
 
15586
<p><hr>
 
15587
<small class=header>
 
15588
Node:<a name="GDB">GDB</a>,
 
15589
Next:<a rel="next" accesskey="n" href="#DBX">DBX</a>,
 
15590
Up:<a rel="up" accesskey="u" href="#Configuration%20Notes">Configuration Notes</a>
 
15591
</small>
 
15592
 
 
15593
<br>
 
15594
</div>
 
15595
 
 
15596
<h3 class="section">Using DDD with GDB</h3>
 
15597
 
 
15598
   <p>Some <small>GDB</small> settings are essential for <small>DDD</small> to work correctly. 
 
15599
These settings with their correct values are:
 
15600
<pre class="example">     set height 0
 
15601
     set width 0
 
15602
     set verbose off
 
15603
     set annotate 1
 
15604
     set prompt (gdb)
 
15605
     </pre>
 
15606
 
 
15607
   <p><small>DDD</small> sets these values automatically when invoking <small>GDB</small>; if these
 
15608
values are changed, there may be some malfunctions, especially in the
 
15609
data display.
 
15610
 
 
15611
   <p>When debugging at the machine level with <small>GDB</small> 4.12 and earlier as
 
15612
inferior debugger, use a <code>display /x $pc</code> command to ensure the
 
15613
program counter value is updated correctly at each stop.  You may also
 
15614
enter the command in <code>~/.gdbinit</code> or (better yet) upgrade to the
 
15615
most recent <small>GDB</small> version.
 
15616
 
 
15617
<ul class="menu">
 
15618
<li><a accesskey="1" href="#WDB">WDB</a>:                          Using DDD with WDB
 
15619
<li><a accesskey="2" href="#WindRiver%20GDB">WindRiver GDB</a>:                Using DDD with WindRiver GDB (Tornado)
 
15620
</ul>
 
15621
 
 
15622
<div class="node">
 
15623
<p><hr>
 
15624
<small class=header>
 
15625
Node:<a name="WDB">WDB</a>,
 
15626
Next:<a rel="next" accesskey="n" href="#WindRiver%20GDB">WindRiver GDB</a>,
 
15627
Up:<a rel="up" accesskey="u" href="#GDB">GDB</a>
 
15628
</small>
 
15629
 
 
15630
<br>
 
15631
</div>
 
15632
 
 
15633
<h4 class="subsection">Using DDD with WDB</h4>
 
15634
 
 
15635
   <p>HP's WildeBeest (<small>WDB</small>) is essentially a variant of <small>GDB</small>.  To start
 
15636
<small>DDD</small> with <small>WDB</small> as inferior debugger, use
 
15637
 
 
15638
<pre class="example">     ddd --wdb <var>program</var>
 
15639
     </pre>
 
15640
 
 
15641
   <p>See <a href="#GDB">GDB</a>, for further configuration notes.
 
15642
 
 
15643
<div class="node">
 
15644
<p><hr>
 
15645
<small class=header>
 
15646
Node:<a name="WindRiver%20GDB">WindRiver GDB</a>,
 
15647
Previous:<a rel="previous" accesskey="p" href="#WDB">WDB</a>,
 
15648
Up:<a rel="up" accesskey="u" href="#GDB">GDB</a>
 
15649
</small>
 
15650
 
 
15651
<br>
 
15652
</div>
 
15653
 
 
15654
<h4 class="subsection">Using DDD with WindRiver GDB (Tornado)</h4>
 
15655
 
 
15656
   <p><small>DDD</small> now supports WindRiver's version of <small>GDB</small>.<a rel="footnote" href="#fn-34"><sup>34</sup></a>
 
15657
<small>DDD</small> can be integrated into the <code>Launch</code> window by placing the
 
15658
<code>launch.tcl</code> script (see below) into the the directory
 
15659
<code>~/.wind</code>.
 
15660
 
 
15661
   <p>Currently, <small>DDD</small> only supports the PowerPC and has been only tested on
 
15662
a Solaris 2.6 host.
 
15663
 
 
15664
   <p><small>DDD</small> launches the version of <small>GDB</small> that is either in the current
 
15665
path, or the one specified on the command line using the
 
15666
<code>--debugger</code> command.
 
15667
 
 
15668
   <p>Normally, the Tornado environment is set up by sourcing a script file
 
15669
which, among other things, sets up the PATH variable.
 
15670
 
 
15671
   <p>It is suggested that a soft link for the version of <small>GDB</small> used for the
 
15672
target (i.e. <code>gdbppc</code>) be made in the same directory:
 
15673
 
 
15674
<pre class="example">     bin&gt;<kbd>ls -l gdb*</kbd>
 
15675
     39 Mar  6 16:14 gdb -&gt; /usr/wind/host/sun4-solaris2/bin/gdbppc*
 
15676
     1619212 Mar 11  1997 gdbppc*
 
15677
     bin&gt;_
 
15678
     </pre>
 
15679
 
 
15680
   <p>This way <small>DDD</small> will start the correct version of <small>GDB</small> automatically.
 
15681
 
 
15682
   <p>It is also suggested that you use <small>DDD</small>'s execution window to
 
15683
facilitate parsing of <small>GDB</small> output.  See <a href="#Debugger%20Communication">Debugger Communication</a>, for
 
15684
details.
 
15685
 
 
15686
   <p>Tornado reads the default TCL scripts first, then the ones in the users
 
15687
<code>.wind</code> directory.  The following procedures can be cut and pasted into
 
15688
the user's <code>launch.tcl</code> file:
 
15689
 
 
15690
<pre class="smallexample">     # Launch.tcl - Launch application Tcl user customization file.
 
15691
     #
 
15692
     
 
15693
     ######
 
15694
     #
 
15695
     # setupDDD - sets up DDD for use by the launcher
 
15696
     #
 
15697
     # This routine adds the DDD to the application bar
 
15698
     #
 
15699
     # SYNOPSIS:
 
15700
     # setupDDD
 
15701
     #
 
15702
     # PARAMETERS: N/A
 
15703
     #
 
15704
     # RETURNS: N/A
 
15705
     #
 
15706
     # ERRORS: N/A
 
15707
     #
 
15708
     
 
15709
     proc setupDDD {} {
 
15710
         # Add to the default application bar
 
15711
         objectCreate app ddd DDD {launchDDD}
 
15712
     }
 
15713
     
 
15714
     ######
 
15715
     #
 
15716
     # launchDDD - launch the DDD debugger
 
15717
     #
 
15718
     # SYNOPSIS:
 
15719
     # launchDDD
 
15720
     #
 
15721
     # PARAMETERS: N/A
 
15722
     #
 
15723
     # RETURNS: N/A
 
15724
     #
 
15725
     # ERRORS: N/A
 
15726
     #
 
15727
     
 
15728
     proc launchDDD {} {
 
15729
     
 
15730
         global tgtsvr_selected
 
15731
         global tgtsvr_cpuid
 
15732
     
 
15733
         if {$tgtsvr_selected == "" || $tgtsvr_cpuid == 0} {
 
15734
             noticePost error "Select an attached target first."
 
15735
             return
 
15736
         }
 
15737
     
 
15738
         set startFileName /tmp/dddstartup.[pid]
 
15739
     
 
15740
         if [catch {open $startFileName w} file] {
 
15741
              # couldn't create a startup file.  Oh, well.
 
15742
              exec ddd --gdb &amp;
 
15743
         }
 
15744
         else
 
15745
         {
 
15746
              # write out a little /tmp file that attaches to the
 
15747
              # selected target server and then deletes itself.
 
15748
              puts $file "set wtx-tool-name ddd"
 
15749
              puts $file "target wtx $tgtsvr_selected"
 
15750
              puts $file "tcl exec rm $startFileName"
 
15751
              close $file
 
15752
              exec ddd --gdb --command=$startFileName &amp;
 
15753
         }
 
15754
     }
 
15755
     
 
15756
     ######
 
15757
     #
 
15758
     # Launch.tcl - Initialization
 
15759
     #
 
15760
     # The user's resource file sourced from the initial Launch.tcl
 
15761
     #
 
15762
     
 
15763
     # Add DDD to the laucher
 
15764
       setupDDD
 
15765
     </pre>
 
15766
 
 
15767
   <p>In order for <small>DDD</small> to automatically display the source of a previously
 
15768
loaded file, the entry point must be named either <code>vxworks_main</code> or
 
15769
<code>main_vxworks</code>.
 
15770
 
 
15771
   <p>See <a href="#GDB">GDB</a>, for further configuration notes.
 
15772
 
 
15773
<div class="node">
 
15774
<p><hr>
 
15775
<small class=header>
 
15776
Node:<a name="DBX">DBX</a>,
 
15777
Next:<a rel="next" accesskey="n" href="#Ladebug">Ladebug</a>,
 
15778
Previous:<a rel="previous" accesskey="p" href="#GDB">GDB</a>,
 
15779
Up:<a rel="up" accesskey="u" href="#Configuration%20Notes">Configuration Notes</a>
 
15780
</small>
 
15781
 
 
15782
<br>
 
15783
</div>
 
15784
 
 
15785
<h3 class="section">Using DDD with DBX</h3>
 
15786
 
 
15787
   <p>When used for debugging Pascal-like programs, <small>DDD</small> does not
 
15788
infer correct array subscripts and always starts to count with 1.
 
15789
 
 
15790
   <p>With some <small>DBX</small> versions (notably Solaris <small>DBX</small>),
 
15791
<small>DDD</small> strips C-style and C++-style comments from the
 
15792
<small>DBX</small> output in order to interpret it properly.  This also
 
15793
affects the output of the debugged program when sent to the debugger
 
15794
console.  Using the separate execution window avoids these problems.
 
15795
 
 
15796
   <p>In some <small>DBX</small> versions (notably DEC <small>DBX</small> and AIX <small>DBX</small>), there is no
 
15797
automatic data display.  As an alternative, <small>DDD</small> uses the <small>DBX</small>
 
15798
<code>print</code> command to access data values.  This means that variable
 
15799
names are interpreted according to the current frame; variables outside
 
15800
the current frame cannot be displayed.
 
15801
 
 
15802
<div class="node">
 
15803
<p><hr>
 
15804
<small class=header>
 
15805
Node:<a name="Ladebug">Ladebug</a>,
 
15806
Next:<a rel="next" accesskey="n" href="#XDB">XDB</a>,
 
15807
Previous:<a rel="previous" accesskey="p" href="#DBX">DBX</a>,
 
15808
Up:<a rel="up" accesskey="u" href="#Configuration%20Notes">Configuration Notes</a>
 
15809
</small>
 
15810
 
 
15811
<br>
 
15812
</div>
 
15813
 
 
15814
<h3 class="section">Using DDD with Ladebug</h3>
 
15815
 
 
15816
   <p>All <small>DBX</small> limitations (see <a href="#DBX">DBX</a>) apply to Ladebug as well.
 
15817
 
 
15818
<div class="node">
 
15819
<p><hr>
 
15820
<small class=header>
 
15821
Node:<a name="XDB">XDB</a>,
 
15822
Next:<a rel="next" accesskey="n" href="#JDB">JDB</a>,
 
15823
Previous:<a rel="previous" accesskey="p" href="#Ladebug">Ladebug</a>,
 
15824
Up:<a rel="up" accesskey="u" href="#Configuration%20Notes">Configuration Notes</a>
 
15825
</small>
 
15826
 
 
15827
<br>
 
15828
</div>
 
15829
 
 
15830
<h3 class="section">Using DDD with XDB</h3>
 
15831
 
 
15832
   <p>There is no automatic data display in <small>XDB</small>.  As a workaround,
 
15833
<small>DDD</small> uses the <code>p</code> command to access data values.  This
 
15834
means that variable names are interpreted according to the current
 
15835
frame; variables outside the current frame cannot be displayed.
 
15836
 
 
15837
<div class="node">
 
15838
<p><hr>
 
15839
<small class=header>
 
15840
Node:<a name="JDB">JDB</a>,
 
15841
Next:<a rel="next" accesskey="n" href="#Perl">Perl</a>,
 
15842
Previous:<a rel="previous" accesskey="p" href="#XDB">XDB</a>,
 
15843
Up:<a rel="up" accesskey="u" href="#Configuration%20Notes">Configuration Notes</a>
 
15844
</small>
 
15845
 
 
15846
<br>
 
15847
</div>
 
15848
 
 
15849
<h3 class="section">Using DDD with JDB</h3>
 
15850
 
 
15851
   <p>There is no automatic data display in <small>JDB</small>.  As a workaround,
 
15852
<small>DDD</small> uses the <code>dump</code> command to access data values. 
 
15853
This means that variable names are interpreted according to the
 
15854
current frame; variables outside the current frame cannot be
 
15855
displayed.
 
15856
 
 
15857
   <p>In <small>JDB</small> 1.1, the <code>dump</code> and <code>print</code> commands do not support
 
15858
expression evaluation.  Hence, you cannot display arbitrary expressions.
 
15859
 
 
15860
   <p>Parsing of <small>JDB</small> output is quite CPU-intensive, due to the
 
15861
recognition of asynchronous prompts (any thread may output anything at
 
15862
any time, including prompts).  Hence, a program producing much console
 
15863
output is likely to slow down <small>DDD</small> considerably.  In such a
 
15864
case, have the program run with <code>-debug</code> in a separate window and
 
15865
attach <small>JDB</small> to it using the <code>-passwd</code> option.
 
15866
 
 
15867
<div class="node">
 
15868
<p><hr>
 
15869
<small class=header>
 
15870
Node:<a name="Perl">Perl</a>,
 
15871
Next:<a rel="next" accesskey="n" href="#Bash">Bash</a>,
 
15872
Previous:<a rel="previous" accesskey="p" href="#JDB">JDB</a>,
 
15873
Up:<a rel="up" accesskey="u" href="#Configuration%20Notes">Configuration Notes</a>
 
15874
</small>
 
15875
 
 
15876
<br>
 
15877
</div>
 
15878
 
 
15879
<h3 class="section">Using DDD with Perl</h3>
 
15880
 
 
15881
   <p>There is no automatic data display in Perl.  As a workaround,
 
15882
<small>DDD</small> uses the <code>x</code> command to access data values.  This
 
15883
means that variable names are interpreted according to the current
 
15884
frame; variables outside the current frame cannot be displayed.
 
15885
 
 
15886
<div class="node">
 
15887
<p><hr>
 
15888
<small class=header>
 
15889
Node:<a name="Bash">Bash</a>,
 
15890
Next:<a rel="next" accesskey="n" href="#LessTif">LessTif</a>,
 
15891
Previous:<a rel="previous" accesskey="p" href="#Perl">Perl</a>,
 
15892
Up:<a rel="up" accesskey="u" href="#Configuration%20Notes">Configuration Notes</a>
 
15893
</small>
 
15894
 
 
15895
<br>
 
15896
</div>
 
15897
 
 
15898
<h3 class="section">Using DDD with Bash</h3>
 
15899
 
 
15900
   <p><small>BASH</small> support is rather new. As a programming language, <small>BASH</small> is
 
15901
not feature rich: there are no record structures or hash tables (yet),
 
15902
no pointers, package variable scoping or methods. So much of the data
 
15903
display and visualization features of DDD are disabled.
 
15904
 
 
15905
   <p>As with any scripting or interpreted language like Perl, stepping
 
15906
a machine-language instructions (commands Stepi/Nexti) doesn't exist.
 
15907
 
 
15908
   <p>Some <small>BASH</small> settings are essential for <small>DDD</small> to work correctly. 
 
15909
These settings with their correct values are:
 
15910
 
 
15911
<pre class="example">     set annotate 1
 
15912
     set prompt set prompt bashdb$_Dbg_less$_Dbg_greater$_Dbg_space
 
15913
     </pre>
 
15914
 
 
15915
   <p><small>DDD</small> sets these values automatically when invoking <small>BASH</small>; if these
 
15916
values are changed, there may be some malfunctions.
 
15917
 
 
15918
   <p>Pay special attention when the prompt has extra angle brackets (a
 
15919
nested shell) or has any parenthesis (is in a subshell). Quitting may
 
15920
merely exit out of one of these nested (sub)shells rather than leave
 
15921
the program.
 
15922
 
 
15923
<div class="node">
 
15924
<p><hr>
 
15925
<small class=header>
 
15926
Node:<a name="LessTif">LessTif</a>,
 
15927
Previous:<a rel="previous" accesskey="p" href="#Bash">Bash</a>,
 
15928
Up:<a rel="up" accesskey="u" href="#Configuration%20Notes">Configuration Notes</a>
 
15929
</small>
 
15930
 
 
15931
<br>
 
15932
</div>
 
15933
 
 
15934
<h3 class="section">Using DDD with LessTif</h3>
 
15935
 
 
15936
   <p><small>DDD</small> includes a number of hacks that make <small>DDD</small> run with
 
15937
<em>LessTif,</em> a free M*tif library without loss of functionality. 
 
15938
Since a <small>DDD</small> binary may be dynamically bound and used with either an
 
15939
OSF/Motif or LessTif library, these <em>lesstif hacks</em> can be enabled
 
15940
and disabled at run time.
 
15941
 
 
15942
   <p>Whether the <em>lesstif hacks</em> are included at run-time depends on the
 
15943
setting of the <code>lessTifVersion</code> resource:
 
15944
 
 
15945
<p>
 
15946
<table width="100%">
 
15947
<tr>
 
15948
<td align="left"><b>lessTifVersion</b><i> </i>(<i>class LessTifVersion</i>)<i>
 
15949
     </i></td>
 
15950
<td align="right">Resource</td>
 
15951
</tr>
 
15952
</table>
 
15953
<table width="95%" align="center">
 
15954
<tr><td>
 
15955
Indicates the LessTif version <small>DDD</small> is running against.  For
 
15956
LessTif version <var>x.y</var>, the value is <var>x</var> multiplied by 1000 plus
 
15957
<var>y</var>--for instance, the value <code>79</code> stands for LessTif 0.79 and
 
15958
the value <code>1005</code> stands for LessTif 1.5.
 
15959
 
 
15960
     <p>If the value of this resource is less than 1000, indicating LessTif
 
15961
0.99 or earlier, <small>DDD</small> enables version-specific hacks to make
 
15962
<small>DDD</small> work around LessTif bugs and deficiencies.
 
15963
 
 
15964
     <p>If <small>DDD</small> was compiled against LessTif, the default value is the
 
15965
value of the <code>LessTifVersion</code> macro in <code>&lt;Xm/Xm.h&gt;</code>.  If
 
15966
<small>DDD</small> was compiled against OSF/Motif, the default value is
 
15967
<code>1000</code>, disabling all LessTif-specific hacks. 
 
15968
</td></tr>
 
15969
</table>
 
15970
 
 
15971
   <p>To set the <code>lessTifVersion</code> resource at <small>DDD</small> invocation and
 
15972
to specify the version number of the LessTif library, you can also use
 
15973
the option <code>--lesstif-version</code> <var>version</var>.
 
15974
 
 
15975
   <p>The default value of the <code>lessTifVersion</code> resource is derived from
 
15976
the LessTif library <small>DDD</small> was compiled against (or <code>1000</code>
 
15977
when compiled against OSF/Motif).  Hence, you normally don't need to
 
15978
worry about the value of this resource.  However, if you use a
 
15979
dynamically linked <small>DDD</small> binary with a library other than the one
 
15980
<small>DDD</small> was compiled against, you must specify the version number of
 
15981
the library using this resource.  (Unfortunately, <small>DDD</small> cannot
 
15982
detect this at run-time.)
 
15983
 
 
15984
   <p>Here are a few scenarios to illustrate this scheme:
 
15985
     <ul>
 
15986
<li>Your <small>DDD</small> binary was compiled against OSF/Motif, but you use
 
15987
a LessTif 0.88 dynamic library instead.  Invoke <small>DDD</small> with
 
15988
<code>--lesstif-version 88</code>. 
 
15989
<li>Your <small>DDD</small> binary was compiled against LessTif, but you use
 
15990
a OSF/Motif dynamic library instead.    Invoke <small>DDD</small> with
 
15991
<code>--lesstif-version 1000</code>. 
 
15992
<li>Your <small>DDD</small> binary was compiled against LessTif 0.85, and you
 
15993
have upgraded to LessTif 0.90.  Invoke <small>DDD</small> with
 
15994
<code>--lesstif-version 90</code>. 
 
15995
</ul>
 
15996
 
 
15997
   <p>To find out the LessTif or OSF/Motif version <small>DDD</small> was
 
15998
compiled against, invoke <small>DDD</small> with the
 
15999
<code>--configuration</code> option.
 
16000
 
 
16001
   <p>In the <small>DDD</small> source, LessTif-specific hacks are controlled by
 
16002
the string <code>lesstif_version</code>.
 
16003
 
 
16004
<div class="node">
 
16005
<p><hr>
 
16006
<small class=header>
 
16007
Node:<a name="Dirty%20Tricks">Dirty Tricks</a>,
 
16008
Next:<a rel="next" accesskey="n" href="#Extending">Extending</a>,
 
16009
Previous:<a rel="previous" accesskey="p" href="#Configuration%20Notes">Configuration Notes</a>,
 
16010
Up:<a rel="up" accesskey="u" href="#Top">Top</a>
 
16011
</small>
 
16012
 
 
16013
<br>
 
16014
</div>
 
16015
 
 
16016
<h2 class="appendix">Dirty Tricks</h2>
 
16017
 
 
16018
   <p>Do you miss anything in this manual?  Do you have any material that
 
16019
should be added?  Please send any contributions to <a href="mailto:ddd@gnu.org">ddd@gnu.org</a>.
 
16020
 
 
16021
<div class="node">
 
16022
<p><hr>
 
16023
<small class=header>
 
16024
Node:<a name="Extending">Extending</a>,
 
16025
Next:<a rel="next" accesskey="n" href="#FAQ">FAQ</a>,
 
16026
Previous:<a rel="previous" accesskey="p" href="#Dirty%20Tricks">Dirty Tricks</a>,
 
16027
Up:<a rel="up" accesskey="u" href="#Top">Top</a>
 
16028
</small>
 
16029
 
 
16030
<br>
 
16031
</div>
 
16032
 
 
16033
<h2 class="appendix">Extending DDD</h2>
 
16034
 
 
16035
   <p>If you have any contributions to be incorporated into <small>DDD</small>,
 
16036
please send them to <a href="mailto:ddd@gnu.org">ddd@gnu.org</a>.  For suggestions on what might
 
16037
be done, see the file <code>TODO</code> in the <small>DDD</small> distribution.
 
16038
 
 
16039
<div class="node">
 
16040
<p><hr>
 
16041
<small class=header>
 
16042
Node:<a name="FAQ">FAQ</a>,
 
16043
Next:<a rel="next" accesskey="n" href="#License">License</a>,
 
16044
Previous:<a rel="previous" accesskey="p" href="#Extending">Extending</a>,
 
16045
Up:<a rel="up" accesskey="u" href="#Top">Top</a>
 
16046
</small>
 
16047
 
 
16048
<br>
 
16049
</div>
 
16050
 
 
16051
<h2 class="appendix">Frequently Answered Questions</h2>
 
16052
 
 
16053
   <p>See <a href="http://www.gnu.org/software/ddd/">the <small>DDD</small> <small>WWW</small> page</a> for
 
16054
frequently answered questions not covered in this manual.
 
16055
 
 
16056
<div class="node">
 
16057
<p><hr>
 
16058
<small class=header>
 
16059
Node:<a name="License">License</a>,
 
16060
Next:<a rel="next" accesskey="n" href="#Help%20and%20Assistance">Help and Assistance</a>,
 
16061
Previous:<a rel="previous" accesskey="p" href="#FAQ">FAQ</a>,
 
16062
Up:<a rel="up" accesskey="u" href="#Top">Top</a>
 
16063
</small>
 
16064
 
 
16065
<br>
 
16066
</div>
 
16067
 
 
16068
<h2 class="appendix">GNU General Public License</h2>
 
16069
 
 
16070
<div align="center">Version 2, June 1991</div>
 
16071
<pre class="display">     Copyright &copy; 1989, 1991 Free Software Foundation, Inc.  675
 
16072
     Mass Ave, Boston, MA 02111-1307, USA
 
16073
     
 
16074
     Everyone is permitted to copy and distribute verbatim copies
 
16075
     of this license document, but changing it is not allowed.
 
16076
     </pre>
 
16077
 
 
16078
<h3 class="unnumberedsec">Preamble</h3>
 
16079
 
 
16080
   <p>The licenses for most software are designed to take away your
 
16081
freedom to share and change it.  By contrast, the GNU General Public
 
16082
License is intended to guarantee your freedom to share and change free
 
16083
software--to make sure the software is free for all its users.  This
 
16084
General Public License applies to most of the Free Software
 
16085
Foundation's software and to any other program whose authors commit to
 
16086
using it.  (Some other Free Software Foundation software is covered by
 
16087
the GNU Library General Public License instead.)  You can apply it to
 
16088
your programs, too.
 
16089
 
 
16090
   <p>When we speak of free software, we are referring to freedom, not
 
16091
price.  Our General Public Licenses are designed to make sure that you
 
16092
have the freedom to distribute copies of free software (and charge for
 
16093
this service if you wish), that you receive source code or can get it
 
16094
if you want it, that you can change the software or use pieces of it
 
16095
in new free programs; and that you know you can do these things.
 
16096
 
 
16097
   <p>To protect your rights, we need to make restrictions that forbid
 
16098
anyone to deny you these rights or to ask you to surrender the rights. 
 
16099
These restrictions translate to certain responsibilities for you if you
 
16100
distribute copies of the software, or if you modify it.
 
16101
 
 
16102
   <p>For example, if you distribute copies of such a program, whether
 
16103
gratis or for a fee, you must give the recipients all the rights that
 
16104
you have.  You must make sure that they, too, receive or can get the
 
16105
source code.  And you must show them these terms so they know their
 
16106
rights.
 
16107
 
 
16108
   <p>We protect your rights with two steps: (1) copyright the software, and
 
16109
(2) offer you this license which gives you legal permission to copy,
 
16110
distribute and/or modify the software.
 
16111
 
 
16112
   <p>Also, for each author's protection and ours, we want to make certain
 
16113
that everyone understands that there is no warranty for this free
 
16114
software.  If the software is modified by someone else and passed on, we
 
16115
want its recipients to know that what they have is not the original, so
 
16116
that any problems introduced by others will not reflect on the original
 
16117
authors' reputations.
 
16118
 
 
16119
   <p>Finally, any free program is threatened constantly by software
 
16120
patents.  We wish to avoid the danger that redistributors of a free
 
16121
program will individually obtain patent licenses, in effect making the
 
16122
program proprietary.  To prevent this, we have made it clear that any
 
16123
patent must be licensed for everyone's free use or not licensed at all.
 
16124
 
 
16125
   <p>The precise terms and conditions for copying, distribution and
 
16126
modification follow.
 
16127
 
 
16128
     <ol type=1 start=0>
 
16129
<li>This License applies to any program or other work which contains
 
16130
a notice placed by the copyright holder saying it may be distributed
 
16131
under the terms of this General Public License.  The "Program", below,
 
16132
refers to any such program or work, and a "work based on the Program"
 
16133
means either the Program or any derivative work under copyright law:
 
16134
that is to say, a work containing the Program or a portion of it,
 
16135
either verbatim or with modifications and/or translated into another
 
16136
language.  (Hereinafter, translation is included without limitation in
 
16137
the term "modification".)  Each licensee is addressed as "you".
 
16138
 
 
16139
     <p>Activities other than copying, distribution and modification are not
 
16140
covered by this License; they are outside its scope.  The act of
 
16141
running the Program is not restricted, and the output from the Program
 
16142
is covered only if its contents constitute a work based on the
 
16143
Program (independent of having been made by running the Program). 
 
16144
Whether that is true depends on what the Program does.
 
16145
 
 
16146
     </p><li>You may copy and distribute verbatim copies of the Program's
 
16147
source code as you receive it, in any medium, provided that you
 
16148
conspicuously and appropriately publish on each copy an appropriate
 
16149
copyright notice and disclaimer of warranty; keep intact all the
 
16150
notices that refer to this License and to the absence of any warranty;
 
16151
and give any other recipients of the Program a copy of this License
 
16152
along with the Program.
 
16153
 
 
16154
     <p>You may charge a fee for the physical act of transferring a copy, and
 
16155
you may at your option offer warranty protection in exchange for a fee.
 
16156
 
 
16157
     </p><li>You may modify your copy or copies of the Program or any portion
 
16158
of it, thus forming a work based on the Program, and copy and
 
16159
distribute such modifications or work under the terms of Section 1
 
16160
above, provided that you also meet all of these conditions:
 
16161
 
 
16162
          <ol type=a start=1>
 
16163
<li>You must cause the modified files to carry prominent notices
 
16164
stating that you changed the files and the date of any change.
 
16165
 
 
16166
          <li>You must cause any work that you distribute or publish, that in
 
16167
whole or in part contains or is derived from the Program or any
 
16168
part thereof, to be licensed as a whole at no charge to all third
 
16169
parties under the terms of this License.
 
16170
 
 
16171
          <li>If the modified program normally reads commands interactively
 
16172
when run, you must cause it, when started running for such
 
16173
interactive use in the most ordinary way, to print or display an
 
16174
announcement including an appropriate copyright notice and a
 
16175
notice that there is no warranty (or else, saying that you provide
 
16176
a warranty) and that users may redistribute the program under
 
16177
these conditions, and telling the user how to view a copy of this
 
16178
License.  (Exception: if the Program itself is interactive but
 
16179
does not normally print such an announcement, your work based on
 
16180
the Program is not required to print an announcement.)
 
16181
          </ol>
 
16182
 
 
16183
     <p>These requirements apply to the modified work as a whole.  If
 
16184
identifiable sections of that work are not derived from the Program,
 
16185
and can be reasonably considered independent and separate works in
 
16186
themselves, then this License, and its terms, do not apply to those
 
16187
sections when you distribute them as separate works.  But when you
 
16188
distribute the same sections as part of a whole which is a work based
 
16189
on the Program, the distribution of the whole must be on the terms of
 
16190
this License, whose permissions for other licensees extend to the
 
16191
entire whole, and thus to each and every part regardless of who wrote it.
 
16192
 
 
16193
     <p>Thus, it is not the intent of this section to claim rights or contest
 
16194
your rights to work written entirely by you; rather, the intent is to
 
16195
exercise the right to control the distribution of derivative or
 
16196
collective works based on the Program.
 
16197
 
 
16198
     <p>In addition, mere aggregation of another work not based on the Program
 
16199
with the Program (or with a work based on the Program) on a volume of
 
16200
a storage or distribution medium does not bring the other work under
 
16201
the scope of this License.
 
16202
 
 
16203
     </p><li>You may copy and distribute the Program (or a work based on it,
 
16204
under Section 2) in object code or executable form under the terms of
 
16205
Sections 1 and 2 above provided that you also do one of the following:
 
16206
 
 
16207
          <ol type=a start=1>
 
16208
<li>Accompany it with the complete corresponding machine-readable
 
16209
source code, which must be distributed under the terms of Sections
 
16210
1 and 2 above on a medium customarily used for software interchange; or,
 
16211
 
 
16212
          <li>Accompany it with a written offer, valid for at least three
 
16213
years, to give any third party, for a charge no more than your
 
16214
cost of physically performing source distribution, a complete
 
16215
machine-readable copy of the corresponding source code, to be
 
16216
distributed under the terms of Sections 1 and 2 above on a medium
 
16217
customarily used for software interchange; or,
 
16218
 
 
16219
          <li>Accompany it with the information you received as to the offer
 
16220
to distribute corresponding source code.  (This alternative is
 
16221
allowed only for noncommercial distribution and only if you
 
16222
received the program in object code or executable form with such
 
16223
an offer, in accord with Subsection b above.)
 
16224
          </ol>
 
16225
 
 
16226
     <p>The source code for a work means the preferred form of the work for
 
16227
making modifications to it.  For an executable work, complete source
 
16228
code means all the source code for all modules it contains, plus any
 
16229
associated interface definition files, plus the scripts used to
 
16230
control compilation and installation of the executable.  However, as a
 
16231
special exception, the source code distributed need not include
 
16232
anything that is normally distributed (in either source or binary
 
16233
form) with the major components (compiler, kernel, and so on) of the
 
16234
operating system on which the executable runs, unless that component
 
16235
itself accompanies the executable.
 
16236
 
 
16237
     <p>If distribution of executable or object code is made by offering
 
16238
access to copy from a designated place, then offering equivalent
 
16239
access to copy the source code from the same place counts as
 
16240
distribution of the source code, even though third parties are not
 
16241
compelled to copy the source along with the object code.
 
16242
 
 
16243
     </p><li>You may not copy, modify, sublicense, or distribute the Program
 
16244
except as expressly provided under this License.  Any attempt
 
16245
otherwise to copy, modify, sublicense or distribute the Program is
 
16246
void, and will automatically terminate your rights under this License. 
 
16247
However, parties who have received copies, or rights, from you under
 
16248
this License will not have their licenses terminated so long as such
 
16249
parties remain in full compliance.
 
16250
 
 
16251
     <li>You are not required to accept this License, since you have not
 
16252
signed it.  However, nothing else grants you permission to modify or
 
16253
distribute the Program or its derivative works.  These actions are
 
16254
prohibited by law if you do not accept this License.  Therefore, by
 
16255
modifying or distributing the Program (or any work based on the
 
16256
Program), you indicate your acceptance of this License to do so, and
 
16257
all its terms and conditions for copying, distributing or modifying
 
16258
the Program or works based on it.
 
16259
 
 
16260
     <li>Each time you redistribute the Program (or any work based on the
 
16261
Program), the recipient automatically receives a license from the
 
16262
original licensor to copy, distribute or modify the Program subject to
 
16263
these terms and conditions.  You may not impose any further
 
16264
restrictions on the recipients' exercise of the rights granted herein. 
 
16265
You are not responsible for enforcing compliance by third parties to
 
16266
this License.
 
16267
 
 
16268
     <li>If, as a consequence of a court judgment or allegation of patent
 
16269
infringement or for any other reason (not limited to patent issues),
 
16270
conditions are imposed on you (whether by court order, agreement or
 
16271
otherwise) that contradict the conditions of this License, they do not
 
16272
excuse you from the conditions of this License.  If you cannot
 
16273
distribute so as to satisfy simultaneously your obligations under this
 
16274
License and any other pertinent obligations, then as a consequence you
 
16275
may not distribute the Program at all.  For example, if a patent
 
16276
license would not permit royalty-free redistribution of the Program by
 
16277
all those who receive copies directly or indirectly through you, then
 
16278
the only way you could satisfy both it and this License would be to
 
16279
refrain entirely from distribution of the Program.
 
16280
 
 
16281
     <p>If any portion of this section is held invalid or unenforceable under
 
16282
any particular circumstance, the balance of the section is intended to
 
16283
apply and the section as a whole is intended to apply in other
 
16284
circumstances.
 
16285
 
 
16286
     <p>It is not the purpose of this section to induce you to infringe any
 
16287
patents or other property right claims or to contest validity of any
 
16288
such claims; this section has the sole purpose of protecting the
 
16289
integrity of the free software distribution system, which is
 
16290
implemented by public license practices.  Many people have made
 
16291
generous contributions to the wide range of software distributed
 
16292
through that system in reliance on consistent application of that
 
16293
system; it is up to the author/donor to decide if he or she is willing
 
16294
to distribute software through any other system and a licensee cannot
 
16295
impose that choice.
 
16296
 
 
16297
     <p>This section is intended to make thoroughly clear what is believed to
 
16298
be a consequence of the rest of this License.
 
16299
 
 
16300
     </p><li>If the distribution and/or use of the Program is restricted in
 
16301
certain countries either by patents or by copyrighted interfaces, the
 
16302
original copyright holder who places the Program under this License
 
16303
may add an explicit geographical distribution limitation excluding
 
16304
those countries, so that distribution is permitted only in or among
 
16305
countries not thus excluded.  In such case, this License incorporates
 
16306
the limitation as if written in the body of this License.
 
16307
 
 
16308
     <li>The Free Software Foundation may publish revised and/or new versions
 
16309
of the General Public License from time to time.  Such new versions will
 
16310
be similar in spirit to the present version, but may differ in detail to
 
16311
address new problems or concerns.
 
16312
 
 
16313
     <p>Each version is given a distinguishing version number.  If the Program
 
16314
specifies a version number of this License which applies to it and "any
 
16315
later version", you have the option of following the terms and conditions
 
16316
either of that version or of any later version published by the Free
 
16317
Software Foundation.  If the Program does not specify a version number of
 
16318
this License, you may choose any version ever published by the Free Software
 
16319
Foundation.
 
16320
 
 
16321
     </p><li>If you wish to incorporate parts of the Program into other free
 
16322
programs whose distribution conditions are different, write to the author
 
16323
to ask for permission.  For software which is copyrighted by the Free
 
16324
Software Foundation, write to the Free Software Foundation; we sometimes
 
16325
make exceptions for this.  Our decision will be guided by the two goals
 
16326
of preserving the free status of all derivatives of our free software and
 
16327
of promoting the sharing and reuse of software generally.
 
16328
 
 
16329
     <li>BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
 
16330
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
 
16331
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
 
16332
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
 
16333
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
 
16334
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
 
16335
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
 
16336
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
 
16337
REPAIR OR CORRECTION.
 
16338
 
 
16339
     <li>IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
 
16340
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
 
16341
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
 
16342
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
 
16343
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
 
16344
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
 
16345
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
 
16346
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
 
16347
POSSIBILITY OF SUCH DAMAGES.
 
16348
        </ol>
 
16349
 
 
16350
<h3 class="unnumberedsec">How to Apply These Terms to Your New Programs</h3>
 
16351
 
 
16352
   <p>If you develop a new program, and you want it to be of the greatest
 
16353
possible use to the public, the best way to achieve this is to make it
 
16354
free software which everyone can redistribute and change under these terms.
 
16355
 
 
16356
   <p>To do so, attach the following notices to the program.  It is safest
 
16357
to attach them to the start of each source file to most effectively
 
16358
convey the exclusion of warranty; and each file should have at least
 
16359
the "copyright" line and a pointer to where the full notice is found.
 
16360
 
 
16361
<pre class="smallexample">     <var>one line to give the program's name and an idea of what it does.</var>
 
16362
     Copyright (C) 19<var>yy</var>  <var>name of author</var>
 
16363
     
 
16364
     This program is free software; you can redistribute it and/or
 
16365
     modify it under the terms of the GNU General Public License
 
16366
     as published by the Free Software Foundation; either version 2
 
16367
     of the License, or (at your option) any later version.
 
16368
     
 
16369
     This program is distributed in the hope that it will be useful,
 
16370
     but WITHOUT ANY WARRANTY; without even the implied warranty of
 
16371
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
16372
     GNU General Public License for more details.
 
16373
     
 
16374
     You should have received a copy of the GNU General Public License
 
16375
     along with this program; if not, write to the Free Software
 
16376
     Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
 
16377
     </pre>
 
16378
 
 
16379
   <p>Also add information on how to contact you by electronic and paper mail.
 
16380
 
 
16381
   <p>If the program is interactive, make it output a short notice like this
 
16382
when it starts in an interactive mode:
 
16383
 
 
16384
<pre class="smallexample">     Gnomovision version 69, Copyright (C) 19<var>yy</var> <var>name of author</var>
 
16385
     Gnomovision comes with ABSOLUTELY NO WARRANTY; for details
 
16386
     type `show w'.  This is free software, and you are welcome
 
16387
     to redistribute it under certain conditions; type `show c'
 
16388
     for details.
 
16389
     </pre>
 
16390
 
 
16391
   <p>The hypothetical commands <code>show w</code> and <code>show c</code> should show
 
16392
the appropriate parts of the General Public License.  Of course, the
 
16393
commands you use may be called something other than <code>show w</code> and
 
16394
<code>show c</code>; they could even be mouse-clicks or menu items--whatever
 
16395
suits your program.
 
16396
 
 
16397
   <p>You should also get your employer (if you work as a programmer) or your
 
16398
school, if any, to sign a "copyright disclaimer" for the program, if
 
16399
necessary.  Here is a sample; alter the names:
 
16400
 
 
16401
<pre class="example">     Yoyodyne, Inc., hereby disclaims all copyright
 
16402
     interest in the program `Gnomovision'
 
16403
     (which makes passes at compilers) written
 
16404
     by James Hacker.
 
16405
     
 
16406
     <var>signature of Ty Coon</var>, 1 April 1989
 
16407
     Ty Coon, President of Vice
 
16408
     </pre>
 
16409
 
 
16410
   <p>This General Public License does not permit incorporating your program into
 
16411
proprietary programs.  If your program is a subroutine library, you may
 
16412
consider it more useful to permit linking proprietary applications with the
 
16413
library.  If this is what you want to do, use the GNU Library General
 
16414
Public License instead of this License.
 
16415
 
 
16416
<div class="node">
 
16417
<p><hr>
 
16418
<small class=header>
 
16419
Node:<a name="Help%20and%20Assistance">Help and Assistance</a>,
 
16420
Next:<a rel="next" accesskey="n" href="#Documentation%20License">Documentation License</a>,
 
16421
Previous:<a rel="previous" accesskey="p" href="#License">License</a>,
 
16422
Up:<a rel="up" accesskey="u" href="#Top">Top</a>
 
16423
</small>
 
16424
 
 
16425
<br>
 
16426
</div>
 
16427
 
 
16428
<h2 class="appendix">Help and Assistance</h2>
 
16429
 
 
16430
   <p>We have set up a <em>mailing list</em> for general <small>DDD</small>
 
16431
discussions.  If you need help and assistance for solving a <small>DDD</small>
 
16432
problem, you find the right people here.
 
16433
 
 
16434
   <p>Send message to all receivers of the mailing list to:
 
16435
 
 
16436
<pre class="example">     <a href="mailto:ddd@gnu.org">ddd@gnu.org</a>
 
16437
     </pre>
 
16438
 
 
16439
   <p>This mailing list is also the place where new <small>DDD</small> releases are
 
16440
announced.  If you want to subscribe the list, or get more information,
 
16441
send a mail to
 
16442
 
 
16443
<pre class="example">     <a href="mailto:ddd-request@gnu.org">ddd-request@gnu.org</a>
 
16444
     </pre>
 
16445
 
 
16446
   <p>See also <a href="http://www.gnu.org/software/ddd/">the <small>DDD</small> <small>WWW</small> page</a> for recent announcements and other news related to <small>DDD</small>.
 
16447
 
 
16448
<div class="node">
 
16449
<p><hr>
 
16450
<small class=header>
 
16451
Node:<a name="Documentation%20License">Documentation License</a>,
 
16452
Next:<a rel="next" accesskey="n" href="#Label%20Index">Label Index</a>,
 
16453
Previous:<a rel="previous" accesskey="p" href="#Help%20and%20Assistance">Help and Assistance</a>,
 
16454
Up:<a rel="up" accesskey="u" href="#Top">Top</a>
 
16455
</small>
 
16456
 
 
16457
<br>
 
16458
</div>
 
16459
 
 
16460
<h2 class="appendix">GNU Free Documentation License</h2>
 
16461
 
 
16462
<div align="center">Version 1.1, March 2000</div>
 
16463
<pre class="display">     Copyright (C) 2000  Free Software Foundation, Inc.
 
16464
     59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 
16465
     
 
16466
     Everyone is permitted to copy and distribute verbatim copies
 
16467
     of this license document, but changing it is not allowed.
 
16468
     </pre>
 
16469
 
 
16470
<br><p>
 
16471
     <ol type=1 start=0>
 
16472
<li>PREAMBLE
 
16473
 
 
16474
     <p>The purpose of this License is to make a manual, textbook, or other
 
16475
written document "free" in the sense of freedom: to assure everyone
 
16476
the effective freedom to copy and redistribute it, with or without
 
16477
modifying it, either commercially or noncommercially.  Secondarily,
 
16478
this License preserves for the author and publisher a way to get
 
16479
credit for their work, while not being considered responsible for
 
16480
modifications made by others.
 
16481
 
 
16482
     <p>This License is a kind of "copyleft", which means that derivative
 
16483
works of the document must themselves be free in the same sense.  It
 
16484
complements the GNU General Public License, which is a copyleft
 
16485
license designed for free software.
 
16486
 
 
16487
     <p>We have designed this License in order to use it for manuals for free
 
16488
software, because free software needs free documentation: a free
 
16489
program should come with manuals providing the same freedoms that the
 
16490
software does.  But this License is not limited to software manuals;
 
16491
it can be used for any textual work, regardless of subject matter or
 
16492
whether it is published as a printed book.  We recommend this License
 
16493
principally for works whose purpose is instruction or reference.
 
16494
 
 
16495
<br><p>
 
16496
     </p><li>APPLICABILITY AND DEFINITIONS
 
16497
 
 
16498
     <p>This License applies to any manual or other work that contains a
 
16499
notice placed by the copyright holder saying it can be distributed
 
16500
under the terms of this License.  The "Document", below, refers to any
 
16501
such manual or work.  Any member of the public is a licensee, and is
 
16502
addressed as "you".
 
16503
 
 
16504
     <p>A "Modified Version" of the Document means any work containing the
 
16505
Document or a portion of it, either copied verbatim, or with
 
16506
modifications and/or translated into another language.
 
16507
 
 
16508
     <p>A "Secondary Section" is a named appendix or a front-matter section of
 
16509
the Document that deals exclusively with the relationship of the
 
16510
publishers or authors of the Document to the Document's overall subject
 
16511
(or to related matters) and contains nothing that could fall directly
 
16512
within that overall subject.  (For example, if the Document is in part a
 
16513
textbook of mathematics, a Secondary Section may not explain any
 
16514
mathematics.)  The relationship could be a matter of historical
 
16515
connection with the subject or with related matters, or of legal,
 
16516
commercial, philosophical, ethical or political position regarding
 
16517
them.
 
16518
 
 
16519
     <p>The "Invariant Sections" are certain Secondary Sections whose titles
 
16520
are designated, as being those of Invariant Sections, in the notice
 
16521
that says that the Document is released under this License.
 
16522
 
 
16523
     <p>The "Cover Texts" are certain short passages of text that are listed,
 
16524
as Front-Cover Texts or Back-Cover Texts, in the notice that says that
 
16525
the Document is released under this License.
 
16526
 
 
16527
     <p>A "Transparent" copy of the Document means a machine-readable copy,
 
16528
represented in a format whose specification is available to the
 
16529
general public, whose contents can be viewed and edited directly and
 
16530
straightforwardly with generic text editors or (for images composed of
 
16531
pixels) generic paint programs or (for drawings) some widely available
 
16532
drawing editor, and that is suitable for input to text formatters or
 
16533
for automatic translation to a variety of formats suitable for input
 
16534
to text formatters.  A copy made in an otherwise Transparent file
 
16535
format whose markup has been designed to thwart or discourage
 
16536
subsequent modification by readers is not Transparent.  A copy that is
 
16537
not "Transparent" is called "Opaque".
 
16538
 
 
16539
     <p>Examples of suitable formats for Transparent copies include plain
 
16540
ASCII without markup, Texinfo input format, LaTeX input format, SGML
 
16541
or XML using a publicly available DTD, and standard-conforming simple
 
16542
HTML designed for human modification.  Opaque formats include
 
16543
PostScript, PDF, proprietary formats that can be read and edited only
 
16544
by proprietary word processors, SGML or XML for which the DTD and/or
 
16545
processing tools are not generally available, and the
 
16546
machine-generated HTML produced by some word processors for output
 
16547
purposes only.
 
16548
 
 
16549
     <p>The "Title Page" means, for a printed book, the title page itself,
 
16550
plus such following pages as are needed to hold, legibly, the material
 
16551
this License requires to appear in the title page.  For works in
 
16552
formats which do not have any title page as such, "Title Page" means
 
16553
the text near the most prominent appearance of the work's title,
 
16554
preceding the beginning of the body of the text.
 
16555
<br><p>
 
16556
     </p><li>VERBATIM COPYING
 
16557
 
 
16558
     <p>You may copy and distribute the Document in any medium, either
 
16559
commercially or noncommercially, provided that this License, the
 
16560
copyright notices, and the license notice saying this License applies
 
16561
to the Document are reproduced in all copies, and that you add no other
 
16562
conditions whatsoever to those of this License.  You may not use
 
16563
technical measures to obstruct or control the reading or further
 
16564
copying of the copies you make or distribute.  However, you may accept
 
16565
compensation in exchange for copies.  If you distribute a large enough
 
16566
number of copies you must also follow the conditions in section 3.
 
16567
 
 
16568
     <p>You may also lend copies, under the same conditions stated above, and
 
16569
you may publicly display copies.
 
16570
<br><p>
 
16571
     </p><li>COPYING IN QUANTITY
 
16572
 
 
16573
     <p>If you publish printed copies of the Document numbering more than 100,
 
16574
and the Document's license notice requires Cover Texts, you must enclose
 
16575
the copies in covers that carry, clearly and legibly, all these Cover
 
16576
Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on
 
16577
the back cover.  Both covers must also clearly and legibly identify
 
16578
you as the publisher of these copies.  The front cover must present
 
16579
the full title with all words of the title equally prominent and
 
16580
visible.  You may add other material on the covers in addition. 
 
16581
Copying with changes limited to the covers, as long as they preserve
 
16582
the title of the Document and satisfy these conditions, can be treated
 
16583
as verbatim copying in other respects.
 
16584
 
 
16585
     <p>If the required texts for either cover are too voluminous to fit
 
16586
legibly, you should put the first ones listed (as many as fit
 
16587
reasonably) on the actual cover, and continue the rest onto adjacent
 
16588
pages.
 
16589
 
 
16590
     <p>If you publish or distribute Opaque copies of the Document numbering
 
16591
more than 100, you must either include a machine-readable Transparent
 
16592
copy along with each Opaque copy, or state in or with each Opaque copy
 
16593
a publicly-accessible computer-network location containing a complete
 
16594
Transparent copy of the Document, free of added material, which the
 
16595
general network-using public has access to download anonymously at no
 
16596
charge using public-standard network protocols.  If you use the latter
 
16597
option, you must take reasonably prudent steps, when you begin
 
16598
distribution of Opaque copies in quantity, to ensure that this
 
16599
Transparent copy will remain thus accessible at the stated location
 
16600
until at least one year after the last time you distribute an Opaque
 
16601
copy (directly or through your agents or retailers) of that edition to
 
16602
the public.
 
16603
 
 
16604
     <p>It is requested, but not required, that you contact the authors of the
 
16605
Document well before redistributing any large number of copies, to give
 
16606
them a chance to provide you with an updated version of the Document.
 
16607
<br><p>
 
16608
     </p><li>MODIFICATIONS
 
16609
 
 
16610
     <p>You may copy and distribute a Modified Version of the Document under
 
16611
the conditions of sections 2 and 3 above, provided that you release
 
16612
the Modified Version under precisely this License, with the Modified
 
16613
Version filling the role of the Document, thus licensing distribution
 
16614
and modification of the Modified Version to whoever possesses a copy
 
16615
of it.  In addition, you must do these things in the Modified Version:
 
16616
 
 
16617
     <p>A. Use in the Title Page (and on the covers, if any) a title distinct
 
16618
   from that of the Document, and from those of previous versions
 
16619
   (which should, if there were any, be listed in the History section
 
16620
   of the Document).  You may use the same title as a previous version
 
16621
   if the original publisher of that version gives permission.<br>
 
16622
B. List on the Title Page, as authors, one or more persons or entities
 
16623
   responsible for authorship of the modifications in the Modified
 
16624
   Version, together with at least five of the principal authors of the
 
16625
   Document (all of its principal authors, if it has less than five).<br>
 
16626
C. State on the Title page the name of the publisher of the
 
16627
   Modified Version, as the publisher.<br>
 
16628
D. Preserve all the copyright notices of the Document.<br>
 
16629
E. Add an appropriate copyright notice for your modifications
 
16630
   adjacent to the other copyright notices.<br>
 
16631
F. Include, immediately after the copyright notices, a license notice
 
16632
   giving the public permission to use the Modified Version under the
 
16633
   terms of this License, in the form shown in the Addendum below.<br>
 
16634
G. Preserve in that license notice the full lists of Invariant Sections
 
16635
   and required Cover Texts given in the Document's license notice.<br>
 
16636
H. Include an unaltered copy of this License.<br>
 
16637
I. Preserve the section entitled "History", and its title, and add to
 
16638
   it an item stating at least the title, year, new authors, and
 
16639
   publisher of the Modified Version as given on the Title Page.  If
 
16640
   there is no section entitled "History" in the Document, create one
 
16641
   stating the title, year, authors, and publisher of the Document as
 
16642
   given on its Title Page, then add an item describing the Modified
 
16643
   Version as stated in the previous sentence.<br>
 
16644
J. Preserve the network location, if any, given in the Document for
 
16645
   public access to a Transparent copy of the Document, and likewise
 
16646
   the network locations given in the Document for previous versions
 
16647
   it was based on.  These may be placed in the "History" section. 
 
16648
   You may omit a network location for a work that was published at
 
16649
   least four years before the Document itself, or if the original
 
16650
   publisher of the version it refers to gives permission.<br>
 
16651
K. In any section entitled "Acknowledgements" or "Dedications",
 
16652
   preserve the section's title, and preserve in the section all the
 
16653
   substance and tone of each of the contributor acknowledgements
 
16654
   and/or dedications given therein.<br>
 
16655
L. Preserve all the Invariant Sections of the Document,
 
16656
   unaltered in their text and in their titles.  Section numbers
 
16657
   or the equivalent are not considered part of the section titles.<br>
 
16658
M. Delete any section entitled "Endorsements".  Such a section
 
16659
   may not be included in the Modified Version.<br>
 
16660
N. Do not retitle any existing section as "Endorsements"
 
16661
   or to conflict in title with any Invariant Section.<br>
 
16662
<br><p>
 
16663
     <p>If the Modified Version includes new front-matter sections or
 
16664
appendices that qualify as Secondary Sections and contain no material
 
16665
copied from the Document, you may at your option designate some or all
 
16666
of these sections as invariant.  To do this, add their titles to the
 
16667
list of Invariant Sections in the Modified Version's license notice. 
 
16668
These titles must be distinct from any other section titles.
 
16669
 
 
16670
     <p>You may add a section entitled "Endorsements", provided it contains
 
16671
nothing but endorsements of your Modified Version by various
 
16672
parties-for example, statements of peer review or that the text has
 
16673
been approved by an organization as the authoritative definition of a
 
16674
standard.
 
16675
 
 
16676
     <p>You may add a passage of up to five words as a Front-Cover Text, and a
 
16677
passage of up to 25 words as a Back-Cover Text, to the end of the list
 
16678
of Cover Texts in the Modified Version.  Only one passage of
 
16679
Front-Cover Text and one of Back-Cover Text may be added by (or
 
16680
through arrangements made by) any one entity.  If the Document already
 
16681
includes a cover text for the same cover, previously added by you or
 
16682
by arrangement made by the same entity you are acting on behalf of,
 
16683
you may not add another; but you may replace the old one, on explicit
 
16684
permission from the previous publisher that added the old one.
 
16685
 
 
16686
     <p>The author(s) and publisher(s) of the Document do not by this License
 
16687
give permission to use their names for publicity for or to assert or
 
16688
imply endorsement of any Modified Version.
 
16689
<br><p>
 
16690
     </p><li>COMBINING DOCUMENTS
 
16691
 
 
16692
     <p>You may combine the Document with other documents released under this
 
16693
License, under the terms defined in section 4 above for modified
 
16694
versions, provided that you include in the combination all of the
 
16695
Invariant Sections of all of the original documents, unmodified, and
 
16696
list them all as Invariant Sections of your combined work in its
 
16697
license notice.
 
16698
 
 
16699
     <p>The combined work need only contain one copy of this License, and
 
16700
multiple identical Invariant Sections may be replaced with a single
 
16701
copy.  If there are multiple Invariant Sections with the same name but
 
16702
different contents, make the title of each such section unique by
 
16703
adding at the end of it, in parentheses, the name of the original
 
16704
author or publisher of that section if known, or else a unique number. 
 
16705
Make the same adjustment to the section titles in the list of
 
16706
Invariant Sections in the license notice of the combined work.
 
16707
 
 
16708
     <p>In the combination, you must combine any sections entitled "History"
 
16709
in the various original documents, forming one section entitled
 
16710
"History"; likewise combine any sections entitled "Acknowledgements",
 
16711
and any sections entitled "Dedications".  You must delete all sections
 
16712
entitled "Endorsements."
 
16713
<br><p>
 
16714
     </p><li>COLLECTIONS OF DOCUMENTS
 
16715
 
 
16716
     <p>You may make a collection consisting of the Document and other documents
 
16717
released under this License, and replace the individual copies of this
 
16718
License in the various documents with a single copy that is included in
 
16719
the collection, provided that you follow the rules of this License for
 
16720
verbatim copying of each of the documents in all other respects.
 
16721
 
 
16722
     <p>You may extract a single document from such a collection, and distribute
 
16723
it individually under this License, provided you insert a copy of this
 
16724
License into the extracted document, and follow this License in all
 
16725
other respects regarding verbatim copying of that document.
 
16726
<br><p>
 
16727
     </p><li>AGGREGATION WITH INDEPENDENT WORKS
 
16728
 
 
16729
     <p>A compilation of the Document or its derivatives with other separate
 
16730
and independent documents or works, in or on a volume of a storage or
 
16731
distribution medium, does not as a whole count as a Modified Version
 
16732
of the Document, provided no compilation copyright is claimed for the
 
16733
compilation.  Such a compilation is called an "aggregate", and this
 
16734
License does not apply to the other self-contained works thus compiled
 
16735
with the Document, on account of their being thus compiled, if they
 
16736
are not themselves derivative works of the Document.
 
16737
 
 
16738
     <p>If the Cover Text requirement of section 3 is applicable to these
 
16739
copies of the Document, then if the Document is less than one quarter
 
16740
of the entire aggregate, the Document's Cover Texts may be placed on
 
16741
covers that surround only the Document within the aggregate. 
 
16742
Otherwise they must appear on covers around the whole aggregate.
 
16743
<br><p>
 
16744
     </p><li>TRANSLATION
 
16745
 
 
16746
     <p>Translation is considered a kind of modification, so you may
 
16747
distribute translations of the Document under the terms of section 4. 
 
16748
Replacing Invariant Sections with translations requires special
 
16749
permission from their copyright holders, but you may include
 
16750
translations of some or all Invariant Sections in addition to the
 
16751
original versions of these Invariant Sections.  You may include a
 
16752
translation of this License provided that you also include the
 
16753
original English version of this License.  In case of a disagreement
 
16754
between the translation and the original English version of this
 
16755
License, the original English version will prevail.
 
16756
<br><p>
 
16757
     </p><li>TERMINATION
 
16758
 
 
16759
     <p>You may not copy, modify, sublicense, or distribute the Document except
 
16760
as expressly provided for under this License.  Any other attempt to
 
16761
copy, modify, sublicense or distribute the Document is void, and will
 
16762
automatically terminate your rights under this License.  However,
 
16763
parties who have received copies, or rights, from you under this
 
16764
License will not have their licenses terminated so long as such
 
16765
parties remain in full compliance.
 
16766
<br><p>
 
16767
     </p><li>FUTURE REVISIONS OF THIS LICENSE
 
16768
 
 
16769
     <p>The Free Software Foundation may publish new, revised versions
 
16770
of the GNU Free Documentation License from time to time.  Such new
 
16771
versions will be similar in spirit to the present version, but may
 
16772
differ in detail to address new problems or concerns.  See
 
16773
http://www.gnu.org/copyleft/.
 
16774
 
 
16775
     <p>Each version of the License is given a distinguishing version number. 
 
16776
If the Document specifies that a particular numbered version of this
 
16777
License "or any later version" applies to it, you have the option of
 
16778
following the terms and conditions either of that specified version or
 
16779
of any later version that has been published (not as a draft) by the
 
16780
Free Software Foundation.  If the Document does not specify a version
 
16781
number of this License, you may choose any version ever published (not
 
16782
as a draft) by the Free Software Foundation.
 
16783
 
 
16784
        </ol>
 
16785
 
 
16786
<h3 class="unnumberedsec">ADDENDUM: How to use this License for your documents</h3>
 
16787
 
 
16788
   <p>To use this License in a document you have written, include a copy of
 
16789
the License in the document and put the following copyright and
 
16790
license notices just after the title page:
 
16791
 
 
16792
<pre class="smallexample">     
 
16793
       Copyright (C)  <var>year</var>  <var>your name</var>.
 
16794
       Permission is granted to copy, distribute and/or modify this document
 
16795
       under the terms of the GNU Free Documentation License, Version 1.1
 
16796
       or any later version published by the Free Software Foundation;
 
16797
       with the Invariant Sections being <var>list their titles</var>, with the
 
16798
       Front-Cover Texts being <var>list</var>, and with the Back-Cover Texts being <var>list</var>.
 
16799
       A copy of the license is included in the section entitled ``GNU
 
16800
       Free Documentation License''.
 
16801
     </pre>
 
16802
   If you have no Invariant Sections, write "with no Invariant Sections"
 
16803
instead of saying which ones are invariant.  If you have no
 
16804
Front-Cover Texts, write "no Front-Cover Texts" instead of
 
16805
"Front-Cover Texts being <var>list</var>"; likewise for Back-Cover Texts.
 
16806
 
 
16807
   <p>If your document contains nontrivial examples of program code, we
 
16808
recommend releasing these examples in parallel under your choice of
 
16809
free software license, such as the GNU General Public License,
 
16810
to permit their use in free software.
 
16811
 
 
16812
<div class="node">
 
16813
<p><hr>
 
16814
<small class=header>
 
16815
Node:<a name="Label%20Index">Label Index</a>,
 
16816
Next:<a rel="next" accesskey="n" href="#Key%20Index">Key Index</a>,
 
16817
Previous:<a rel="previous" accesskey="p" href="#Documentation%20License">Documentation License</a>,
 
16818
Up:<a rel="up" accesskey="u" href="#Top">Top</a>
 
16819
</small>
 
16820
 
 
16821
<br>
 
16822
</div>
 
16823
 
 
16824
<h2 class="unnumbered">Label Index</h2>
 
16825
 
 
16826
<ul class="index-lb" compact>
 
16827
<li><code>()</code>: <a href="#GDB%20Argument%20Commands">GDB Argument Commands</a>
 
16828
<li><code>3-D Lines</code>: <a href="#Plot%20Appearance">Plot Appearance</a>
 
16829
<li><code>Abort</code>: <a href="#Program%20Menu">Program Menu</a>, <a href="#Quitting">Quitting</a>
 
16830
<li><code>About </code><small>DDD</small><code></code>: <a href="#Help%20Menu">Help Menu</a>
 
16831
<li><code>Align on Grid</code>: <a href="#Data%20Menu">Data Menu</a>
 
16832
<li><code>All Signals</code>: <a href="#Signals">Signals</a>
 
16833
<li><code>Apply</code>: <a href="#Commands%20Menu">Commands Menu</a>
 
16834
<li><code>Attach</code>: <a href="#Attaching%20to%20a%20Process">Attaching to a Process</a>
 
16835
<li><code>Attach to Process</code>: <a href="#Attaching%20to%20a%20Process">Attaching to a Process</a>, <a href="#File%20Menu">File Menu</a>
 
16836
<li><code>Auto-align Displays on Nearest Grid Point</code>: <a href="#Aligning%20Displays">Aligning Displays</a>
 
16837
<li><code>Automatic Display of Button Hints</code>: <a href="#Button%20tips">Button tips</a>
 
16838
<li><code>Automatic Display of Variable Values</code>: <a href="#Value%20Tips">Value Tips</a>
 
16839
<li><code>Backtrace</code>: <a href="#Status%20Menu">Status Menu</a>
 
16840
<li><code>Bash Console</code>: <a href="#View%20Menu">View Menu</a>
 
16841
<li><code>Bash Reference</code>: <a href="#Getting%20Help">Getting Help</a>, <a href="#Help%20Menu">Help Menu</a>
 
16842
<li><code>Break</code>: <a href="#Setting%20Breakpoints">Setting Breakpoints</a>, <a href="#Tool%20Bar">Tool Bar</a>
 
16843
<li><code>Breakpoints</code>: <a href="#Source%20Menu">Source Menu</a>
 
16844
<li><code>Button</code>: <a href="#GDB%20Simple%20Commands">GDB Simple Commands</a>
 
16845
<li><code>Cache Machine Code</code>: <a href="#Customizing%20Machine%20Code">Customizing Machine Code</a>
 
16846
<li><code>Cache source files</code>: <a href="#Customizing%20Source%20Lookup">Customizing Source Lookup</a>
 
16847
<li><code>Change Directory</code>: <a href="#Working%20Directory">Working Directory</a>, <a href="#File%20Menu">File Menu</a>
 
16848
<li><code>Clear</code>: <a href="#Disabling%20Breakpoints">Disabling Breakpoints</a>, <a href="#Deleting%20Breakpoints">Deleting Breakpoints</a>, <a href="#Tool%20Bar">Tool Bar</a>, <a href="#Edit%20Menu">Edit Menu</a>
 
16849
<li><code>Clear Line</code>: <a href="#Commands%20Menu">Commands Menu</a>
 
16850
<li><code>Clear Undo Buffer</code>: <a href="#Customizing%20Undo">Customizing Undo</a>
 
16851
<li><code>Clear Window</code>: <a href="#Commands%20Menu">Commands Menu</a>
 
16852
<li><code>Close</code>: <a href="#File%20Menu">File Menu</a>
 
16853
<li><code>Close data window when deleting last display</code>: <a href="#Deleting%20Displays">Deleting Displays</a>
 
16854
<li><code>Cluster</code>: <a href="#Clustering">Clustering</a>
 
16855
<li><code>Cluster Data Displays</code>: <a href="#Clustering">Clustering</a>
 
16856
<li><code>clustered</code>: <a href="#Clustering">Clustering</a>
 
16857
<li><code>Color</code>: <a href="#Printing%20the%20Graph">Printing the Graph</a>
 
16858
<li><code>Command</code>: <a href="#GDB%20Simple%20Commands">GDB Simple Commands</a>, <a href="#Entering%20Plotting%20Commands">Entering Plotting Commands</a>
 
16859
<li><code>Command History</code>: <a href="#Commands%20Menu">Commands Menu</a>
 
16860
<li><code>Command Tool</code>: <a href="#View%20Menu">View Menu</a>
 
16861
<li><code>Commands</code>: <a href="#Commands%20Menu">Commands Menu</a>, <a href="#Menu%20Bar">Menu Bar</a>
 
16862
<li><code>Complete</code>: <a href="#Commands%20Menu">Commands Menu</a>
 
16863
<li><code>Cont</code>: <a href="#Command%20Tool">Command Tool</a>
 
16864
<li><code>Continue</code>: <a href="#Continuing%20Somewhere%20Else">Continuing Somewhere Else</a>, <a href="#Resuming%20Execution">Resuming Execution</a>, <a href="#Program%20Menu">Program Menu</a>
 
16865
<li><code>Continue Automatically when Mouse Pointer is Frozen</code>: <a href="#Stopping%20X%20Programs">Stopping X Programs</a>
 
16866
<li><code>Continue Until Here</code>: <a href="#Temporary%20Breakpoints">Temporary Breakpoints</a>
 
16867
<li><code>Continue Without Signal</code>: <a href="#Signals">Signals</a>, <a href="#Program%20Menu">Program Menu</a>
 
16868
<li><code>Contour</code>: <a href="#Plot%20Appearance">Plot Appearance</a>
 
16869
<li><code>Copy</code>: <a href="#Deleting%20Displays">Deleting Displays</a>, <a href="#Edit%20Menu">Edit Menu</a>
 
16870
<li><code>Ctrl+A is</code>: <a href="#Customizing%20the%20Edit%20Menu">Customizing the Edit Menu</a>
 
16871
<li><code>Ctrl+C is</code>: <a href="#Customizing%20the%20Edit%20Menu">Customizing the Edit Menu</a>
 
16872
<li><code>Cut</code>: <a href="#Deleting%20Displays">Deleting Displays</a>, <a href="#Edit%20Menu">Edit Menu</a>
 
16873
<li><code>Data</code>: <a href="#Data%20Menu">Data Menu</a>, <a href="#Menu%20Bar">Menu Bar</a>
 
16874
<li><code>Data Scrolling</code>: <a href="#Scrolling%20Data">Scrolling Data</a>
 
16875
<li><code>Data Window</code>: <a href="#View%20Menu">View Menu</a>
 
16876
<li><code>DBX Console</code>: <a href="#View%20Menu">View Menu</a>
 
16877
<li><code>DBX Reference</code>: <a href="#Getting%20Help">Getting Help</a>, <a href="#Help%20Menu">Help Menu</a>
 
16878
<li><code>DBX Settings</code>: <a href="#Edit%20Menu">Edit Menu</a>
 
16879
<li><code>DDD License</code>: <a href="#Help%20Menu">Help Menu</a>
 
16880
<li><code>DDD News</code>: <a href="#Help%20Menu">Help Menu</a>
 
16881
<li><code>DDD Reference</code>: <a href="#Getting%20Help">Getting Help</a>, <a href="#Help%20Menu">Help Menu</a>
 
16882
<li><code>DDD Splash Screen</code>: <a href="#Splash%20Screen">Splash Screen</a>
 
16883
<li><code>DDD </code><small>WWW</small><code> Page</code>: <a href="#Getting%20Help">Getting Help</a>
 
16884
<li><code>DDD WWW Page</code>: <a href="#Help%20Menu">Help Menu</a>
 
16885
<li><code>Debug DDD</code>: <a href="#Maintenance%20Menu">Maintenance Menu</a>
 
16886
<li><code>Debugger Reference</code>: <a href="#Getting%20Help">Getting Help</a>, <a href="#Help%20Menu">Help Menu</a>
 
16887
<li><code>Debugger Settings</code>: <a href="#Edit%20Menu">Edit Menu</a>
 
16888
<li><code>Debugger Type</code>: <a href="#Debugger%20Invocation">Debugger Invocation</a>
 
16889
<li><code>Define Command</code>: <a href="#Commands%20Menu">Commands Menu</a>
 
16890
<li><code>Delete</code>: <a href="#Editing%20Breakpoint%20Properties">Editing Breakpoint Properties</a>, <a href="#Deleting%20Breakpoints">Deleting Breakpoints</a>, <a href="#Edit%20Menu">Edit Menu</a>, <a href="#Deleting%20Sessions">Deleting Sessions</a>
 
16891
<li><code>Delete Breakpoint</code>: <a href="#Deleting%20Breakpoints">Deleting Breakpoints</a>
 
16892
<li><code>Detach Process</code>: <a href="#Attaching%20to%20a%20Process">Attaching to a Process</a>, <a href="#File%20Menu">File Menu</a>
 
16893
<li><code>Detect Aliases</code>: <a href="#Shared%20Structures">Shared Structures</a>, <a href="#Data%20Menu">Data Menu</a>
 
16894
<li><code>Determine Automatically from Arguments</code>: <a href="#Debugger%20Invocation">Debugger Invocation</a>
 
16895
<li><code>Disable</code>: <a href="#Editing%20Breakpoint%20Properties">Editing Breakpoint Properties</a>, <a href="#Disabling%20Breakpoints">Disabling Breakpoints</a>
 
16896
<li><code>Disable Breakpoint</code>: <a href="#Disabling%20Breakpoints">Disabling Breakpoints</a>
 
16897
<li><code>Disp *</code>: <a href="#Dereferencing%20Pointers">Dereferencing Pointers</a>
 
16898
<li><code>Display</code>: <a href="#Creating%20Single%20Displays">Creating Single Displays</a>, <a href="#Display%20Basics">Display Basics</a>, <a href="#Tool%20Bar">Tool Bar</a>
 
16899
<li><code>Display ()</code>: <a href="#Data%20Menu">Data Menu</a>
 
16900
<li><code>Display *</code>: <a href="#Dereferencing%20Pointers">Dereferencing Pointers</a>
 
16901
<li><code>Display *()</code>: <a href="#Dereferencing%20Pointers">Dereferencing Pointers</a>
 
16902
<li><code>Display Arguments</code>: <a href="#Displaying%20Local%20Variables">Displaying Local Variables</a>, <a href="#Data%20Menu">Data Menu</a>
 
16903
<li><code>Display Line Numbers</code>: <a href="#Source%20Menu">Source Menu</a>
 
16904
<li><code>Display Local Variables</code>: <a href="#Displaying%20Local%20Variables">Displaying Local Variables</a>, <a href="#Data%20Menu">Data Menu</a>
 
16905
<li><code>Display Machine Code</code>: <a href="#Source%20Menu">Source Menu</a>
 
16906
<li><code>Display Source Line Numbers</code>: <a href="#Customizing%20Source%20Appearance">Customizing Source Appearance</a>
 
16907
<li><code>Display Two-Dimensional Arrays as Tables</code>: <a href="#Arrays%20as%20Tables">Arrays as Tables</a>
 
16908
<li><code>Displays</code>: <a href="#Data%20Menu">Data Menu</a>
 
16909
<li><code>Do Nothing</code>: <a href="#Maintenance%20Menu">Maintenance Menu</a>
 
16910
<li><code>Down</code>: <a href="#Selecting%20a%20frame">Selecting a frame</a>, <a href="#Command%20Tool">Command Tool</a>, <a href="#Status%20Menu">Status Menu</a>
 
16911
<li><code>Dump Core</code>: <a href="#Maintenance%20Menu">Maintenance Menu</a>
 
16912
<li><code>Dump Core Now</code>: <a href="#Maintenance%20Menu">Maintenance Menu</a>
 
16913
<li><code>Edit</code>: <a href="#Editing%20Source%20Code">Editing Source Code</a>, <a href="#Command%20Tool">Command Tool</a>, <a href="#Edit%20Menu">Edit Menu</a>, <a href="#Menu%20Bar">Menu Bar</a>
 
16914
<li><code>Edit &lt;&lt;</code>: <a href="#GDB%20Simple%20Commands">GDB Simple Commands</a>
 
16915
<li><code>Edit &gt;&gt;</code>: <a href="#GDB%20Simple%20Commands">GDB Simple Commands</a>, <a href="#Breakpoint%20Commands">Breakpoint Commands</a>
 
16916
<li><code>Edit Buttons</code>: <a href="#Defining%20Buttons">Defining Buttons</a>, <a href="#Commands%20Menu">Commands Menu</a>
 
16917
<li><code>Edit Menu</code>: <a href="#Display%20Shortcuts">Display Shortcuts</a>
 
16918
<li><code>Edit Source</code>: <a href="#Editing%20Source%20Code">Editing Source Code</a>, <a href="#Source%20Menu">Source Menu</a>
 
16919
<li><code>Edit Sources</code>: <a href="#Editing%20Source%20Code">Editing Source Code</a>
 
16920
<li><code>Edit Themes</code>: <a href="#Editing%20Themes">Editing Themes</a>
 
16921
<li><code>Enable</code>: <a href="#Editing%20Breakpoint%20Properties">Editing Breakpoint Properties</a>, <a href="#Disabling%20Breakpoints">Disabling Breakpoints</a>
 
16922
<li><code>Enable Breakpoint</code>: <a href="#Disabling%20Breakpoints">Disabling Breakpoints</a>
 
16923
<li><code>Enable supported buttons only</code>: <a href="#Defining%20Buttons">Defining Buttons</a>
 
16924
<li><code>End</code>: <a href="#GDB%20Simple%20Commands">GDB Simple Commands</a>, <a href="#Breakpoint%20Commands">Breakpoint Commands</a>
 
16925
<li><code>Execute</code>: <a href="#GDB%20Simple%20Commands">GDB Simple Commands</a>
 
16926
<li><code>Execution Window</code>: <a href="#Customizing%20the%20Execution%20Window">Customizing the Execution Window</a>, <a href="#View%20Menu">View Menu</a>
 
16927
<li><code>Exit</code>: <a href="#File%20Menu">File Menu</a>, <a href="#Quitting">Quitting</a>
 
16928
<li><code>File</code>: <a href="#File%20Menu">File Menu</a>, <a href="#Menu%20Bar">Menu Bar</a>
 
16929
<li><code>File Name</code>: <a href="#Printing%20the%20Graph">Printing the Graph</a>
 
16930
<li><code>Find &lt;&lt;</code>: <a href="#Textual%20Search">Textual Search</a>
 
16931
<li><code>Find &lt;&lt; ()</code>: <a href="#Source%20Menu">Source Menu</a>
 
16932
<li><code>Find &gt;&gt;</code>: <a href="#Textual%20Search">Textual Search</a>, <a href="#Tool%20Bar">Tool Bar</a>
 
16933
<li><code>Find &gt;&gt; ()</code>: <a href="#Source%20Menu">Source Menu</a>
 
16934
<li><code>Find Backward</code>: <a href="#Commands%20Menu">Commands Menu</a>
 
16935
<li><code>Find Case Sensitive</code>: <a href="#Source%20Menu">Source Menu</a>
 
16936
<li><code>Find Forward</code>: <a href="#Commands%20Menu">Commands Menu</a>
 
16937
<li><code>Find Words Only</code>: <a href="#Textual%20Search">Textual Search</a>, <a href="#Source%20Menu">Source Menu</a>
 
16938
<li><code>Finish</code>: <a href="#Resuming%20Execution">Resuming Execution</a>, <a href="#Command%20Tool">Command Tool</a>, <a href="#Program%20Menu">Program Menu</a>
 
16939
<li><code>GDB Console</code>: <a href="#View%20Menu">View Menu</a>
 
16940
<li><code>GDB Reference</code>: <a href="#Getting%20Help">Getting Help</a>, <a href="#Help%20Menu">Help Menu</a>
 
16941
<li><code>GDB Settings</code>: <a href="#Edit%20Menu">Edit Menu</a>
 
16942
<li><code>Get Core File</code>: <a href="#Customizing%20Sessions">Customizing Sessions</a>
 
16943
<li><code>Help</code>: <a href="#Getting%20Help">Getting Help</a>, <a href="#Help%20Menu">Help Menu</a>, <a href="#Menu%20Bar">Menu Bar</a>
 
16944
<li><code>Hide</code>: <a href="#Showing%20and%20Hiding%20Details">Showing and Hiding Details</a>, <a href="#Tool%20Bar">Tool Bar</a>
 
16945
<li><code>Iconify all windows at once</code>: <a href="#Icons">Icons</a>
 
16946
<li><code>Ignore Count</code>: <a href="#Breakpoint%20Ignore%20Counts">Breakpoint Ignore Counts</a>
 
16947
<li><code>Include Core Dump</code>: <a href="#Saving%20Sessions">Saving Sessions</a>
 
16948
<li><code>Interrupt</code>: <a href="#Interrupting">Interrupting</a>, <a href="#Command%20Tool">Command Tool</a>, <a href="#Program%20Menu">Program Menu</a>
 
16949
<li><code>JDB Console</code>: <a href="#View%20Menu">View Menu</a>
 
16950
<li><code>JDB Reference</code>: <a href="#Getting%20Help">Getting Help</a>, <a href="#Help%20Menu">Help Menu</a>
 
16951
<li><code>JDB Settings</code>: <a href="#Edit%20Menu">Edit Menu</a>
 
16952
<li><code>Kill</code>: <a href="#Killing%20the%20Program">Killing the Program</a>, <a href="#Command%20Tool">Command Tool</a>, <a href="#Program%20Menu">Program Menu</a>
 
16953
<li><code>Ladebug Console</code>: <a href="#View%20Menu">View Menu</a>
 
16954
<li><code>Ladebug Reference</code>: <a href="#Getting%20Help">Getting Help</a>, <a href="#Help%20Menu">Help Menu</a>
 
16955
<li><code>Ladebug Settings</code>: <a href="#Edit%20Menu">Edit Menu</a>
 
16956
<li><code>Landscape</code>: <a href="#Printing%20Plots">Printing Plots</a>
 
16957
<li><code>Layout Graph</code>: <a href="#Automatic%20Layout">Automatic Layout</a>, <a href="#Data%20Menu">Data Menu</a>
 
16958
<li><code>Left to right</code>: <a href="#Placement">Placement</a>
 
16959
<li><code>List Processes</code>: <a href="#Attaching%20to%20a%20Process">Attaching to a Process</a>
 
16960
<li><code>Lookup</code>: <a href="#Editing%20Breakpoint%20Properties">Editing Breakpoint Properties</a>, <a href="#Looking%20up%20Definitions">Looking up Definitions</a>, <a href="#Tool%20Bar">Tool Bar</a>
 
16961
<li><code>Lookup ()</code>: <a href="#Source%20Menu">Source Menu</a>
 
16962
<li><code>Machine Code Indentation</code>: <a href="#Customizing%20Machine%20Code">Customizing Machine Code</a>
 
16963
<li><code>Machine Code Window</code>: <a href="#View%20Menu">View Menu</a>
 
16964
<li><code>Maintenance</code>: <a href="#Maintenance%20Menu">Maintenance Menu</a>, <a href="#Menu%20Bar">Menu Bar</a>
 
16965
<li><code>Make</code>: <a href="#Recompiling">Recompiling</a>, <a href="#Command%20Tool">Command Tool</a>, <a href="#File%20Menu">File Menu</a>
 
16966
<li><code>Memory</code>: <a href="#Examining%20Memory">Examining Memory</a>, <a href="#Data%20Menu">Data Menu</a>
 
16967
<li><code>New Display</code>: <a href="#Display%20Shortcuts">Display Shortcuts</a>
 
16968
<li><code>New Game</code>: <a href="#Maintenance%20Menu">Maintenance Menu</a>
 
16969
<li><code>Next</code>: <a href="#Resuming%20Execution">Resuming Execution</a>, <a href="#Command%20Tool">Command Tool</a>, <a href="#Commands%20Menu">Commands Menu</a>, <a href="#Program%20Menu">Program Menu</a>
 
16970
<li><code>Next Instruction</code>: <a href="#Machine%20Code%20Execution">Machine Code Execution</a>, <a href="#Program%20Menu">Program Menu</a>
 
16971
<li><code>Nexti</code>: <a href="#Machine%20Code%20Execution">Machine Code Execution</a>, <a href="#Command%20Tool">Command Tool</a>
 
16972
<li><code>On item</code>: <a href="#Help%20Menu">Help Menu</a>
 
16973
<li><code>Open</code>: <a href="#Opening%20Source%20Files">Opening Source Files</a>, <a href="#Opening%20Core%20Dumps">Opening Core Dumps</a>, <a href="#Opening%20Programs">Opening Programs</a>
 
16974
<li><code>Open Class</code>: <a href="#Opening%20Programs">Opening Programs</a>, <a href="#File%20Menu">File Menu</a>
 
16975
<li><code>Open Core Dump</code>: <a href="#File%20Menu">File Menu</a>
 
16976
<li><code>Open Program</code>: <a href="#Attaching%20to%20a%20Process">Attaching to a Process</a>, <a href="#Opening%20Programs">Opening Programs</a>, <a href="#File%20Menu">File Menu</a>
 
16977
<li><code>Open Recent</code>: <a href="#Opening%20Programs">Opening Programs</a>, <a href="#File%20Menu">File Menu</a>
 
16978
<li><code>Open Session</code>: <a href="#File%20Menu">File Menu</a>, <a href="#Resuming%20Sessions">Resuming Sessions</a>
 
16979
<li><code>Open Source</code>: <a href="#Opening%20Source%20Files">Opening Source Files</a>, <a href="#File%20Menu">File Menu</a>
 
16980
<li><code>Orientation</code>: <a href="#Printing%20the%20Graph">Printing the Graph</a>
 
16981
<li><code>Other</code>: <a href="#Display%20Shortcuts">Display Shortcuts</a>
 
16982
<li><code>Overview</code>: <a href="#Help%20Menu">Help Menu</a>
 
16983
<li><code>Paper Size</code>: <a href="#Printing%20Plots">Printing Plots</a>, <a href="#Printing%20the%20Graph">Printing the Graph</a>
 
16984
<li><code>Pass</code>: <a href="#Signals">Signals</a>
 
16985
<li><code>Paste</code>: <a href="#Deleting%20Displays">Deleting Displays</a>, <a href="#Edit%20Menu">Edit Menu</a>
 
16986
<li><code>Perl Console</code>: <a href="#View%20Menu">View Menu</a>
 
16987
<li><code>Perl Reference</code>: <a href="#Getting%20Help">Getting Help</a>, <a href="#Help%20Menu">Help Menu</a>
 
16988
<li><code>Perl Settings</code>: <a href="#Edit%20Menu">Edit Menu</a>
 
16989
<li><code>Placement</code>: <a href="#Clustering">Clustering</a>, <a href="#Placement">Placement</a>
 
16990
<li><code>Plot</code>: <a href="#Gnuplot%20Invocation">Gnuplot Invocation</a>, <a href="#Plot%20Appearance">Plot Appearance</a>, <a href="#Tool%20Bar">Tool Bar</a>
 
16991
<li><code>Plot Window</code>: <a href="#Gnuplot%20Invocation">Gnuplot Invocation</a>
 
16992
<li><code>Portrait</code>: <a href="#Printing%20Plots">Printing Plots</a>
 
16993
<li><code>Preferences</code>: <a href="#Edit%20Menu">Edit Menu</a>
 
16994
<li><code>Previous</code>: <a href="#Commands%20Menu">Commands Menu</a>
 
16995
<li><code>Print</code>: <a href="#Printing%20Values">Printing Values</a>, <a href="#Signals">Signals</a>, <a href="#Editing%20all%20Watchpoints">Editing all Watchpoints</a>, <a href="#Editing%20Watchpoint%20Properties">Editing Watchpoint Properties</a>, <a href="#Tool%20Bar">Tool Bar</a>
 
16996
<li><code>Print ()</code>: <a href="#Data%20Menu">Data Menu</a>
 
16997
<li><code>Print Command</code>: <a href="#Printing%20the%20Graph">Printing the Graph</a>
 
16998
<li><code>Print Graph</code>: <a href="#Printing%20the%20Graph">Printing the Graph</a>, <a href="#File%20Menu">File Menu</a>
 
16999
<li><code>Print Plot</code>: <a href="#Printing%20Plots">Printing Plots</a>
 
17000
<li><code>Program</code>: <a href="#Program%20Menu">Program Menu</a>, <a href="#Menu%20Bar">Menu Bar</a>
 
17001
<li><code>PYDB Console</code>: <a href="#View%20Menu">View Menu</a>
 
17002
<li><code>PYDB Reference</code>: <a href="#Getting%20Help">Getting Help</a>, <a href="#Help%20Menu">Help Menu</a>
 
17003
<li><code>PYDB Settings</code>: <a href="#Edit%20Menu">Edit Menu</a>
 
17004
<li><code>Quit Search</code>: <a href="#Commands%20Menu">Commands Menu</a>
 
17005
<li><code>Record</code>: <a href="#GDB%20Simple%20Commands">GDB Simple Commands</a>, <a href="#Breakpoint%20Commands">Breakpoint Commands</a>
 
17006
<li><code>Red Background</code>: <a href="#Applying%20Data%20Themes%20to%20Several%20Values">Applying Data Themes to Several Values</a>
 
17007
<li><code>Redo</code>: <a href="#Undoing%20Program%20Execution">Undoing Program Execution</a>, <a href="#Looking%20up%20Previous%20Locations">Looking up Previous Locations</a>, <a href="#Undo%20and%20Redo">Undo and Redo</a>, <a href="#Command%20Tool">Command Tool</a>, <a href="#Edit%20Menu">Edit Menu</a>
 
17008
<li><code>Refer to Program Sources</code>: <a href="#Customizing%20Source%20Lookup">Customizing Source Lookup</a>
 
17009
<li><code>Refresh</code>: <a href="#Data%20Menu">Data Menu</a>
 
17010
<li><code>Refresh Displays</code>: <a href="#Repeated%20Values">Repeated Values</a>, <a href="#Refreshing%20the%20Data%20Window">Refreshing the Data Window</a>
 
17011
<li><code>Registers</code>: <a href="#Registers">Registers</a>, <a href="#Status%20Menu">Status Menu</a>
 
17012
<li><code>Reload Source</code>: <a href="#Editing%20Source%20Code">Editing Source Code</a>, <a href="#Source%20Menu">Source Menu</a>
 
17013
<li><code>Remove Menu</code>: <a href="#Maintenance%20Menu">Maintenance Menu</a>
 
17014
<li><code>Reset</code>: <a href="#Signals">Signals</a>
 
17015
<li><code>Restart</code>: <a href="#File%20Menu">File Menu</a>
 
17016
<li><code>Rotate</code>: <a href="#Tool%20Bar">Tool Bar</a>
 
17017
<li><code>Rotate Graph</code>: <a href="#Rotating%20the%20Graph">Rotating the Graph</a>, <a href="#Data%20Menu">Data Menu</a>
 
17018
<li><code>Run</code>: <a href="#Starting%20Program%20Execution">Starting Program Execution</a>, <a href="#Command%20Tool">Command Tool</a>, <a href="#Program%20Menu">Program Menu</a>
 
17019
<li><code>Run Again</code>: <a href="#Starting%20Program%20Execution">Starting Program Execution</a>, <a href="#Program%20Menu">Program Menu</a>
 
17020
<li><code>Run in Execution Window</code>: <a href="#Using%20the%20Execution%20Window">Using the Execution Window</a>, <a href="#Program%20Menu">Program Menu</a>
 
17021
<li><code>Save Data As</code>: <a href="#Exporting%20Plot%20Data">Exporting Plot Data</a>
 
17022
<li><code>Save Options</code>: <a href="#Signals">Signals</a>, <a href="#Edit%20Menu">Edit Menu</a>
 
17023
<li><code>Save Session As</code>: <a href="#Signals">Signals</a>, <a href="#File%20Menu">File Menu</a>, <a href="#Saving%20Sessions">Saving Sessions</a>
 
17024
<li><code>Scale</code>: <a href="#Plot%20Appearance">Plot Appearance</a>
 
17025
<li><code>Search path for source files</code>: <a href="#Source%20Path">Source Path</a>
 
17026
<li><code>Select All</code>: <a href="#Edit%20Menu">Edit Menu</a>
 
17027
<li><code>Selected Only</code>: <a href="#Printing%20Plots">Printing Plots</a>, <a href="#Printing%20the%20Graph">Printing the Graph</a>
 
17028
<li><code>Send</code>: <a href="#Signals">Signals</a>
 
17029
<li><code>Set</code>: <a href="#Assignment">Assignment</a>, <a href="#Tool%20Bar">Tool Bar</a>
 
17030
<li><code>Set Execution Position</code>: <a href="#Continuing%20Somewhere%20Else">Continuing Somewhere Else</a>
 
17031
<li><code>Set Temporary Breakpoint</code>: <a href="#Temporary%20Breakpoints">Temporary Breakpoints</a>
 
17032
<li><code>Set Value</code>: <a href="#Assignment">Assignment</a>
 
17033
<li><code>Show</code>: <a href="#Showing%20and%20Hiding%20Details">Showing and Hiding Details</a>, <a href="#Tool%20Bar">Tool Bar</a>
 
17034
<li><code>Show All</code>: <a href="#Showing%20and%20Hiding%20Details">Showing and Hiding Details</a>
 
17035
<li><code>Show Just</code>: <a href="#Showing%20and%20Hiding%20Details">Showing and Hiding Details</a>
 
17036
<li><code>Show More</code>: <a href="#Showing%20and%20Hiding%20Details">Showing and Hiding Details</a>
 
17037
<li><code>Show Position and Breakpoints</code>: <a href="#Customizing%20Glyphs">Customizing Glyphs</a>
 
17038
<li><code>Signals</code>: <a href="#Signals">Signals</a>, <a href="#Status%20Menu">Status Menu</a>
 
17039
<li><code>Small Titles</code>: <a href="#Using%20Data%20Themes">Using Data Themes</a>
 
17040
<li><code>Small Values</code>: <a href="#Using%20Data%20Themes">Using Data Themes</a>
 
17041
<li><code>Source</code>: <a href="#Source%20Menu">Source Menu</a>, <a href="#Menu%20Bar">Menu Bar</a>
 
17042
<li><code>Source indentation</code>: <a href="#Customizing%20Source%20Appearance">Customizing Source Appearance</a>
 
17043
<li><code>Source Window</code>: <a href="#View%20Menu">View Menu</a>
 
17044
<li><code>Status</code>: <a href="#Status%20Menu">Status Menu</a>, <a href="#Menu%20Bar">Menu Bar</a>
 
17045
<li><code>Status Displays</code>: <a href="#Displaying%20Program%20Status">Displaying Program Status</a>, <a href="#Data%20Menu">Data Menu</a>
 
17046
<li><code>Step</code>: <a href="#Resuming%20Execution">Resuming Execution</a>, <a href="#Command%20Tool">Command Tool</a>, <a href="#Program%20Menu">Program Menu</a>
 
17047
<li><code>Step Instruction</code>: <a href="#Machine%20Code%20Execution">Machine Code Execution</a>, <a href="#Program%20Menu">Program Menu</a>
 
17048
<li><code>Stepi</code>: <a href="#Machine%20Code%20Execution">Machine Code Execution</a>, <a href="#Command%20Tool">Command Tool</a>
 
17049
<li><code>Stop</code>: <a href="#Signals">Signals</a>
 
17050
<li><code>Suppress Values</code>: <a href="#Using%20Data%20Themes">Using Data Themes</a>, <a href="#Deleting%20Displays">Deleting Displays</a>
 
17051
<li><code>Suppress X warnings</code>: <a href="#X%20Warnings">X Warnings</a>
 
17052
<li><code>Tab Width</code>: <a href="#Customizing%20Source%20Appearance">Customizing Source Appearance</a>
 
17053
<li><code>Temp</code>: <a href="#Editing%20Breakpoint%20Properties">Editing Breakpoint Properties</a>
 
17054
<li><code>Theme</code>: <a href="#Using%20Data%20Themes">Using Data Themes</a>
 
17055
<li><code>Themes</code>: <a href="#Editing%20Themes">Editing Themes</a>
 
17056
<li><code>Threads</code>: <a href="#Threads">Threads</a>, <a href="#Status%20Menu">Status Menu</a>
 
17057
<li><code>Threshold for repeated print elements</code>: <a href="#Repeated%20Values">Repeated Values</a>
 
17058
<li><code>Tic Tac Toe</code>: <a href="#Maintenance%20Menu">Maintenance Menu</a>
 
17059
<li><code>Tiny Values</code>: <a href="#Using%20Data%20Themes">Using Data Themes</a>
 
17060
<li><code>Tip of the Day</code>: <a href="#Help%20Menu">Help Menu</a>
 
17061
<li><code>Tool Bar Appearance</code>: <a href="#Window%20Layout">Window Layout</a>
 
17062
<li><code>Tool Buttons Location</code>: <a href="#Disabling%20the%20Command%20Tool">Disabling the Command Tool</a>
 
17063
<li><code>Top to bottom</code>: <a href="#Placement">Placement</a>
 
17064
<li><code>Uncluster</code>: <a href="#Clustering">Clustering</a>
 
17065
<li><code>Uncompress</code>: <a href="#Help%20Helpers">Help Helpers</a>
 
17066
<li><code>Undisp</code>: <a href="#Deleting%20Displays">Deleting Displays</a>, <a href="#Tool%20Bar">Tool Bar</a>
 
17067
<li><code>Undisplay</code>: <a href="#Display%20Basics">Display Basics</a>
 
17068
<li><code>Undo</code>: <a href="#Deleting%20Displays">Deleting Displays</a>, <a href="#Showing%20and%20Hiding%20Details">Showing and Hiding Details</a>, <a href="#Undoing%20Program%20Execution">Undoing Program Execution</a>, <a href="#Selecting%20a%20frame">Selecting a frame</a>, <a href="#Looking%20up%20Previous%20Locations">Looking up Previous Locations</a>, <a href="#Undo%20and%20Redo">Undo and Redo</a>, <a href="#Command%20Tool">Command Tool</a>, <a href="#Edit%20Menu">Edit Menu</a>
 
17069
<li><code>Undo Buffer Size</code>: <a href="#Customizing%20Undo">Customizing Undo</a>
 
17070
<li><code>Uniconify When Ready</code>: <a href="#Program%20Stop">Program Stop</a>
 
17071
<li><code>Until</code>: <a href="#Resuming%20Execution">Resuming Execution</a>, <a href="#Command%20Tool">Command Tool</a>, <a href="#Program%20Menu">Program Menu</a>
 
17072
<li><code>Unwatch</code>: <a href="#Tool%20Bar">Tool Bar</a>
 
17073
<li><code>Up</code>: <a href="#Selecting%20a%20frame">Selecting a frame</a>, <a href="#Command%20Tool">Command Tool</a>, <a href="#Status%20Menu">Status Menu</a>
 
17074
<li><code>View</code>: <a href="#Plot%20Appearance">Plot Appearance</a>, <a href="#View%20Menu">View Menu</a>, <a href="#Menu%20Bar">Menu Bar</a>
 
17075
<li><code>Warn if Multiple DDD Instances are Running</code>: <a href="#Multiple%20Instances">Multiple Instances</a>
 
17076
<li><code>Watch</code>: <a href="#Editing%20Watchpoint%20Properties">Editing Watchpoint Properties</a>, <a href="#Setting%20Watchpoints">Setting Watchpoints</a>, <a href="#Tool%20Bar">Tool Bar</a>
 
17077
<li><code>Watchpoints</code>: <a href="#Data%20Menu">Data Menu</a>
 
17078
<li><code>Web Browser</code>: <a href="#Help%20Helpers">Help Helpers</a>
 
17079
<li><code>What Now?</code>: <a href="#Getting%20Help">Getting Help</a>, <a href="#Help%20Menu">Help Menu</a>
 
17080
<li><code>When DDD Crashes</code>: <a href="#Maintenance%20Menu">Maintenance Menu</a>
 
17081
<li><code>Window Layout</code>: <a href="#Window%20Layout">Window Layout</a>
 
17082
<li><code>Writing into executable and core files</code>: <a href="#Patching">Patching</a>
 
17083
<li><code>XDB Console</code>: <a href="#View%20Menu">View Menu</a>
 
17084
<li><code>XDB Reference</code>: <a href="#Getting%20Help">Getting Help</a>, <a href="#Help%20Menu">Help Menu</a>
 
17085
<li><code>XDB Settings</code>: <a href="#Edit%20Menu">Edit Menu</a>
 
17086
   </ul>
 
17087
 
 
17088
<div class="node">
 
17089
<p><hr>
 
17090
<small class=header>
 
17091
Node:<a name="Key%20Index">Key Index</a>,
 
17092
Next:<a rel="next" accesskey="n" href="#Command%20Index">Command Index</a>,
 
17093
Previous:<a rel="previous" accesskey="p" href="#Label%20Index">Label Index</a>,
 
17094
Up:<a rel="up" accesskey="u" href="#Top">Top</a>
 
17095
</small>
 
17096
 
 
17097
<br>
 
17098
</div>
 
17099
 
 
17100
<h2 class="unnumbered">Key Index</h2>
 
17101
 
 
17102
<ul class="index-ky" compact>
 
17103
<li><code>Alt+1</code>: <a href="#View%20Menu">View Menu</a>
 
17104
<li><code>Alt+2</code>: <a href="#View%20Menu">View Menu</a>
 
17105
<li><code>Alt+3</code>: <a href="#View%20Menu">View Menu</a>
 
17106
<li><code>Alt+4</code>: <a href="#Source%20Menu">Source Menu</a>, <a href="#View%20Menu">View Menu</a>
 
17107
<li><code>Alt+8</code>: <a href="#View%20Menu">View Menu</a>
 
17108
<li><code>Alt+9</code>: <a href="#View%20Menu">View Menu</a>
 
17109
<li><code>Alt+A</code>: <a href="#Data%20Menu">Data Menu</a>
 
17110
<li><code>Alt+G</code>: <a href="#Data%20Menu">Data Menu</a>
 
17111
<li><code>Alt+I</code>: <a href="#Source%20Menu">Source Menu</a>
 
17112
<li><code>Alt+L</code>: <a href="#Data%20Menu">Data Menu</a>
 
17113
<li><code>Alt+N</code>: <a href="#Source%20Menu">Source Menu</a>
 
17114
<li><code>Alt+R</code>: <a href="#Data%20Menu">Data Menu</a>
 
17115
<li><code>Alt+U</code>: <a href="#Data%20Menu">Data Menu</a>
 
17116
<li><code>Alt+W</code>: <a href="#Source%20Menu">Source Menu</a>
 
17117
<li><code>Alt+Y</code>: <a href="#Data%20Menu">Data Menu</a>
 
17118
<li><code>Ctrl+,</code>: <a href="#Source%20Menu">Source Menu</a>
 
17119
<li><code>Ctrl+-</code>: <a href="#Data%20Menu">Data Menu</a>
 
17120
<li><code>Ctrl+.</code>: <a href="#Source%20Menu">Source Menu</a>
 
17121
<li><code>Ctrl+/</code>: <a href="#Source%20Menu">Source Menu</a>
 
17122
<li><code>Ctrl+=</code>: <a href="#Data%20Menu">Data Menu</a>
 
17123
<li><code>Ctrl+\</code>: <a href="#Program%20Menu">Program Menu</a>, <a href="#Quitting">Quitting</a>
 
17124
<li><code>Ctrl+A</code>: <a href="#Edit%20Menu">Edit Menu</a>
 
17125
<li><code>Ctrl+B</code>: <a href="#Command%20History">Command History</a>, <a href="#Commands%20Menu">Commands Menu</a>
 
17126
<li><code>Ctrl+C</code>: <a href="#Interrupting">Interrupting</a>, <a href="#Customizing%20the%20Edit%20Menu">Customizing the Edit Menu</a>, <a href="#Program%20Menu">Program Menu</a>, <a href="#Edit%20Menu">Edit Menu</a>, <a href="#Quitting">Quitting</a>
 
17127
<li><code>Ctrl+D</code>: <a href="#Quitting">Quitting</a>
 
17128
<li><code>Ctrl+Down</code>: <a href="#Selecting%20a%20frame">Selecting a frame</a>, <a href="#Status%20Menu">Status Menu</a>
 
17129
<li><code>Ctrl+F</code>: <a href="#Command%20History">Command History</a>, <a href="#Commands%20Menu">Commands Menu</a>
 
17130
<li><code>Ctrl+F1</code>: <a href="#Getting%20Help">Getting Help</a>
 
17131
<li><code>Ctrl+Ins</code>: <a href="#Edit%20Menu">Edit Menu</a>
 
17132
<li><code>Ctrl+L</code>: <a href="#Data%20Menu">Data Menu</a>
 
17133
<li><code>Ctrl+M</code>: <a href="#File%20Menu">File Menu</a>
 
17134
<li><code>Ctrl+N</code>: <a href="#File%20Menu">File Menu</a>
 
17135
<li><code>Ctrl+O</code>: <a href="#File%20Menu">File Menu</a>
 
17136
<li><code>Ctrl+Q</code>: <a href="#File%20Menu">File Menu</a>, <a href="#Quitting">Quitting</a>, <a href="#Invocation">Invocation</a>
 
17137
<li><code>Ctrl+S</code>: <a href="#File%20Menu">File Menu</a>
 
17138
<li><code>Ctrl+Shift+A</code>: <a href="#Customizing%20the%20Edit%20Menu">Customizing the Edit Menu</a>, <a href="#Edit%20Menu">Edit Menu</a>
 
17139
<li><code>Ctrl+U</code>: <a href="#Commands%20Menu">Commands Menu</a>, <a href="#Edit%20Menu">Edit Menu</a>
 
17140
<li><code>Ctrl+Up</code>: <a href="#Selecting%20a%20frame">Selecting a frame</a>, <a href="#Status%20Menu">Status Menu</a>
 
17141
<li><code>Ctrl+V</code>: <a href="#Edit%20Menu">Edit Menu</a>
 
17142
<li><code>Ctrl+W</code>: <a href="#File%20Menu">File Menu</a>
 
17143
<li><code>Ctrl+X</code>: <a href="#Edit%20Menu">Edit Menu</a>
 
17144
<li><code>Ctrl+Y</code>: <a href="#Edit%20Menu">Edit Menu</a>
 
17145
<li><code>Ctrl+Z</code>: <a href="#Edit%20Menu">Edit Menu</a>
 
17146
<li><code>Down</code>: <a href="#Command%20History">Command History</a>, <a href="#Moving%20Displays">Moving Displays</a>, <a href="#Selecting%20Displays">Selecting Displays</a>, <a href="#Commands%20Menu">Commands Menu</a>
 
17147
<li><code>ESC</code>: <a href="#Command%20History">Command History</a>, <a href="#Interrupting">Interrupting</a>, <a href="#Customizing%20the%20Edit%20Menu">Customizing the Edit Menu</a>
 
17148
<li><code>Esc</code>: <a href="#Commands%20Menu">Commands Menu</a>, <a href="#Program%20Menu">Program Menu</a>
 
17149
<li><code>ESC</code>: <a href="#Quitting">Quitting</a>
 
17150
<li><code>F1</code>: <a href="#Getting%20Help">Getting Help</a>
 
17151
<li><code>F12</code>: <a href="#Maintenance%20Menu">Maintenance Menu</a>
 
17152
<li><code>F2</code>: <a href="#Program%20Menu">Program Menu</a>
 
17153
<li><code>F3</code>: <a href="#Program%20Menu">Program Menu</a>
 
17154
<li><code>F4</code>: <a href="#Program%20Menu">Program Menu</a>
 
17155
<li><code>F5</code>: <a href="#Program%20Menu">Program Menu</a>
 
17156
<li><code>F6</code>: <a href="#Program%20Menu">Program Menu</a>
 
17157
<li><code>F7</code>: <a href="#Program%20Menu">Program Menu</a>
 
17158
<li><code>F8</code>: <a href="#Program%20Menu">Program Menu</a>
 
17159
<li><code>F9</code>: <a href="#Program%20Menu">Program Menu</a>
 
17160
<li><code>Home</code>: <a href="#Customizing%20the%20Edit%20Menu">Customizing the Edit Menu</a>
 
17161
<li><code>Left</code>: <a href="#Moving%20Displays">Moving Displays</a>, <a href="#Selecting%20Displays">Selecting Displays</a>
 
17162
<li><code>Return</code>: <a href="#Command%20History">Command History</a>, <a href="#Commands%20Menu">Commands Menu</a>
 
17163
<li><code>Right</code>: <a href="#Moving%20Displays">Moving Displays</a>, <a href="#Selecting%20Displays">Selecting Displays</a>
 
17164
<li><code>Shift</code>: <a href="#Selecting%20Displays">Selecting Displays</a>
 
17165
<li><code>Shift+Ctrl+L</code>: <a href="#Source%20Menu">Source Menu</a>
 
17166
<li><code>Shift+Ctrl+U</code>: <a href="#Commands%20Menu">Commands Menu</a>
 
17167
<li><code>Shift+Ctrl+V</code>: <a href="#Source%20Menu">Source Menu</a>
 
17168
<li><code>Shift+Del</code>: <a href="#Edit%20Menu">Edit Menu</a>
 
17169
<li><code>Shift+F5</code>: <a href="#Program%20Menu">Program Menu</a>
 
17170
<li><code>Shift+F6</code>: <a href="#Program%20Menu">Program Menu</a>
 
17171
<li><code>Shift+F9</code>: <a href="#Program%20Menu">Program Menu</a>
 
17172
<li><code>Shift+Ins</code>: <a href="#Edit%20Menu">Edit Menu</a>
 
17173
<li><code>TAB</code>: <a href="#Tool%20Bar">Tool Bar</a>
 
17174
<li><code>Tab</code>: <a href="#Commands%20Menu">Commands Menu</a>
 
17175
<li><code>Up</code>: <a href="#Command%20History">Command History</a>, <a href="#Moving%20Displays">Moving Displays</a>, <a href="#Selecting%20Displays">Selecting Displays</a>, <a href="#Commands%20Menu">Commands Menu</a>
 
17176
   </ul>
 
17177
 
 
17178
<div class="node">
 
17179
<p><hr>
 
17180
<small class=header>
 
17181
Node:<a name="Command%20Index">Command Index</a>,
 
17182
Next:<a rel="next" accesskey="n" href="#Resource%20Index">Resource Index</a>,
 
17183
Previous:<a rel="previous" accesskey="p" href="#Key%20Index">Key Index</a>,
 
17184
Up:<a rel="up" accesskey="u" href="#Top">Top</a>
 
17185
</small>
 
17186
 
 
17187
<br>
 
17188
</div>
 
17189
 
 
17190
<h2 class="unnumbered">Command Index</h2>
 
17191
 
 
17192
<ul class="index-cm" compact>
 
17193
<li><code>cont</code>: <a href="#Undoing%20Program%20Execution">Undoing Program Execution</a>, <a href="#Customizing%20Grab%20Checking">Customizing Grab Checking</a>
 
17194
<li><code>contuntil</code>: <a href="#GDB%20Argument%20Commands">GDB Argument Commands</a>
 
17195
<li><code>directory</code>: <a href="#Source%20Path">Source Path</a>
 
17196
<li><code>down</code>: <a href="#Selecting%20a%20frame">Selecting a frame</a>
 
17197
<li><code>file</code>: <a href="#Remote%20Program">Remote Program</a>
 
17198
<li><code>gcore</code>: <a href="#Customizing%20Sessions">Customizing Sessions</a>
 
17199
<li><code>gd</code>: <a href="#Commands%20with%20Other%20Debuggers">Commands with Other Debuggers</a>
 
17200
<li><code>graph apply theme</code>: <a href="#Applying%20Data%20Themes%20to%20Several%20Values">Applying Data Themes to Several Values</a>
 
17201
<li><code>graph disable display</code>: <a href="#Showing%20and%20Hiding%20Details">Showing and Hiding Details</a>
 
17202
<li><code>graph display</code>: <a href="#Displaying%20Program%20Status">Displaying Program Status</a>, <a href="#Creating%20Single%20Displays">Creating Single Displays</a>
 
17203
<li><code>graph enable display</code>: <a href="#Showing%20and%20Hiding%20Details">Showing and Hiding Details</a>
 
17204
<li><code>graph plot</code>: <a href="#Plotting%20Arrays">Plotting Arrays</a>
 
17205
<li><code>graph refresh</code>: <a href="#Refreshing%20the%20Data%20Window">Refreshing the Data Window</a>
 
17206
<li><code>graph toggle theme</code>: <a href="#Applying%20Data%20Themes%20to%20Several%20Values">Applying Data Themes to Several Values</a>
 
17207
<li><code>graph unapply theme</code>: <a href="#Applying%20Data%20Themes%20to%20Several%20Values">Applying Data Themes to Several Values</a>
 
17208
<li><code>gunzip</code>: <a href="#Help%20Helpers">Help Helpers</a>
 
17209
<li><code>gzip</code>: <a href="#Help%20Helpers">Help Helpers</a>
 
17210
<li><code>hbreak</code>: <a href="#Hardware-Assisted%20Breakpoints">Hardware-Assisted Breakpoints</a>
 
17211
<li><code>help</code>: <a href="#Getting%20Help">Getting Help</a>
 
17212
<li><code>kill</code>: <a href="#Customizing%20Grab%20Checking">Customizing Grab Checking</a>
 
17213
<li><code>mwm</code>: <a href="#Gnuplot%20Invocation">Gnuplot Invocation</a>
 
17214
<li><code>print</code>: <a href="#Printing%20Values">Printing Values</a>
 
17215
<li><code>quit</code>: <a href="#Customizing%20Grab%20Checking">Customizing Grab Checking</a>, <a href="#Quitting">Quitting</a>
 
17216
<li><code>remsh</code>: <a href="#Remote%20Debugger">Remote Debugger</a>
 
17217
<li><code>replot</code>: <a href="#Entering%20Plotting%20Commands">Entering Plotting Commands</a>
 
17218
<li><code>rsh</code>: <a href="#Remote%20Debugger">Remote Debugger</a>
 
17219
<li><code>run</code>: <a href="#Starting%20Program%20Execution">Starting Program Execution</a>
 
17220
<li><code>set environment</code>: <a href="#Environment">Environment</a>
 
17221
<li><code>set output</code>: <a href="#Entering%20Plotting%20Commands">Entering Plotting Commands</a>
 
17222
<li><code>set term</code>: <a href="#Entering%20Plotting%20Commands">Entering Plotting Commands</a>
 
17223
<li><code>target remote</code>: <a href="#Remote%20Program">Remote Program</a>
 
17224
<li><code>thbreak</code>: <a href="#Hardware-Assisted%20Breakpoints">Hardware-Assisted Breakpoints</a>
 
17225
<li><code>tty</code>: <a href="#Debugger%20Communication">Debugger Communication</a>
 
17226
<li><code>unset environment</code>: <a href="#Environment">Environment</a>
 
17227
<li><code>up</code>: <a href="#Selecting%20a%20frame">Selecting a frame</a>
 
17228
<li><code>zcat</code>: <a href="#Help%20Helpers">Help Helpers</a>
 
17229
   </ul>
 
17230
 
 
17231
<div class="node">
 
17232
<p><hr>
 
17233
<small class=header>
 
17234
Node:<a name="Resource%20Index">Resource Index</a>,
 
17235
Next:<a rel="next" accesskey="n" href="#File%20Index">File Index</a>,
 
17236
Previous:<a rel="previous" accesskey="p" href="#Command%20Index">Command Index</a>,
 
17237
Up:<a rel="up" accesskey="u" href="#Top">Top</a>
 
17238
</small>
 
17239
 
 
17240
<br>
 
17241
</div>
 
17242
 
 
17243
<h2 class="unnumbered">Resource Index</h2>
 
17244
 
 
17245
<ul class="index-vr" compact>
 
17246
<li><code>activeButtonColorKey</code>: <a href="#Customizing%20the%20Tool%20Bar">Customizing the Tool Bar</a>
 
17247
<li><code>align2dArrays</code>: <a href="#Arrays%20as%20Tables">Arrays as Tables</a>
 
17248
<li><code>appDefaultsVersion</code>: <a href="#Customizing%20Diagnostics">Customizing Diagnostics</a>
 
17249
<li><code>arrayOrientation</code>: <a href="#Rotating%20Displays">Rotating Displays</a>
 
17250
<li><code>autoCloseDataWindow</code>: <a href="#Display%20Resources">Display Resources</a>
 
17251
<li><code>autoDebugger</code>: <a href="#Debugger%20Invocation">Debugger Invocation</a>
 
17252
<li><code>autoRaiseMenu</code>: <a href="#Auto-Raise%20Menus">Auto-Raise Menus</a>
 
17253
<li><code>autoRaiseMenuDelay</code>: <a href="#Auto-Raise%20Menus">Auto-Raise Menus</a>
 
17254
<li><code>autoRaiseTool</code>: <a href="#Customizing%20Tool%20Position">Customizing Tool Position</a>
 
17255
<li><code>bash</code>: <a href="#Bash%20Initialization">Bash Initialization</a>
 
17256
<li><code>bashDisplayShortcuts</code>: <a href="#Display%20Shortcuts">Display Shortcuts</a>
 
17257
<li><code>bashInitCommands</code>: <a href="#Bash%20Initialization">Bash Initialization</a>
 
17258
<li><code>blockTTYInput</code>: <a href="#Debugger%20Communication">Debugger Communication</a>
 
17259
<li><code>break_at</code>: <a href="#Images">Images</a>
 
17260
<li><code>bufferGDBOutput</code>: <a href="#Debugger%20Communication">Debugger Communication</a>
 
17261
<li><code>bumpDisplays</code>: <a href="#Display%20Resources">Display Resources</a>
 
17262
<li><code>buttonCaptionGeometry</code>: <a href="#Customizing%20the%20Tool%20Bar">Customizing the Tool Bar</a>
 
17263
<li><code>buttonCaptions</code>: <a href="#Customizing%20the%20Tool%20Bar">Customizing the Tool Bar</a>
 
17264
<li><code>buttonColorKey</code>: <a href="#Customizing%20the%20Tool%20Bar">Customizing the Tool Bar</a>
 
17265
<li><code>buttonDocs</code>: <a href="#Button%20tips">Button tips</a>
 
17266
<li><code>buttonImageGeometry</code>: <a href="#Customizing%20the%20Tool%20Bar">Customizing the Tool Bar</a>
 
17267
<li><code>buttonImages</code>: <a href="#Customizing%20the%20Tool%20Bar">Customizing the Tool Bar</a>
 
17268
<li><code>buttonTips</code>: <a href="#Button%20tips">Button tips</a>
 
17269
<li><code>cacheGlyphImages</code>: <a href="#Customizing%20Glyphs">Customizing Glyphs</a>
 
17270
<li><code>cacheMachineCode</code>: <a href="#Customizing%20Machine%20Code">Customizing Machine Code</a>
 
17271
<li><code>cacheSourceFiles</code>: <a href="#Customizing%20Source%20Lookup">Customizing Source Lookup</a>
 
17272
<li><code>checkConfiguration</code>: <a href="#Customizing%20Diagnostics">Customizing Diagnostics</a>
 
17273
<li><code>checkGrabDelay</code>: <a href="#Customizing%20Grab%20Checking">Customizing Grab Checking</a>
 
17274
<li><code>checkGrabs</code>: <a href="#Customizing%20Grab%20Checking">Customizing Grab Checking</a>
 
17275
<li><code>checkOptions</code>: <a href="#Multiple%20Instances">Multiple Instances</a>
 
17276
<li><code>CLASSPATH</code>: <a href="#Source%20Path">Source Path</a>
 
17277
<li><code>clear_at</code>: <a href="#Images">Images</a>
 
17278
<li><code>clusterDisplays</code>: <a href="#Display%20Resources">Display Resources</a>
 
17279
<li><code>commandToolBar</code>: <a href="#Disabling%20the%20Command%20Tool">Disabling the Command Tool</a>
 
17280
<li><code>commonToolBar</code>: <a href="#Window%20Layout">Window Layout</a>
 
17281
<li><code>consoleButtons</code>: <a href="#Customizing%20Buttons">Customizing Buttons</a>
 
17282
<li><code>consoleHasFocus</code>: <a href="#Typing%20in%20the%20Source%20Window">Typing in the Source Window</a>
 
17283
<li><code>contInterruptDelay</code>: <a href="#Debugger%20Communication">Debugger Communication</a>
 
17284
<li><code>cutCopyPasteBindings</code>: <a href="#Customizing%20the%20Edit%20Menu">Customizing the Edit Menu</a>
 
17285
<li><code>dataButtons</code>: <a href="#Customizing%20Buttons">Customizing Buttons</a>
 
17286
<li><code>dataFont</code>: <a href="#Customizing%20Fonts">Customizing Fonts</a>
 
17287
<li><code>dataFontSize</code>: <a href="#Customizing%20Fonts">Customizing Fonts</a>
 
17288
<li><code>dbxDisplayShortcuts</code>: <a href="#Display%20Shortcuts">Display Shortcuts</a>
 
17289
<li><code>dbxInitCommands</code>: <a href="#DBX%20Initialization">DBX Initialization</a>
 
17290
<li><code>dbxSettings</code>: <a href="#DBX%20Initialization">DBX Initialization</a>
 
17291
<li><code>ddd</code>: <a href="#Images">Images</a>
 
17292
<li><code>DDD</code>: <a href="#Environment">Environment</a>
 
17293
<li><code>DDD_NO_SIGNAL_HANDLERS</code>: <a href="#Debugging%20%3csmall%3eDDD%3c%2fsmall%3e">Debugging <small>DDD</small></a>
 
17294
<li><code>DDD_SESSION</code>: <a href="#Resources">Resources</a>
 
17295
<li><code>DDD_SESSIONS</code>: <a href="#Customizing%20Sessions">Customizing Sessions</a>
 
17296
<li><code>DDD_STATE</code>: <a href="#Resources">Resources</a>
 
17297
<li><code>dddinitVersion</code>: <a href="#Customizing%20Diagnostics">Customizing Diagnostics</a>
 
17298
<li><code>debugCoreDumps</code>: <a href="#Customizing%20Diagnostics">Customizing Diagnostics</a>
 
17299
<li><code>debugger</code>: <a href="#Debugger%20Invocation">Debugger Invocation</a>
 
17300
<li><code>debuggerCommand</code>: <a href="#Debugger%20Invocation">Debugger Invocation</a>
 
17301
<li><code>decorateTool</code>: <a href="#Customizing%20Tool%20Decoration">Customizing Tool Decoration</a>
 
17302
<li><code>defaultFont</code>: <a href="#Customizing%20Fonts">Customizing Fonts</a>
 
17303
<li><code>defaultFontSize</code>: <a href="#Customizing%20Fonts">Customizing Fonts</a>
 
17304
<li><code>delete</code>: <a href="#Images">Images</a>
 
17305
<li><code>deleteAliasDisplays</code>: <a href="#Shared%20Structures">Shared Structures</a>
 
17306
<li><code>detectAliases</code>: <a href="#Shared%20Structures">Shared Structures</a>
 
17307
<li><code>disable</code>: <a href="#Images">Images</a>
 
17308
<li><code>disassemble</code>: <a href="#Customizing%20Machine%20Code">Customizing Machine Code</a>
 
17309
<li><code>display</code>: <a href="#Images">Images</a>
 
17310
<li><code>DISPLAY</code>: <a href="#Remote%20Host">Remote Host</a>, <a href="#X%20Options">X Options</a>
 
17311
<li><code>displayGlyphs</code>: <a href="#Customizing%20Glyphs">Customizing Glyphs</a>
 
17312
<li><code>displayLineNumbers</code>: <a href="#Customizing%20Source%20Appearance">Customizing Source Appearance</a>
 
17313
<li><code>displayPlacement</code>: <a href="#Placement">Placement</a>
 
17314
<li><code>displayTimeout</code>: <a href="#Debugger%20Communication">Debugger Communication</a>
 
17315
<li><code>dispref</code>: <a href="#Images">Images</a>
 
17316
<li><code>drag_arrow</code>: <a href="#Images">Images</a>
 
17317
<li><code>drag_cond</code>: <a href="#Images">Images</a>
 
17318
<li><code>drag_stop</code>: <a href="#Images">Images</a>
 
17319
<li><code>drag_temp</code>: <a href="#Images">Images</a>
 
17320
<li><code>dumpCore</code>: <a href="#Customizing%20Diagnostics">Customizing Diagnostics</a>
 
17321
<li><code>editCommand</code>: <a href="#Customizing%20Editing">Customizing Editing</a>
 
17322
<li><code>EDITOR</code>: <a href="#Customizing%20Editing">Customizing Editing</a>
 
17323
<li><code>enable</code>: <a href="#Images">Images</a>
 
17324
<li><code>expandRepeatedValues</code>: <a href="#Repeated%20Values">Repeated Values</a>
 
17325
<li><code>filterFiles</code>: <a href="#Customizing%20File%20Filtering">Customizing File Filtering</a>
 
17326
<li><code>find_backward</code>: <a href="#Images">Images</a>
 
17327
<li><code>find_forward</code>: <a href="#Images">Images</a>
 
17328
<li><code>findCaseSensitive</code>: <a href="#Customizing%20Searching">Customizing Searching</a>
 
17329
<li><code>findWordsOnly</code>: <a href="#Customizing%20Searching">Customizing Searching</a>
 
17330
<li><code>fixedWidthFont</code>: <a href="#Customizing%20Fonts">Customizing Fonts</a>
 
17331
<li><code>fixedWidthFontSize</code>: <a href="#Customizing%20Fonts">Customizing Fonts</a>
 
17332
<li><code>flatDialogButtons</code>: <a href="#Customizing%20the%20Tool%20Bar">Customizing the Tool Bar</a>
 
17333
<li><code>flatToolbarButtons</code>: <a href="#Customizing%20the%20Tool%20Bar">Customizing the Tool Bar</a>
 
17334
<li><code>fontSelectCommand</code>: <a href="#Customizing%20Fonts">Customizing Fonts</a>
 
17335
<li><code>gdbDisplayShortcuts</code>: <a href="#Display%20Shortcuts">Display Shortcuts</a>
 
17336
<li><code>gdbInitCommands</code>: <a href="#GDB%20Initialization">GDB Initialization</a>
 
17337
<li><code>gdbSettings</code>: <a href="#GDB%20Initialization">GDB Initialization</a>
 
17338
<li><code>getCoreCommand</code>: <a href="#Customizing%20Sessions">Customizing Sessions</a>
 
17339
<li><code>globalTabCompletion</code>: <a href="#Command%20Completion">Command Completion</a>
 
17340
<li><code>glyphUpdateDelay</code>: <a href="#Customizing%20Glyphs">Customizing Glyphs</a>
 
17341
<li><code>grabAction</code>: <a href="#Customizing%20Grab%20Checking">Customizing Grab Checking</a>
 
17342
<li><code>grabActionDelay</code>: <a href="#Customizing%20Grab%20Checking">Customizing Grab Checking</a>
 
17343
<li><code>grey_arrow</code>: <a href="#Images">Images</a>
 
17344
<li><code>grey_cond</code>: <a href="#Images">Images</a>
 
17345
<li><code>grey_stop</code>: <a href="#Images">Images</a>
 
17346
<li><code>grey_temp</code>: <a href="#Images">Images</a>
 
17347
<li><code>groupIconify</code>: <a href="#Icons">Icons</a>
 
17348
<li><code>hide</code>: <a href="#Images">Images</a>
 
17349
<li><code>hideInactiveDisplays</code>: <a href="#Display%20Resources">Display Resources</a>
 
17350
<li><code>indentCode</code>: <a href="#Customizing%20Machine%20Code">Customizing Machine Code</a>
 
17351
<li><code>indentScript</code>: <a href="#Customizing%20Source%20Appearance">Customizing Source Appearance</a>
 
17352
<li><code>indentSource</code>: <a href="#Customizing%20Source%20Appearance">Customizing Source Appearance</a>
 
17353
<li><code>initSymbols</code>: <a href="#Finding%20a%20Place%20to%20Start">Finding a Place to Start</a>
 
17354
<li><code>jdbDisplayShortcuts</code>: <a href="#Display%20Shortcuts">Display Shortcuts</a>
 
17355
<li><code>jdbInitCommands</code>: <a href="#JDB%20Initialization">JDB Initialization</a>
 
17356
<li><code>jdbSettings</code>: <a href="#JDB%20Initialization">JDB Initialization</a>
 
17357
<li><code>labelDelimiter</code>: <a href="#Customizing%20Buttons">Customizing Buttons</a>
 
17358
<li><code>lessTifVersion</code>: <a href="#LessTif">LessTif</a>
 
17359
<li><code>lineBufferedConsole</code>: <a href="#Input%2fOutput">Input/Output</a>
 
17360
<li><code>lineNumberWidth</code>: <a href="#Customizing%20Source%20Appearance">Customizing Source Appearance</a>
 
17361
<li><code>linesAboveCursor</code>: <a href="#Customizing%20Source%20Scrolling">Customizing Source Scrolling</a>
 
17362
<li><code>linesBelowCursor</code>: <a href="#Customizing%20Source%20Scrolling">Customizing Source Scrolling</a>
 
17363
<li><code>listCoreCommand</code>: <a href="#Customizing%20Remote%20Debugging">Customizing Remote Debugging</a>
 
17364
<li><code>listDirCommand</code>: <a href="#Customizing%20Remote%20Debugging">Customizing Remote Debugging</a>
 
17365
<li><code>listExecCommand</code>: <a href="#Customizing%20Remote%20Debugging">Customizing Remote Debugging</a>
 
17366
<li><code>listSourceCommand</code>: <a href="#Customizing%20Remote%20Debugging">Customizing Remote Debugging</a>
 
17367
<li><code>lookup</code>: <a href="#Images">Images</a>
 
17368
<li><code>maintenance</code>: <a href="#Customizing%20Diagnostics">Customizing Diagnostics</a>
 
17369
<li><code>maketemp</code>: <a href="#Images">Images</a>
 
17370
<li><code>maxDisassemble</code>: <a href="#Customizing%20Machine%20Code">Customizing Machine Code</a>
 
17371
<li><code>maxGlyphs</code>: <a href="#Customizing%20Glyphs">Customizing Glyphs</a>
 
17372
<li><code>maxUndoDepth</code>: <a href="#Customizing%20Undo">Customizing Undo</a>
 
17373
<li><code>maxUndoSize</code>: <a href="#Customizing%20Undo">Customizing Undo</a>
 
17374
<li><code>new_break</code>: <a href="#Images">Images</a>
 
17375
<li><code>new_display</code>: <a href="#Images">Images</a>
 
17376
<li><code>new_watch</code>: <a href="#Images">Images</a>
 
17377
<li><code>openDataWindow</code>: <a href="#Toggling%20Windows">Toggling Windows</a>
 
17378
<li><code>openDebuggerConsole</code>: <a href="#Toggling%20Windows">Toggling Windows</a>
 
17379
<li><code>openSelection</code>: <a href="#Opening%20the%20Selection">Opening the Selection</a>
 
17380
<li><code>openSourceWindow</code>: <a href="#Toggling%20Windows">Toggling Windows</a>
 
17381
<li><code>PAGER</code>: <a href="#Customizing%20Diagnostics">Customizing Diagnostics</a>, <a href="#Environment">Environment</a>
 
17382
<li><code>pannedGraphEditor</code>: <a href="#Scrolling%20Data">Scrolling Data</a>
 
17383
<li><code>paperSize</code>: <a href="#Printing%20the%20Graph">Printing the Graph</a>
 
17384
<li><code>perlDisplayShortcuts</code>: <a href="#Display%20Shortcuts">Display Shortcuts</a>
 
17385
<li><code>perlInitCommands</code>: <a href="#Perl%20Initialization">Perl Initialization</a>
 
17386
<li><code>perlSettings</code>: <a href="#Perl%20Initialization">Perl Initialization</a>
 
17387
<li><code>plain_arrow</code>: <a href="#Images">Images</a>
 
17388
<li><code>plain_cond</code>: <a href="#Images">Images</a>
 
17389
<li><code>plain_stop</code>: <a href="#Images">Images</a>
 
17390
<li><code>plain_temp</code>: <a href="#Images">Images</a>
 
17391
<li><code>plot2dSettings</code>: <a href="#Gnuplot%20Settings">Gnuplot Settings</a>
 
17392
<li><code>plot3dSettings</code>: <a href="#Gnuplot%20Settings">Gnuplot Settings</a>
 
17393
<li><code>plotCommand</code>: <a href="#Gnuplot%20Invocation">Gnuplot Invocation</a>
 
17394
<li><code>plotInitCommands</code>: <a href="#Gnuplot%20Settings">Gnuplot Settings</a>
 
17395
<li><code>plotTermType</code>: <a href="#Gnuplot%20Invocation">Gnuplot Invocation</a>
 
17396
<li><code>plotWindowClass</code>: <a href="#Gnuplot%20Invocation">Gnuplot Invocation</a>
 
17397
<li><code>plotWindowDelay</code>: <a href="#Gnuplot%20Invocation">Gnuplot Invocation</a>
 
17398
<li><code>popdownHistorySize</code>: <a href="#Text%20Fields">Text Fields</a>
 
17399
<li><code>positionTimeout</code>: <a href="#Debugger%20Communication">Debugger Communication</a>
 
17400
<li><code>print</code>: <a href="#Images">Images</a>
 
17401
<li><code>printCommand</code>: <a href="#Printing%20the%20Graph">Printing the Graph</a>
 
17402
<li><code>properties</code>: <a href="#Images">Images</a>
 
17403
<li><code>psCommand</code>: <a href="#Customizing%20Attaching%20to%20Processes">Customizing Attaching to Processes</a>
 
17404
<li><code>pydbDisplayShortcuts</code>: <a href="#Display%20Shortcuts">Display Shortcuts</a>
 
17405
<li><code>pydbInitCommands</code>: <a href="#PYDB%20Initialization">PYDB Initialization</a>
 
17406
<li><code>pydbSettings</code>: <a href="#PYDB%20Initialization">PYDB Initialization</a>
 
17407
<li><code>questionTimeout</code>: <a href="#Debugger%20Communication">Debugger Communication</a>
 
17408
<li><code>rotate</code>: <a href="#Images">Images</a>
 
17409
<li><code>rshCommand</code>: <a href="#Customizing%20Remote%20Debugging">Customizing Remote Debugging</a>
 
17410
<li><code>runInterruptDelay</code>: <a href="#Debugger%20Communication">Debugger Communication</a>
 
17411
<li><code>saveHistoryOnExit</code>: <a href="#Command%20History">Command History</a>
 
17412
<li><code>saveOptionsOnExit</code>: <a href="#Saving%20Options">Saving Options</a>
 
17413
<li><code>selectAllBindings</code>: <a href="#Customizing%20the%20Edit%20Menu">Customizing the Edit Menu</a>
 
17414
<li><code>separateDataWindow</code>: <a href="#Window%20Layout">Window Layout</a>
 
17415
<li><code>separateExecWindow</code>: <a href="#Customizing%20the%20Execution%20Window">Customizing the Execution Window</a>
 
17416
<li><code>separateSourceWindow</code>: <a href="#Window%20Layout">Window Layout</a>
 
17417
<li><code>set</code>: <a href="#Images">Images</a>
 
17418
<li><code>SHELL</code>: <a href="#Arguments">Arguments</a>
 
17419
<li><code>show</code>: <a href="#Images">Images</a>
 
17420
<li><code>showBaseDisplayTitles</code>: <a href="#Display%20Resources">Display Resources</a>
 
17421
<li><code>showConfiguration</code>: <a href="#Customizing%20Diagnostics">Customizing Diagnostics</a>
 
17422
<li><code>showDependentDisplayTitles</code>: <a href="#Display%20Resources">Display Resources</a>
 
17423
<li><code>showFonts</code>: <a href="#Customizing%20Diagnostics">Customizing Diagnostics</a>
 
17424
<li><code>showInvocation</code>: <a href="#Customizing%20Diagnostics">Customizing Diagnostics</a>
 
17425
<li><code>showLicense</code>: <a href="#Customizing%20Diagnostics">Customizing Diagnostics</a>
 
17426
<li><code>showManual</code>: <a href="#Customizing%20Diagnostics">Customizing Diagnostics</a>
 
17427
<li><code>showMemberNames</code>: <a href="#Rotating%20Displays">Rotating Displays</a>
 
17428
<li><code>showNews</code>: <a href="#Customizing%20Diagnostics">Customizing Diagnostics</a>
 
17429
<li><code>showVersion</code>: <a href="#Customizing%20Diagnostics">Customizing Diagnostics</a>
 
17430
<li><code>signal_arrow</code>: <a href="#Images">Images</a>
 
17431
<li><code>sortPopdownHistory</code>: <a href="#Text%20Fields">Text Fields</a>
 
17432
<li><code>sourceButtons</code>: <a href="#Customizing%20Buttons">Customizing Buttons</a>
 
17433
<li><code>sourceEditing</code>: <a href="#In-Place%20Editing">In-Place Editing</a>
 
17434
<li><code>sourceInitCommands</code>: <a href="#GDB%20Initialization">GDB Initialization</a>
 
17435
<li><code>splashScreen</code>: <a href="#Splash%20Screen">Splash Screen</a>
 
17436
<li><code>splashScreenColorKey</code>: <a href="#Splash%20Screen">Splash Screen</a>
 
17437
<li><code>startupTipCount</code>: <a href="#Tip%20of%20the%20day">Tip of the day</a>
 
17438
<li><code>startupTips</code>: <a href="#Tip%20of%20the%20day">Tip of the day</a>
 
17439
<li><code>statusAtBottom</code>: <a href="#Window%20Layout">Window Layout</a>
 
17440
<li><code>stickyTool</code>: <a href="#Customizing%20Tool%20Position">Customizing Tool Position</a>
 
17441
<li><code>stopAndContinue</code>: <a href="#Debugger%20Communication">Debugger Communication</a>
 
17442
<li><code>structOrientation</code>: <a href="#Rotating%20Displays">Rotating Displays</a>
 
17443
<li><code>suppressTheme</code>: <a href="#Display%20Resources">Display Resources</a>
 
17444
<li><code>suppressWarnings</code>: <a href="#Customizing%20Diagnostics">Customizing Diagnostics</a>, <a href="#X%20Warnings">X Warnings</a>
 
17445
<li><code>synchronousDebugger</code>: <a href="#Debugger%20Communication">Debugger Communication</a>
 
17446
<li><code>tabWidth</code>: <a href="#Customizing%20Source%20Appearance">Customizing Source Appearance</a>
 
17447
<li><code>TERM</code>: <a href="#Customizing%20the%20Execution%20Window">Customizing the Execution Window</a>, <a href="#Environment">Environment</a>
 
17448
<li><code>TERMCAP</code>: <a href="#Environment">Environment</a>
 
17449
<li><code>termCommand</code>: <a href="#Customizing%20the%20Execution%20Window">Customizing the Execution Window</a>
 
17450
<li><code>terminateOnEOF</code>: <a href="#Debugger%20Communication">Debugger Communication</a>
 
17451
<li><code>termType</code>: <a href="#Customizing%20the%20Execution%20Window">Customizing the Execution Window</a>
 
17452
<li><code>themes</code>: <a href="#Display%20Resources">Display Resources</a>
 
17453
<li><code>tip</code>: <a href="#Tip%20of%20the%20day">Tip of the day</a>
 
17454
<li><code>toolbarsAtBottom</code>: <a href="#Window%20Layout">Window Layout</a>
 
17455
<li><code>toolButtons</code>: <a href="#Customizing%20Buttons">Customizing Buttons</a>
 
17456
<li><code>toolRightOffset</code>: <a href="#Customizing%20Tool%20Position">Customizing Tool Position</a>
 
17457
<li><code>toolTopOffset</code>: <a href="#Customizing%20Tool%20Position">Customizing Tool Position</a>
 
17458
<li><code>trace</code>: <a href="#Customizing%20Diagnostics">Customizing Diagnostics</a>
 
17459
<li><code>typedAliases</code>: <a href="#Shared%20Structures">Shared Structures</a>
 
17460
<li><code>uncompressCommand</code>: <a href="#Help%20Helpers">Help Helpers</a>
 
17461
<li><code>undisplay</code>: <a href="#Images">Images</a>
 
17462
<li><code>uniconifyWhenReady</code>: <a href="#Icons">Icons</a>
 
17463
<li><code>unwatch</code>: <a href="#Images">Images</a>
 
17464
<li><code>useSourcePath</code>: <a href="#Customizing%20Source%20Lookup">Customizing Source Lookup</a>
 
17465
<li><code>useTTYCommand</code>: <a href="#Debugger%20Communication">Debugger Communication</a>
 
17466
<li><code>valueDocs</code>: <a href="#Value%20Tips">Value Tips</a>
 
17467
<li><code>valueTips</code>: <a href="#Value%20Tips">Value Tips</a>
 
17468
<li><code>variableWidthFont</code>: <a href="#Customizing%20Fonts">Customizing Fonts</a>
 
17469
<li><code>variableWidthFontSize</code>: <a href="#Customizing%20Fonts">Customizing Fonts</a>
 
17470
<li><code>verifyButtons</code>: <a href="#Customizing%20Buttons">Customizing Buttons</a>
 
17471
<li><code>vslBaseDefs</code>: <a href="#VSL%20Resources">VSL Resources</a>
 
17472
<li><code>vslDefs</code>: <a href="#VSL%20Resources">VSL Resources</a>
 
17473
<li><code>vslLibrary</code>: <a href="#VSL%20Resources">VSL Resources</a>
 
17474
<li><code>vslPath</code>: <a href="#VSL%20Resources">VSL Resources</a>
 
17475
<li><code>warnIfLocked</code>: <a href="#Multiple%20Instances">Multiple Instances</a>
 
17476
<li><code>watch</code>: <a href="#Images">Images</a>
 
17477
<li><code>WWWBROWSER</code>: <a href="#Help%20Helpers">Help Helpers</a>
 
17478
<li><code>wwwCommand</code>: <a href="#Help%20Helpers">Help Helpers</a>
 
17479
<li><code>wwwPage</code>: <a href="#Help%20Helpers">Help Helpers</a>
 
17480
<li><code>xdbDisplayShortcuts</code>: <a href="#Display%20Shortcuts">Display Shortcuts</a>
 
17481
<li><code>xdbInitCommands</code>: <a href="#XDB%20Initialization">XDB Initialization</a>
 
17482
<li><code>xdbSettings</code>: <a href="#XDB%20Initialization">XDB Initialization</a>
 
17483
<li><code>XEDITOR</code>: <a href="#Customizing%20Editing">Customizing Editing</a>
 
17484
   </ul>
 
17485
 
 
17486
<div class="node">
 
17487
<p><hr>
 
17488
<small class=header>
 
17489
Node:<a name="File%20Index">File Index</a>,
 
17490
Next:<a rel="next" accesskey="n" href="#Concept%20Index">Concept Index</a>,
 
17491
Previous:<a rel="previous" accesskey="p" href="#Resource%20Index">Resource Index</a>,
 
17492
Up:<a rel="up" accesskey="u" href="#Top">Top</a>
 
17493
</small>
 
17494
 
 
17495
<br>
 
17496
</div>
 
17497
 
 
17498
<h2 class="unnumbered">File Index</h2>
 
17499
 
 
17500
<ul class="index-fl" compact>
 
17501
<li><code>.emacs</code>: <a href="#Integrating%20%3csmall%3eDDD%3c%2fsmall%3e">Integrating <small>DDD</small></a>
 
17502
<li><code>.gdbinit</code>: <a href="#Debugging%20%3csmall%3eDDD%3c%2fsmall%3e">Debugging <small>DDD</small></a>, <a href="#Remote%20Program">Remote Program</a>, <a href="#GDB%20Options">GDB Options</a>
 
17503
<li><code>ChangeLog</code>: <a href="#Contributors">Contributors</a>
 
17504
<li><code>dbx</code>: <a href="#Options">Options</a>
 
17505
<li><code>Ddd</code>: <a href="#Application%20Defaults">Application Defaults</a>, <a href="#More%20Customizations">More Customizations</a>, <a href="#Resources">Resources</a>
 
17506
<li><code>ddd-3.3.9-test2-html-manual.tar.gz</code>: <a href="#About%20this%20Manual">About this Manual</a>
 
17507
<li><code>ddd-3.3.9-test2-pics.tar.gz</code>: <a href="#About%20this%20Manual">About this Manual</a>
 
17508
<li><code>ddd-3.3.9-test2.tar.gz</code>: <a href="#About%20this%20Manual">About this Manual</a>
 
17509
<li><code>ddd-</code><var>version</var><code>-html-manual.tar.gz</code>: <a href="#Getting%20%3csmall%3eDDD%3c%2fsmall%3e">Getting <small>DDD</small></a>
 
17510
<li><code>ddd-</code><var>version</var><code>-pics.tar.gz</code>: <a href="#Getting%20%3csmall%3eDDD%3c%2fsmall%3e">Getting <small>DDD</small></a>
 
17511
<li><code>ddd-</code><var>version</var><code>.tar.gz</code>: <a href="#Getting%20%3csmall%3eDDD%3c%2fsmall%3e">Getting <small>DDD</small></a>
 
17512
<li><code>emacs</code>: <a href="#Integrating%20%3csmall%3eDDD%3c%2fsmall%3e">Integrating <small>DDD</small></a>, <a href="#Customizing%20Editing">Customizing Editing</a>, <a href="#Help%20Helpers">Help Helpers</a>
 
17513
<li><code>emacsclient</code>: <a href="#Customizing%20Editing">Customizing Editing</a>
 
17514
<li><code>emacsserver</code>: <a href="#Customizing%20Editing">Customizing Editing</a>
 
17515
<li><code>fig2dev</code>: <a href="#Printing%20the%20Graph">Printing the Graph</a>
 
17516
<li><code>file</code>: <a href="#Customizing%20Remote%20Debugging">Customizing Remote Debugging</a>
 
17517
<li><code>gdb</code>: <a href="#Options">Options</a>
 
17518
<li><code>gdbserver</code>: <a href="#Remote%20Program">Remote Program</a>
 
17519
<li><code>gnuclient</code>: <a href="#Customizing%20Editing">Customizing Editing</a>
 
17520
<li><code>gnudoit</code>: <a href="#Help%20Helpers">Help Helpers</a>
 
17521
<li><code>gnuplot</code>: <a href="#Plot%20Appearance">Plot Appearance</a>
 
17522
<li><code>gnuserv</code>: <a href="#Customizing%20Editing">Customizing Editing</a>
 
17523
<li><code>init</code>: <a href="#Resources">Resources</a>
 
17524
<li><code>java.prof</code>: <a href="#JDB%20Options">JDB Options</a>
 
17525
<li><code>jdb</code>: <a href="#Options">Options</a>
 
17526
<li><code>ladebug</code>: <a href="#Options">Options</a>
 
17527
<li><code>less</code>: <a href="#Customizing%20Diagnostics">Customizing Diagnostics</a>
 
17528
<li><code>log</code>: <a href="#Logging">Logging</a>, <a href="#Entering%20Plotting%20Commands">Entering Plotting Commands</a>, <a href="#Options">Options</a>
 
17529
<li><code>lynx</code>: <a href="#Help%20Helpers">Help Helpers</a>
 
17530
<li><code>make</code>: <a href="#Recompiling">Recompiling</a>
 
17531
<li><code>more</code>: <a href="#Customizing%20Diagnostics">Customizing Diagnostics</a>
 
17532
<li><code>mosaic</code>: <a href="#Help%20Helpers">Help Helpers</a>
 
17533
<li><code>mozilla</code>: <a href="#Help%20Helpers">Help Helpers</a>
 
17534
<li><code>netscape</code>: <a href="#Help%20Helpers">Help Helpers</a>
 
17535
<li><code>on</code>: <a href="#Customizing%20Remote%20Debugging">Customizing Remote Debugging</a>
 
17536
<li><code>perl</code>: <a href="#Options">Options</a>
 
17537
<li><code>ps</code>: <a href="#Customizing%20Attaching%20to%20Processes">Customizing Attaching to Processes</a>
 
17538
<li><code>pydb</code>: <a href="#Options">Options</a>
 
17539
<li><code>remsh</code>: <a href="#Customizing%20Remote%20Debugging">Customizing Remote Debugging</a>
 
17540
<li><code>rsh</code>: <a href="#Customizing%20Remote%20Debugging">Customizing Remote Debugging</a>
 
17541
<li><code>sample</code>: <a href="#Sample%20Session">Sample Session</a>
 
17542
<li><code>sample.c</code>: <a href="#Sample%20Program">Sample Program</a>, <a href="#Sample%20Session">Sample Session</a>
 
17543
<li><code>sessions</code>: <a href="#Customizing%20Sessions">Customizing Sessions</a>
 
17544
<li><code>ssh</code>: <a href="#Customizing%20Remote%20Debugging">Customizing Remote Debugging</a>
 
17545
<li><code>stty</code>: <a href="#Input%2fOutput">Input/Output</a>
 
17546
<li><code>suppress.vsl</code>: <a href="#Display%20Resources">Display Resources</a>
 
17547
<li><code>TODO</code>: <a href="#Contributors">Contributors</a>
 
17548
<li><code>transfig</code>: <a href="#Printing%20the%20Graph">Printing the Graph</a>
 
17549
<li><code>vi</code>: <a href="#Customizing%20Editing">Customizing Editing</a>
 
17550
<li><code>wdb</code>: <a href="#Options">Options</a>
 
17551
<li><code>xdb</code>: <a href="#Options">Options</a>
 
17552
<li><code>xemacs</code>: <a href="#Integrating%20%3csmall%3eDDD%3c%2fsmall%3e">Integrating <small>DDD</small></a>, <a href="#Customizing%20Editing">Customizing Editing</a>, <a href="#Help%20Helpers">Help Helpers</a>
 
17553
<li><code>xfig</code>: <a href="#Printing%20the%20Graph">Printing the Graph</a>
 
17554
<li><code>xfontsel</code>: <a href="#Customizing%20Fonts">Customizing Fonts</a>
 
17555
<li><code>xmgr</code>: <a href="#Exporting%20Plot%20Data">Exporting Plot Data</a>
 
17556
<li><code>xsm</code>: <a href="#Resuming%20Sessions">Resuming Sessions</a>
 
17557
<li><code>xterm</code>: <a href="#Customizing%20the%20Execution%20Window">Customizing the Execution Window</a>
 
17558
<li><code>xxgdb</code>: <a href="#Integrating%20%3csmall%3eDDD%3c%2fsmall%3e">Integrating <small>DDD</small></a>
 
17559
<li><code>~</code>: <a href="#Resources">Resources</a>, <a href="#Options">Options</a>
 
17560
   </ul>
 
17561
 
 
17562
<div class="node">
 
17563
<p><hr>
 
17564
<small class=header>
 
17565
Node:<a name="Concept%20Index">Concept Index</a>,
 
17566
Previous:<a rel="previous" accesskey="p" href="#File%20Index">File Index</a>,
 
17567
Up:<a rel="up" accesskey="u" href="#Top">Top</a>
 
17568
</small>
 
17569
 
 
17570
<br>
 
17571
</div>
 
17572
 
 
17573
<h2 class="unnumbered">Concept Index</h2>
 
17574
 
 
17575
<ul class="index-cp" compact>
 
17576
<li>Aborting execution: <a href="#Program%20Menu">Program Menu</a>, <a href="#Quitting">Quitting</a>
 
17577
<li>Ada: <a href="#Summary">Summary</a>
 
17578
<li>Aliases, detecting: <a href="#Shared%20Structures">Shared Structures</a>
 
17579
<li>Animating plots: <a href="#Animating%20Plots">Animating Plots</a>
 
17580
<li>Arguments, displaying: <a href="#Displaying%20Local%20Variables">Displaying Local Variables</a>
 
17581
<li>Arguments, of the debugged program: <a href="#Arguments">Arguments</a>
 
17582
<li>Arguments, program: <a href="#Starting%20Program%20Execution">Starting Program Execution</a>
 
17583
<li>Array slices: <a href="#Array%20Slices">Array Slices</a>
 
17584
<li>Array, artificial: <a href="#Array%20Slices">Array Slices</a>
 
17585
<li>Array, plotting: <a href="#Plotting%20Arrays">Plotting Arrays</a>
 
17586
<li>Artificial arrays: <a href="#Array%20Slices">Array Slices</a>
 
17587
<li>Assertions and breakpoints: <a href="#Breakpoint%20Conditions">Breakpoint Conditions</a>
 
17588
<li>Assertions and watchpoints: <a href="#Watchpoints">Watchpoints</a>
 
17589
<li>Assignment: <a href="#Assignment">Assignment</a>
 
17590
<li>Assistance: <a href="#Help%20and%20Assistance">Help and Assistance</a>
 
17591
<li>Auto-command: <a href="#Commands%20with%20Other%20Debuggers">Commands with Other Debuggers</a>
 
17592
<li>Automatic Layout: <a href="#Automatic%20Layout">Automatic Layout</a>
 
17593
<li>Balloon help: <a href="#Getting%20Help">Getting Help</a>
 
17594
<li>Bash: <a href="#Summary">Summary</a>
 
17595
<li>Bash, invoking <small>DDD</small> with: <a href="#Choosing%20an%20Inferior%20Debugger">Choosing an Inferior Debugger</a>
 
17596
<li>Box library: <a href="#History">History</a>
 
17597
<li>Breakpoint: <a href="#Stopping">Stopping</a>
 
17598
<li>Breakpoint commands: <a href="#Breakpoint%20Commands">Breakpoint Commands</a>
 
17599
<li>Breakpoint commands, vs. conditions: <a href="#Breakpoint%20Conditions">Breakpoint Conditions</a>
 
17600
<li>Breakpoint conditions: <a href="#Breakpoint%20Conditions">Breakpoint Conditions</a>
 
17601
<li>Breakpoint ignore counts: <a href="#Breakpoint%20Ignore%20Counts">Breakpoint Ignore Counts</a>
 
17602
<li>Breakpoint properties: <a href="#Editing%20Breakpoint%20Properties">Editing Breakpoint Properties</a>
 
17603
<li>Breakpoint, copying: <a href="#Moving%20and%20Copying%20Breakpoints">Moving and Copying Breakpoints</a>
 
17604
<li>Breakpoint, deleting: <a href="#Deleting%20Breakpoints">Deleting Breakpoints</a>
 
17605
<li>Breakpoint, disabling: <a href="#Disabling%20Breakpoints">Disabling Breakpoints</a>
 
17606
<li>Breakpoint, dragging: <a href="#Moving%20and%20Copying%20Breakpoints">Moving and Copying Breakpoints</a>
 
17607
<li>Breakpoint, editing: <a href="#Editing%20Breakpoint%20Properties">Editing Breakpoint Properties</a>
 
17608
<li>Breakpoint, enabling: <a href="#Disabling%20Breakpoints">Disabling Breakpoints</a>
 
17609
<li>Breakpoint, hardware-assisted: <a href="#Hardware-Assisted%20Breakpoints">Hardware-Assisted Breakpoints</a>
 
17610
<li>Breakpoint, looking up: <a href="#Looking%20up%20Breakpoints">Looking up Breakpoints</a>
 
17611
<li>Breakpoint, moving: <a href="#Moving%20and%20Copying%20Breakpoints">Moving and Copying Breakpoints</a>
 
17612
<li>Breakpoint, setting: <a href="#Setting%20Breakpoints">Setting Breakpoints</a>
 
17613
<li>Breakpoint, temporary: <a href="#Temporary%20Breakpoints">Temporary Breakpoints</a>
 
17614
<li>Breakpoint, toggling: <a href="#Tool%20Bar">Tool Bar</a>
 
17615
<li>Breakpoints, editing: <a href="#Editing%20all%20Breakpoints">Editing all Breakpoints</a>
 
17616
<li>Button editor: <a href="#Defining%20Buttons">Defining Buttons</a>
 
17617
<li>Button tip: <a href="#Getting%20Help">Getting Help</a>
 
17618
<li>Button tip, turning off: <a href="#Button%20tips">Button tips</a>
 
17619
<li>Buttons, defining: <a href="#Defining%20Buttons">Defining Buttons</a>
 
17620
<li>C: <a href="#Summary">Summary</a>
 
17621
<li>C++: <a href="#Summary">Summary</a>
 
17622
<li>Call stack: <a href="#Stack">Stack</a>
 
17623
<li>Chill: <a href="#Summary">Summary</a>
 
17624
<li>Class, opening: <a href="#Opening%20Programs">Opening Programs</a>
 
17625
<li>Clipboard: <a href="#Edit%20Menu">Edit Menu</a>
 
17626
<li>Clipboard, putting displays: <a href="#Deleting%20Displays">Deleting Displays</a>
 
17627
<li>Cluster: <a href="#Clustering">Clustering</a>
 
17628
<li>Cluster, and plotting: <a href="#Scalars%20and%20Composites">Scalars and Composites</a>
 
17629
<li>Clustered display, creating: <a href="#Creating%20Single%20Displays">Creating Single Displays</a>
 
17630
<li>Command completion: <a href="#Command%20Completion">Command Completion</a>
 
17631
<li>Command history: <a href="#Command%20History">Command History</a>
 
17632
<li>Command tool: <a href="#Windows">Windows</a>
 
17633
<li>Command, argument: <a href="#GDB%20Argument%20Commands">GDB Argument Commands</a>
 
17634
<li>Command, auto: <a href="#Commands%20with%20Other%20Debuggers">Commands with Other Debuggers</a>
 
17635
<li>Command, breakpoint: <a href="#Breakpoint%20Commands">Breakpoint Commands</a>
 
17636
<li>Command, defining: <a href="#Defining%20Commands">Defining Commands</a>
 
17637
<li>Command, defining in <small>GDB</small>: <a href="#GDB%20Simple%20Commands">GDB Simple Commands</a>
 
17638
<li>Command, defining with other debuggers: <a href="#Commands%20with%20Other%20Debuggers">Commands with Other Debuggers</a>
 
17639
<li>Command, recording: <a href="#GDB%20Simple%20Commands">GDB Simple Commands</a>
 
17640
<li>Command, repeating: <a href="#Command%20History">Command History</a>
 
17641
<li>Command, searching: <a href="#Command%20History">Command History</a>
 
17642
<li>Command, user-defined: <a href="#Defining%20Commands">Defining Commands</a>
 
17643
<li>Command-line debugger: <a href="#Summary">Summary</a>
 
17644
<li>Compact Layout: <a href="#Automatic%20Layout">Automatic Layout</a>
 
17645
<li>Completion of commands: <a href="#Command%20Completion">Command Completion</a>
 
17646
<li>Completion of quoted strings: <a href="#Command%20Completion">Command Completion</a>
 
17647
<li>Conditions on breakpoints: <a href="#Breakpoint%20Conditions">Breakpoint Conditions</a>
 
17648
<li>Context-sensitive help: <a href="#Getting%20Help">Getting Help</a>
 
17649
<li>Continue, at different address: <a href="#Continuing%20Somewhere%20Else">Continuing Somewhere Else</a>
 
17650
<li>Continue, one line: <a href="#Resuming%20Execution">Resuming Execution</a>
 
17651
<li>Continue, to location: <a href="#Resuming%20Execution">Resuming Execution</a>
 
17652
<li>Continue, to next line: <a href="#Resuming%20Execution">Resuming Execution</a>
 
17653
<li>Continue, until function returns: <a href="#Resuming%20Execution">Resuming Execution</a>
 
17654
<li>Continue, until greater line is reached: <a href="#Resuming%20Execution">Resuming Execution</a>
 
17655
<li>Continuing execution: <a href="#Resuming%20Execution">Resuming Execution</a>
 
17656
<li>Continuing process execution: <a href="#Attaching%20to%20a%20Process">Attaching to a Process</a>
 
17657
<li>Contour lines, in plots: <a href="#Plot%20Appearance">Plot Appearance</a>
 
17658
<li>Contributors: <a href="#Contributors">Contributors</a>
 
17659
<li>Copying displays: <a href="#Deleting%20Displays">Deleting Displays</a>
 
17660
<li>Core dump, opening: <a href="#Opening%20Core%20Dumps">Opening Core Dumps</a>
 
17661
<li>Core file, in sessions: <a href="#Saving%20Sessions">Saving Sessions</a>
 
17662
<li>Cutting displays: <a href="#Deleting%20Displays">Deleting Displays</a>
 
17663
<li>Data Theme: <a href="#Using%20Data%20Themes">Using Data Themes</a>
 
17664
<li>Data Window: <a href="#Displaying%20Values">Displaying Values</a>
 
17665
<li>Data window: <a href="#Windows">Windows</a>
 
17666
<li><small>DBX</small>: <a href="#Summary">Summary</a>
 
17667
<li><small>DBX</small>, invoking <small>DDD</small> with: <a href="#Choosing%20an%20Inferior%20Debugger">Choosing an Inferior Debugger</a>
 
17668
<li>Debugger console: <a href="#Windows">Windows</a>
 
17669
<li>Debugger, on remote host: <a href="#Remote%20Debugger">Remote Debugger</a>
 
17670
<li>Debugging <small>DDD</small>: <a href="#Debugging%20%3csmall%3eDDD%3c%2fsmall%3e">Debugging <small>DDD</small></a>
 
17671
<li>Debugging flags: <a href="#Patching">Patching</a>
 
17672
<li>Debugging optimized code: <a href="#Compiling%20for%20Debugging">Compiling for Debugging</a>
 
17673
<li>Default session: <a href="#Resuming%20Sessions">Resuming Sessions</a>
 
17674
<li>Deferred display: <a href="#Creating%20Single%20Displays">Creating Single Displays</a>
 
17675
<li>Deferred display, in sessions: <a href="#Saving%20Sessions">Saving Sessions</a>
 
17676
<li>Deleting displays: <a href="#Deleting%20Displays">Deleting Displays</a>, <a href="#Tool%20Bar">Tool Bar</a>
 
17677
<li>Deleting displays, undoing: <a href="#Deleting%20Displays">Deleting Displays</a>
 
17678
<li>Dependent display: <a href="#Creating%20Single%20Displays">Creating Single Displays</a>
 
17679
<li>Dereferencing: <a href="#Dereferencing%20Pointers">Dereferencing Pointers</a>
 
17680
<li>Detail toggling with <code>Show/Hide</code>: <a href="#Tool%20Bar">Tool Bar</a>
 
17681
<li>Detail, hiding: <a href="#Showing%20and%20Hiding%20Details">Showing and Hiding Details</a>
 
17682
<li>Detail, showing: <a href="#Showing%20and%20Hiding%20Details">Showing and Hiding Details</a>
 
17683
<li>Directory, of the debugged program: <a href="#Working%20Directory">Working Directory</a>
 
17684
<li>Disabled displays: <a href="#Showing%20and%20Hiding%20Details">Showing and Hiding Details</a>
 
17685
<li>Disabling displays, undoing: <a href="#Showing%20and%20Hiding%20Details">Showing and Hiding Details</a>
 
17686
<li>Display: <a href="#Displaying%20Values">Displaying Values</a>
 
17687
<li>Display Editor: <a href="#Editing%20all%20Displays">Editing all Displays</a>
 
17688
<li>Display name: <a href="#Selecting%20Displays">Selecting Displays</a>
 
17689
<li>Display position: <a href="#Creating%20Single%20Displays">Creating Single Displays</a>
 
17690
<li>Display selection: <a href="#Selecting%20Displays">Selecting Displays</a>
 
17691
<li>Display title: <a href="#Selecting%20Displays">Selecting Displays</a>
 
17692
<li>Display value: <a href="#Selecting%20Displays">Selecting Displays</a>
 
17693
<li>Display, aligning on grid: <a href="#Aligning%20Displays">Aligning Displays</a>
 
17694
<li>Display, clustered: <a href="#Creating%20Single%20Displays">Creating Single Displays</a>
 
17695
<li>Display, clustering: <a href="#Clustering">Clustering</a>
 
17696
<li>Display, copying: <a href="#Deleting%20Displays">Deleting Displays</a>
 
17697
<li>Display, creating: <a href="#Creating%20Single%20Displays">Creating Single Displays</a>, <a href="#Tool%20Bar">Tool Bar</a>
 
17698
<li>Display, customizing: <a href="#Customizing%20Displays">Customizing Displays</a>
 
17699
<li>Display, cutting: <a href="#Deleting%20Displays">Deleting Displays</a>
 
17700
<li>Display, deferred: <a href="#Creating%20Single%20Displays">Creating Single Displays</a>
 
17701
<li>Display, deleting: <a href="#Deleting%20Displays">Deleting Displays</a>, <a href="#Tool%20Bar">Tool Bar</a>
 
17702
<li>Display, dependent: <a href="#Dependent%20Values">Dependent Values</a>, <a href="#Creating%20Single%20Displays">Creating Single Displays</a>
 
17703
<li>Display, disabled: <a href="#Showing%20and%20Hiding%20Details">Showing and Hiding Details</a>
 
17704
<li>Display, frozen: <a href="#Stopping%20X%20Programs">Stopping X Programs</a>
 
17705
<li>Display, hiding details: <a href="#Showing%20and%20Hiding%20Details">Showing and Hiding Details</a>
 
17706
<li>Display, locked: <a href="#Stopping%20X%20Programs">Stopping X Programs</a>
 
17707
<li>Display, moving: <a href="#Moving%20Displays">Moving Displays</a>
 
17708
<li>Display, pasting: <a href="#Deleting%20Displays">Deleting Displays</a>
 
17709
<li>Display, placement: <a href="#Placement">Placement</a>
 
17710
<li>Display, plotting the history: <a href="#Plotting%20Histories">Plotting Histories</a>
 
17711
<li>Display, refreshing: <a href="#Refreshing%20the%20Data%20Window">Refreshing the Data Window</a>
 
17712
<li>Display, rotating: <a href="#Rotating%20Displays">Rotating Displays</a>, <a href="#Tool%20Bar">Tool Bar</a>
 
17713
<li>Display, selecting: <a href="#Selecting%20Displays">Selecting Displays</a>
 
17714
<li>Display, setting: <a href="#Tool%20Bar">Tool Bar</a>, <a href="#Remote%20Host">Remote Host</a>
 
17715
<li>Display, setting when invoking <small>DDD</small>: <a href="#X%20Options">X Options</a>
 
17716
<li>Display, showing details: <a href="#Showing%20and%20Hiding%20Details">Showing and Hiding Details</a>
 
17717
<li>Display, suppressing: <a href="#Deleting%20Displays">Deleting Displays</a>
 
17718
<li>Display, toggling detail: <a href="#Tool%20Bar">Tool Bar</a>
 
17719
<li>Display, updating: <a href="#Refreshing%20the%20Data%20Window">Refreshing the Data Window</a>
 
17720
<li>Displaying values: <a href="#Displaying%20Values">Displaying Values</a>, <a href="#Examining%20Data">Examining Data</a>
 
17721
<li>Displaying values with <code>Display</code>: <a href="#Tool%20Bar">Tool Bar</a>
 
17722
<li>Dumping values: <a href="#Examining%20Data">Examining Data</a>
 
17723
<li>Edge: <a href="#Dependent%20Values">Dependent Values</a>
 
17724
<li>Edge hint: <a href="#Automatic%20Layout">Automatic Layout</a>, <a href="#Shared%20Structures">Shared Structures</a>
 
17725
<li>Editing source code: <a href="#Editing%20Source%20Code">Editing Source Code</a>
 
17726
<li>Emacs, integrating <small>DDD</small>: <a href="#Integrating%20%3csmall%3eDDD%3c%2fsmall%3e">Integrating <small>DDD</small></a>
 
17727
<li>Emergency repairs: <a href="#Patching">Patching</a>
 
17728
<li>Environment, of the debugged program: <a href="#Environment">Environment</a>
 
17729
<li><small>EPROM</small> code debugging: <a href="#Hardware-Assisted%20Breakpoints">Hardware-Assisted Breakpoints</a>
 
17730
<li>Examining memory contents: <a href="#Examining%20Memory">Examining Memory</a>
 
17731
<li>Execution position, dragging: <a href="#Continuing%20Somewhere%20Else">Continuing Somewhere Else</a>
 
17732
<li>Execution window: <a href="#Using%20the%20Execution%20Window">Using the Execution Window</a>, <a href="#Windows">Windows</a>
 
17733
<li>Execution, "undoing": <a href="#Undoing%20Program%20Execution">Undoing Program Execution</a>
 
17734
<li>Execution, aborting: <a href="#Program%20Menu">Program Menu</a>, <a href="#Quitting">Quitting</a>
 
17735
<li>Execution, at different address: <a href="#Continuing%20Somewhere%20Else">Continuing Somewhere Else</a>
 
17736
<li>Execution, continuing: <a href="#Resuming%20Execution">Resuming Execution</a>
 
17737
<li>Execution, interrupting: <a href="#Quitting">Quitting</a>
 
17738
<li>Execution, interrupting automatically: <a href="#Debugger%20Communication">Debugger Communication</a>
 
17739
<li>Execution, one line: <a href="#Resuming%20Execution">Resuming Execution</a>
 
17740
<li>Execution, to location: <a href="#Resuming%20Execution">Resuming Execution</a>
 
17741
<li>Execution, to next line: <a href="#Resuming%20Execution">Resuming Execution</a>
 
17742
<li>Execution, until function returns: <a href="#Resuming%20Execution">Resuming Execution</a>
 
17743
<li>Execution, until greater line is reached: <a href="#Resuming%20Execution">Resuming Execution</a>
 
17744
<li>Exiting: <a href="#Quitting">Quitting</a>
 
17745
<li>Extending display selection: <a href="#Selecting%20Displays">Selecting Displays</a>
 
17746
<li>FIG file, printing as: <a href="#Printing%20the%20Graph">Printing the Graph</a>
 
17747
<li>Files, opening: <a href="#Opening%20Files">Opening Files</a>
 
17748
<li>Finding items: <a href="#Tool%20Bar">Tool Bar</a>
 
17749
<li>Fonts: <a href="#Customizing%20Fonts">Customizing Fonts</a>
 
17750
<li>FORTRAN: <a href="#Summary">Summary</a>
 
17751
<li>Frame: <a href="#Frames">Frames</a>, <a href="#Stack">Stack</a>
 
17752
<li>Frame changes, undoing: <a href="#Selecting%20a%20frame">Selecting a frame</a>
 
17753
<li>Frame number: <a href="#Frames">Frames</a>
 
17754
<li>Frame pointer: <a href="#Frames">Frames</a>
 
17755
<li>Frame, selecting: <a href="#Selecting%20a%20frame">Selecting a frame</a>
 
17756
<li>GCC: <a href="#Compiling%20for%20Debugging">Compiling for Debugging</a>
 
17757
<li><small>GDB</small>: <a href="#Summary">Summary</a>
 
17758
<li><small>GDB</small>, invoking <small>DDD</small> with: <a href="#Choosing%20an%20Inferior%20Debugger">Choosing an Inferior Debugger</a>
 
17759
<li>Glyph: <a href="#Customizing%20Glyphs">Customizing Glyphs</a>
 
17760
<li>GPL: <a href="#Free%20Software">Free Software</a>
 
17761
<li>Grabbed pointer: <a href="#Stopping%20X%20Programs">Stopping X Programs</a>
 
17762
<li>Graph, printing: <a href="#Printing%20the%20Graph">Printing the Graph</a>
 
17763
<li>Graph, rotating: <a href="#Rotating%20the%20Graph">Rotating the Graph</a>
 
17764
<li>Grid, aligning displays: <a href="#Aligning%20Displays">Aligning Displays</a>
 
17765
<li>Grid, in plots: <a href="#Plot%20Appearance">Plot Appearance</a>
 
17766
<li>Help: <a href="#Help%20and%20Assistance">Help and Assistance</a>, <a href="#Getting%20Help">Getting Help</a>
 
17767
<li>Help, in the status line: <a href="#Getting%20Help">Getting Help</a>
 
17768
<li>Help, on buttons: <a href="#Getting%20Help">Getting Help</a>
 
17769
<li>Help, on commands: <a href="#Getting%20Help">Getting Help</a>
 
17770
<li>Help, on items: <a href="#Getting%20Help">Getting Help</a>
 
17771
<li>Help, when stuck: <a href="#Getting%20Help">Getting Help</a>
 
17772
<li>Hiding display details: <a href="#Showing%20and%20Hiding%20Details">Showing and Hiding Details</a>
 
17773
<li>Historic mode: <a href="#Undoing%20Program%20Execution">Undoing Program Execution</a>
 
17774
<li>History: <a href="#History">History</a>
 
17775
<li>History, plotting: <a href="#Plotting%20Histories">Plotting Histories</a>
 
17776
<li>Host, remote: <a href="#Remote%20Host">Remote Host</a>
 
17777
<li>HTML manual: <a href="#About%20this%20Manual">About this Manual</a>
 
17778
<li>IBMGL file, printing as: <a href="#Printing%20the%20Graph">Printing the Graph</a>
 
17779
<li>Icon, invoking <small>DDD</small> as: <a href="#X%20Options">X Options</a>
 
17780
<li>Ignore count: <a href="#Breakpoint%20Ignore%20Counts">Breakpoint Ignore Counts</a>
 
17781
<li>Indent, source code: <a href="#Customizing%20Source%20Appearance">Customizing Source Appearance</a>
 
17782
<li>Inferior debugger: <a href="#Summary">Summary</a>
 
17783
<li>Info manual: <a href="#About%20this%20Manual">About this Manual</a>
 
17784
<li>Initial frame: <a href="#Frames">Frames</a>
 
17785
<li>Innermost frame: <a href="#Frames">Frames</a>
 
17786
<li>Input of the debugged program: <a href="#Input%2fOutput">Input/Output</a>
 
17787
<li>Instruction, stepping: <a href="#Machine%20Code%20Execution">Machine Code Execution</a>
 
17788
<li>Integrating <small>DDD</small>: <a href="#Integrating%20%3csmall%3eDDD%3c%2fsmall%3e">Integrating <small>DDD</small></a>
 
17789
<li>Interrupting <small>DDD</small>: <a href="#Quitting">Quitting</a>
 
17790
<li>Interrupting execution: <a href="#Quitting">Quitting</a>
 
17791
<li>Interrupting execution, automatically: <a href="#Debugger%20Communication">Debugger Communication</a>
 
17792
<li>Invoking: <a href="#Invoking">Invoking</a>
 
17793
<li>Java: <a href="#Summary">Summary</a>
 
17794
<li><small>JDB</small>: <a href="#Summary">Summary</a>
 
17795
<li><small>JDB</small>, invoking <small>DDD</small> with: <a href="#Choosing%20an%20Inferior%20Debugger">Choosing an Inferior Debugger</a>
 
17796
<li>Jump to different address: <a href="#Continuing%20Somewhere%20Else">Continuing Somewhere Else</a>
 
17797
<li>Killing <small>DDD</small>: <a href="#Quitting">Quitting</a>
 
17798
<li>Killing the debugged program: <a href="#Killing%20the%20Program">Killing the Program</a>
 
17799
<li>Ladebug: <a href="#Summary">Summary</a>
 
17800
<li>Ladebug, invoking <small>DDD</small> with: <a href="#Choosing%20an%20Inferior%20Debugger">Choosing an Inferior Debugger</a>
 
17801
<li>License: <a href="#License">License</a>, <a href="#Free%20Software">Free Software</a>
 
17802
<li>License, Documentation: <a href="#Documentation%20License">Documentation License</a>
 
17803
<li>License, showing on standard output: <a href="#Options">Options</a>
 
17804
<li>Line numbers: <a href="#Customizing%20Source%20Appearance">Customizing Source Appearance</a>
 
17805
<li>Local variables, displaying: <a href="#Displaying%20Local%20Variables">Displaying Local Variables</a>
 
17806
<li>Logging: <a href="#Logging">Logging</a>
 
17807
<li>Logging, disabling: <a href="#Disabling%20Logging">Disabling Logging</a>
 
17808
<li>Looking up breakpoints: <a href="#Looking%20up%20Breakpoints">Looking up Breakpoints</a>
 
17809
<li>Looking up items: <a href="#Tool%20Bar">Tool Bar</a>
 
17810
<li>Lookups, redoing: <a href="#Looking%20up%20Previous%20Locations">Looking up Previous Locations</a>
 
17811
<li>Lookups, undoing: <a href="#Looking%20up%20Previous%20Locations">Looking up Previous Locations</a>
 
17812
<li>L�tkehaus, Dorothea: <a href="#History">History</a>, <a href="#Contributors">Contributors</a>
 
17813
<li>Machine code window: <a href="#Windows">Windows</a>
 
17814
<li>Machine code, examining: <a href="#Machine%20Code">Machine Code</a>
 
17815
<li>Machine code, executing: <a href="#Machine%20Code%20Execution">Machine Code Execution</a>
 
17816
<li>Mailing list: <a href="#Help%20and%20Assistance">Help and Assistance</a>
 
17817
<li>Make, invoking: <a href="#Recompiling">Recompiling</a>
 
17818
<li>Manual, showing on standard output: <a href="#Options">Options</a>
 
17819
<li>Memory, dumping contents: <a href="#Examining%20Data">Examining Data</a>
 
17820
<li>Memory, examining: <a href="#Examining%20Memory">Examining Memory</a>
 
17821
<li>Modula-2: <a href="#Summary">Summary</a>
 
17822
<li>Modula-3: <a href="#Summary">Summary</a>
 
17823
<li>Mouse pointer, frozen: <a href="#Stopping%20X%20Programs">Stopping X Programs</a>
 
17824
<li>Name, display: <a href="#Selecting%20Displays">Selecting Displays</a>
 
17825
<li>News, showing on standard output: <a href="#Options">Options</a>
 
17826
<li>NORA: <a href="#History">History</a>
 
17827
<li>Optimized code, debugging: <a href="#Compiling%20for%20Debugging">Compiling for Debugging</a>
 
17828
<li>Option: <a href="#Invoking">Invoking</a>
 
17829
<li>Outermost frame: <a href="#Frames">Frames</a>
 
17830
<li>Output of the debugged program: <a href="#Input%2fOutput">Input/Output</a>
 
17831
<li>Pascal: <a href="#Summary">Summary</a>
 
17832
<li>Pasting displays: <a href="#Deleting%20Displays">Deleting Displays</a>
 
17833
<li>Patching: <a href="#Patching">Patching</a>
 
17834
<li>PDF manual: <a href="#About%20this%20Manual">About this Manual</a>
 
17835
<li>Perl: <a href="#Summary">Summary</a>
 
17836
<li>Perl, invoking <small>DDD</small> with: <a href="#Choosing%20an%20Inferior%20Debugger">Choosing an Inferior Debugger</a>
 
17837
<li>PIC file, printing as: <a href="#Printing%20the%20Graph">Printing the Graph</a>
 
17838
<li>Pipe: <a href="#Input%2fOutput">Input/Output</a>
 
17839
<li>Placement: <a href="#Placement">Placement</a>
 
17840
<li>Plot appearance: <a href="#Plot%20Appearance">Plot Appearance</a>
 
17841
<li>Plot, animating: <a href="#Animating%20Plots">Animating Plots</a>
 
17842
<li>Plot, exporting: <a href="#Exporting%20Plot%20Data">Exporting Plot Data</a>
 
17843
<li>Plot, printing: <a href="#Printing%20Plots">Printing Plots</a>
 
17844
<li>Plot, scrolling: <a href="#Plot%20Appearance">Plot Appearance</a>
 
17845
<li>Plotting style: <a href="#Plot%20Appearance">Plot Appearance</a>
 
17846
<li>Plotting values: <a href="#Plotting%20Values">Plotting Values</a>, <a href="#Examining%20Data">Examining Data</a>, <a href="#Tool%20Bar">Tool Bar</a>
 
17847
<li>Pointers, dereferencing: <a href="#Dereferencing%20Pointers">Dereferencing Pointers</a>
 
17848
<li>Position, of display: <a href="#Creating%20Single%20Displays">Creating Single Displays</a>
 
17849
<li>PostScript manual: <a href="#About%20this%20Manual">About this Manual</a>
 
17850
<li>PostScript, printing as: <a href="#Printing%20the%20Graph">Printing the Graph</a>
 
17851
<li>Print, output formats: <a href="#Printing%20Values">Printing Values</a>
 
17852
<li>Printing plots: <a href="#Printing%20Plots">Printing Plots</a>
 
17853
<li>Printing the Graph: <a href="#Printing%20the%20Graph">Printing the Graph</a>
 
17854
<li>Printing values: <a href="#Printing%20Values">Printing Values</a>, <a href="#Examining%20Data">Examining Data</a>
 
17855
<li>Printing values with <code>Print</code>: <a href="#Tool%20Bar">Tool Bar</a>
 
17856
<li>Process, attaching: <a href="#Attaching%20to%20a%20Process">Attaching to a Process</a>
 
17857
<li>Program arguments: <a href="#Starting%20Program%20Execution">Starting Program Execution</a>
 
17858
<li>Program counter, displaying: <a href="#Machine%20Code%20Execution">Machine Code Execution</a>
 
17859
<li>Program output, confusing: <a href="#Input%2fOutput">Input/Output</a>
 
17860
<li>Program, on remote host: <a href="#Remote%20Program">Remote Program</a>
 
17861
<li>Program, opening: <a href="#Opening%20Programs">Opening Programs</a>
 
17862
<li>Program, patching: <a href="#Patching">Patching</a>
 
17863
<li>PSG: <a href="#History">History</a>
 
17864
<li><small>PYDB</small>: <a href="#Summary">Summary</a>
 
17865
<li><small>PYDB</small>, invoking <small>DDD</small> with: <a href="#Choosing%20an%20Inferior%20Debugger">Choosing an Inferior Debugger</a>
 
17866
<li>Python: <a href="#Summary">Summary</a>
 
17867
<li>Quitting: <a href="#Quitting">Quitting</a>
 
17868
<li>Quotes in commands: <a href="#Command%20Completion">Command Completion</a>
 
17869
<li>Readline: <a href="#TTY%20mode">TTY mode</a>
 
17870
<li>Recompiling: <a href="#Recompiling">Recompiling</a>
 
17871
<li>Recording commands: <a href="#GDB%20Simple%20Commands">GDB Simple Commands</a>
 
17872
<li>Redirecting I/O of the debugged program: <a href="#Input%2fOutput">Input/Output</a>
 
17873
<li>Redirecting I/O to the execution window: <a href="#Using%20the%20Execution%20Window">Using the Execution Window</a>
 
17874
<li>Redirection: <a href="#Input%2fOutput">Input/Output</a>
 
17875
<li>Redirection, to execution window: <a href="#Using%20the%20Execution%20Window">Using the Execution Window</a>, <a href="#Debugger%20Communication">Debugger Communication</a>
 
17876
<li>Redoing commands: <a href="#Undo%20and%20Redo">Undo and Redo</a>
 
17877
<li>Redoing lookups: <a href="#Looking%20up%20Previous%20Locations">Looking up Previous Locations</a>
 
17878
<li>Refreshing displayed values: <a href="#Refreshing%20the%20Data%20Window">Refreshing the Data Window</a>
 
17879
<li>Registers, examining: <a href="#Registers">Registers</a>
 
17880
<li>Reloading source code: <a href="#Editing%20Source%20Code">Editing Source Code</a>
 
17881
<li>Remote debugger: <a href="#Remote%20Debugger">Remote Debugger</a>
 
17882
<li>Remote host: <a href="#Remote%20Host">Remote Host</a>
 
17883
<li>Remote program: <a href="#Remote%20Program">Remote Program</a>
 
17884
<li>Resource, setting when invoking <small>DDD</small>: <a href="#X%20Options">X Options</a>
 
17885
<li>Resources: <a href="#Resources">Resources</a>
 
17886
<li><small>ROM</small> code debugging: <a href="#Hardware-Assisted%20Breakpoints">Hardware-Assisted Breakpoints</a>
 
17887
<li>Rotating displays with <code>Rotate</code>: <a href="#Tool%20Bar">Tool Bar</a>
 
17888
<li>Rotating the graph: <a href="#Rotating%20the%20Graph">Rotating the Graph</a>
 
17889
<li>Running the debugged program: <a href="#Running">Running</a>
 
17890
<li>Scalars, plotting: <a href="#Scalars%20and%20Composites">Scalars and Composites</a>
 
17891
<li>Scales, in plots: <a href="#Plot%20Appearance">Plot Appearance</a>
 
17892
<li>Scrolling: <a href="#Scrolling%20Data">Scrolling Data</a>
 
17893
<li>Search, using <code>Find &gt;&gt;</code>: <a href="#Tool%20Bar">Tool Bar</a>
 
17894
<li>Searching commands: <a href="#Command%20History">Command History</a>
 
17895
<li>Selecting frames: <a href="#Selecting%20a%20frame">Selecting a frame</a>
 
17896
<li>Selecting multiple displays: <a href="#Selecting%20Displays">Selecting Displays</a>
 
17897
<li>Selecting single displays: <a href="#Selecting%20Displays">Selecting Displays</a>
 
17898
<li>Session: <a href="#Sessions">Sessions</a>
 
17899
<li>Session, active: <a href="#Saving%20Sessions">Saving Sessions</a>
 
17900
<li>Session, default: <a href="#Resuming%20Sessions">Resuming Sessions</a>
 
17901
<li>Session, deleting: <a href="#Deleting%20Sessions">Deleting Sessions</a>
 
17902
<li>Session, opening: <a href="#Resuming%20Sessions">Resuming Sessions</a>
 
17903
<li>Session, resuming: <a href="#Resuming%20Sessions">Resuming Sessions</a>
 
17904
<li>Session, saving: <a href="#Saving%20Sessions">Saving Sessions</a>
 
17905
<li>Session, setting when invoking <small>DDD</small>: <a href="#Options">Options</a>
 
17906
<li>Setting variables: <a href="#Assignment">Assignment</a>
 
17907
<li>Setting variables with <code>Set</code>: <a href="#Tool%20Bar">Tool Bar</a>
 
17908
<li>Shared structures, detecting: <a href="#Shared%20Structures">Shared Structures</a>
 
17909
<li>Showing display details: <a href="#Showing%20and%20Hiding%20Details">Showing and Hiding Details</a>
 
17910
<li>SIGABRT signal: <a href="#Program%20Menu">Program Menu</a>, <a href="#Quitting">Quitting</a>
 
17911
<li>SIGALRM signal: <a href="#Signals">Signals</a>
 
17912
<li>SIGINT signal: <a href="#Signals">Signals</a>, <a href="#Interrupting">Interrupting</a>
 
17913
<li>Signal settings, editing: <a href="#Signals">Signals</a>
 
17914
<li>Signal settings, saving: <a href="#Signals">Signals</a>
 
17915
<li>Signal, fatal: <a href="#Signals">Signals</a>
 
17916
<li>Signal, sending to <small>DDD</small>: <a href="#Quitting">Quitting</a>
 
17917
<li>Signals: <a href="#Signals">Signals</a>
 
17918
<li>SIGSEGV signal: <a href="#Signals">Signals</a>
 
17919
<li>SIGTRAP signal: <a href="#Signals">Signals</a>
 
17920
<li>SIGUSR1 signal: <a href="#Debugging%20%3csmall%3eDDD%3c%2fsmall%3e">Debugging <small>DDD</small></a>, <a href="#Maintenance%20Menu">Maintenance Menu</a>
 
17921
<li>Source code, editing: <a href="#Editing%20Source%20Code">Editing Source Code</a>
 
17922
<li>Source code, recompiling: <a href="#Recompiling">Recompiling</a>
 
17923
<li>Source code, reloading: <a href="#Editing%20Source%20Code">Editing Source Code</a>
 
17924
<li>Source directory: <a href="#Source%20Path">Source Path</a>
 
17925
<li>Source file, opening: <a href="#Opening%20Source%20Files">Opening Source Files</a>
 
17926
<li>Source file, typing into: <a href="#Typing%20in%20the%20Source%20Window">Typing in the Source Window</a>
 
17927
<li>Source path: <a href="#Source%20Path">Source Path</a>
 
17928
<li>Source path, specifying: <a href="#Source%20Path">Source Path</a>
 
17929
<li>Source window: <a href="#Windows">Windows</a>
 
17930
<li>Source, accessing: <a href="#Source%20Path">Source Path</a>
 
17931
<li>Stack Frame: <a href="#Frames">Frames</a>
 
17932
<li>Stack frame: <a href="#Stack">Stack</a>
 
17933
<li>Stack, moving within: <a href="#Selecting%20a%20frame">Selecting a frame</a>
 
17934
<li>Status display: <a href="#Displaying%20Program%20Status">Displaying Program Status</a>
 
17935
<li>Status line: <a href="#Getting%20Help">Getting Help</a>
 
17936
<li>Status line, location: <a href="#Window%20Layout">Window Layout</a>
 
17937
<li>Suppressing values: <a href="#Deleting%20Displays">Deleting Displays</a>
 
17938
<li>Tab width: <a href="#Customizing%20Source%20Appearance">Customizing Source Appearance</a>
 
17939
<li>TeX file, printing as: <a href="#Printing%20the%20Graph">Printing the Graph</a>
 
17940
<li>TeXinfo manual: <a href="#About%20this%20Manual">About this Manual</a>
 
17941
<li>Theme, Data: <a href="#Using%20Data%20Themes">Using Data Themes</a>
 
17942
<li>Theme, editing: <a href="#Editing%20Themes">Editing Themes</a>
 
17943
<li>Theme, for suppressing values: <a href="#Deleting%20Displays">Deleting Displays</a>
 
17944
<li>Threads: <a href="#Threads">Threads</a>
 
17945
<li>Tic Tac Toe game: <a href="#Maintenance%20Menu">Maintenance Menu</a>
 
17946
<li>Tip of the day: <a href="#Getting%20Help">Getting Help</a>
 
17947
<li>Tip of the day, turning off: <a href="#Tip%20of%20the%20day">Tip of the day</a>
 
17948
<li>Tip, on buttons: <a href="#Getting%20Help">Getting Help</a>
 
17949
<li>Tip, value: <a href="#Value%20Tips">Value Tips</a>, <a href="#Examining%20Data">Examining Data</a>
 
17950
<li>Title, display: <a href="#Selecting%20Displays">Selecting Displays</a>
 
17951
<li>Tool Bar, location: <a href="#Window%20Layout">Window Layout</a>
 
17952
<li>Tool tip: <a href="#Getting%20Help">Getting Help</a>
 
17953
<li>Tornado: <a href="#WindRiver%20GDB">WindRiver GDB</a>
 
17954
<li><small>TTY</small> interface: <a href="#TTY%20mode">TTY mode</a>
 
17955
<li><small>TTY</small> mode, setting when invoking <small>DDD</small>: <a href="#Options">Options</a>
 
17956
<li><small>TTY</small> settings: <a href="#Input%2fOutput">Input/Output</a>
 
17957
<li>Undo deleting displays: <a href="#Deleting%20Displays">Deleting Displays</a>
 
17958
<li>Undo disabling displays: <a href="#Showing%20and%20Hiding%20Details">Showing and Hiding Details</a>
 
17959
<li>Undoing commands: <a href="#Undo%20and%20Redo">Undo and Redo</a>
 
17960
<li>Undoing frame changes: <a href="#Selecting%20a%20frame">Selecting a frame</a>
 
17961
<li>Undoing lookups: <a href="#Looking%20up%20Previous%20Locations">Looking up Previous Locations</a>
 
17962
<li>Undoing program execution: <a href="#Undoing%20Program%20Execution">Undoing Program Execution</a>
 
17963
<li>Undoing signal handling: <a href="#Signals">Signals</a>
 
17964
<li>Updating displayed values: <a href="#Refreshing%20the%20Data%20Window">Refreshing the Data Window</a>
 
17965
<li>User-defined command: <a href="#Defining%20Commands">Defining Commands</a>
 
17966
<li>Value tip: <a href="#Value%20Tips">Value Tips</a>, <a href="#Examining%20Data">Examining Data</a>
 
17967
<li>Value, display: <a href="#Selecting%20Displays">Selecting Displays</a>
 
17968
<li>Value, displaying: <a href="#Displaying%20Values">Displaying Values</a>, <a href="#Examining%20Data">Examining Data</a>
 
17969
<li>Value, dumping: <a href="#Examining%20Data">Examining Data</a>
 
17970
<li>Value, plotting: <a href="#Examining%20Data">Examining Data</a>
 
17971
<li>Value, plotting the history: <a href="#Plotting%20Histories">Plotting Histories</a>
 
17972
<li>Value, printing: <a href="#Printing%20Values">Printing Values</a>, <a href="#Examining%20Data">Examining Data</a>
 
17973
<li>Values, displaying with <code>Display</code>: <a href="#Tool%20Bar">Tool Bar</a>
 
17974
<li>Values, plotting: <a href="#Plotting%20Values">Plotting Values</a>
 
17975
<li>Values, plotting with <code>Plot</code>: <a href="#Tool%20Bar">Tool Bar</a>
 
17976
<li>Values, printing with <code>Print</code>: <a href="#Tool%20Bar">Tool Bar</a>
 
17977
<li>Values, suppressing: <a href="#Deleting%20Displays">Deleting Displays</a>
 
17978
<li>Variables, setting: <a href="#Assignment">Assignment</a>
 
17979
<li>Variables, setting with <code>Set</code>: <a href="#Tool%20Bar">Tool Bar</a>
 
17980
<li>virtual machine: <a href="#JDB%20Options">JDB Options</a>
 
17981
<li>VM: <a href="#JDB%20Options">JDB Options</a>
 
17982
<li>VSL: <a href="#History">History</a>
 
17983
<li>Watchpoint: <a href="#Watchpoints">Watchpoints</a>, <a href="#Stopping">Stopping</a>
 
17984
<li>Watchpoint properties: <a href="#Editing%20Watchpoint%20Properties">Editing Watchpoint Properties</a>
 
17985
<li>Watchpoint, deleting: <a href="#Deleting%20Watchpoints">Deleting Watchpoints</a>
 
17986
<li>Watchpoint, editing: <a href="#Editing%20Watchpoint%20Properties">Editing Watchpoint Properties</a>
 
17987
<li>Watchpoint, setting: <a href="#Setting%20Watchpoints">Setting Watchpoints</a>
 
17988
<li>Watchpoint, toggling: <a href="#Tool%20Bar">Tool Bar</a>
 
17989
<li>Watchpoints, editing: <a href="#Editing%20all%20Watchpoints">Editing all Watchpoints</a>
 
17990
<li>WDB: <a href="#WDB">WDB</a>
 
17991
<li><small>WDB</small>, invoking <small>DDD</small> with: <a href="#WDB">WDB</a>, <a href="#Choosing%20an%20Inferior%20Debugger">Choosing an Inferior Debugger</a>
 
17992
<li>WildeBeest: <a href="#WDB">WDB</a>
 
17993
<li>WindRiver GDB: <a href="#WindRiver%20GDB">WindRiver GDB</a>
 
17994
<li>Working directory, of the debugged program: <a href="#Working%20Directory">Working Directory</a>
 
17995
<li>X programs, stopping: <a href="#Stopping%20X%20Programs">Stopping X Programs</a>
 
17996
<li>X server, frozen: <a href="#Stopping%20X%20Programs">Stopping X Programs</a>
 
17997
<li>X server, locked: <a href="#Stopping%20X%20Programs">Stopping X Programs</a>
 
17998
<li>X session: <a href="#Resuming%20Sessions">Resuming Sessions</a>
 
17999
<li>X Warnings, suppressing: <a href="#X%20Warnings">X Warnings</a>
 
18000
<li><small>XDB</small>: <a href="#Summary">Summary</a>
 
18001
<li><small>XDB</small>, invoking <small>DDD</small> with: <a href="#Choosing%20an%20Inferior%20Debugger">Choosing an Inferior Debugger</a>
 
18002
<li>XEmacs, integrating <small>DDD</small>: <a href="#Integrating%20%3csmall%3eDDD%3c%2fsmall%3e">Integrating <small>DDD</small></a>
 
18003
<li><small>XXGDB</small>, integrating <small>DDD</small>: <a href="#Integrating%20%3csmall%3eDDD%3c%2fsmall%3e">Integrating <small>DDD</small></a>
 
18004
<li>Zeller, Andreas: <a href="#History">History</a>, <a href="#Contributors">Contributors</a>
 
18005
   </ul>
 
18006
 
 
18007
 
 
18008
   <div class="footnote">
 
18009
<hr>
 
18010
<h4>Footnotes</h4>
 
18011
<ol type="1">
 
18012
<li><a name="fn-1"></a>
 
18013
<p>Within <small>DDD</small> (and
 
18014
this manual), Ladebug is considered a <small>DBX</small> variant.  Hence, everything
 
18015
said for <small>DBX</small> also applies to Ladebug, unless stated otherwise.</p>
 
18016
 
 
18017
   <li><a name="fn-2"></a>
 
18018
<p><small>XDB</small> will no longer be maintained in future <small>DDD</small>
 
18019
releases.  Use a recent <small>GDB</small> version instead.</p>
 
18020
 
 
18021
   <li><a name="fn-3"></a>
 
18022
<p>Actual numbers and behavior on your system may
 
18023
vary.</p>
 
18024
 
 
18025
   <li><a name="fn-4"></a>
 
18026
<p>Re-invoke <small>DDD</small> with
 
18027
<code>--gdb</code>, if you do not see a <code>(gdb)</code> prompt here
 
18028
(see <a href="#Choosing%20an%20Inferior%20Debugger">Choosing an Inferior Debugger</a>)</p>
 
18029
 
 
18030
   <li><a name="fn-5"></a>
 
18031
<p>Only if a
 
18032
core file is included.</p>
 
18033
 
 
18034
   <li><a name="fn-6"></a>
 
18035
<p>If a core file is
 
18036
<em>not</em> to be included in the session, <small>DDD</small> data displays are
 
18037
saved as <em>deferred</em>; that is, they will be restored as soon as
 
18038
program execution reaches the scope in which they were created. 
 
18039
See <a href="#Creating%20Single%20Displays">Creating Single Displays</a>, for details.</p>
 
18040
 
 
18041
   <li><a name="fn-7"></a>
 
18042
<p>Requires X11R6 or later.</p>
 
18043
 
 
18044
   <li><a name="fn-8"></a>
 
18045
<p>If
 
18046
you use a <code>Ddd</code> application-defaults file, you will not be
 
18047
able to maintain multiple <small>DDD</small> versions at the same time.  This
 
18048
is why the suiting <code>Ddd</code> is normally compiled into the
 
18049
<small>DDD</small> executable.</p>
 
18050
 
 
18051
   <li><a name="fn-9"></a>
 
18052
<p>If you use <small>DDD</small> to
 
18053
debug Perl, Python or Bash scripts, then this section does not apply.</p>
 
18054
 
 
18055
   <li><a name="fn-10"></a>
 
18056
<p>With <small>XDB</small> and some <small>DBX</small> variants, the debugged program
 
18057
must be specified upon invocation and cannot be changed at run time.</p>
 
18058
 
 
18059
   <li><a name="fn-11"></a>
 
18060
<p><small>JDB</small>,
 
18061
<small>PYDB</small>, Perl, and Bash do not support core dumps.</p>
 
18062
 
 
18063
   <li><a name="fn-12"></a>
 
18064
<p><small>JDB</small> does not support
 
18065
breakpoint disabling.</p>
 
18066
 
 
18067
   <li><a name="fn-13"></a>
 
18068
<p><small>JDB</small> does not support temporary breakpoints.</p>
 
18069
 
 
18070
   <li><a name="fn-14"></a>
 
18071
<p><small>GDB</small> has
 
18072
no way to make a temporary breakpoint non-temporary again.</p>
 
18073
 
 
18074
   <li><a name="fn-15"></a>
 
18075
<p><small>JDB</small>, Perl
 
18076
and some <small>DBX</small> variants do not support breakpoint ignore counts.</p>
 
18077
 
 
18078
   <li><a name="fn-16"></a>
 
18079
<p><small>JDB</small>, <small>PYDB</small>, and some <small>DBX</small> variants do
 
18080
not support breakpoint commands.</p>
 
18081
 
 
18082
   <li><a name="fn-17"></a>
 
18083
<p>When
 
18084
glyphs are disabled (see <a href="#Customizing%20Source">Customizing Source</a>), breakpoints cannot be
 
18085
dragged.  Delete and set breakpoints instead.</p>
 
18086
 
 
18087
   <li><a name="fn-18"></a>
 
18088
<p>Watchpoints are available in <small>GDB</small> and
 
18089
some <small>DBX</small> variants only.  In <small>XDB</small>, a similar feature is available via <small>XDB</small>
 
18090
<dfn>assertions</dfn>; see the <small>XDB</small> documentation for details.</p>
 
18091
 
 
18092
   <li><a name="fn-19"></a>
 
18093
<p>If &lt;Ctrl+C&gt; is not bound to
 
18094
<code>Copy</code> (see <a href="#Customizing%20the%20Edit%20Menu">Customizing the Edit Menu</a>), you can also use
 
18095
&lt;Ctrl+C&gt; to interrupt the running program.</p>
 
18096
 
 
18097
   <li><a name="fn-20"></a>
 
18098
<p>If the debuggee runs in a separate
 
18099
execution window, the debuggee's <code>TERM</code> value is set according to
 
18100
the <code>termType</code> resource; See <a href="#Customizing%20the%20Execution%20Window">Customizing the Execution Window</a>,
 
18101
for details.</p>
 
18102
 
 
18103
   <li><a name="fn-21"></a>
 
18104
<p>The execution window is not available in <small>JDB</small>.</p>
 
18105
 
 
18106
   <li><a name="fn-22"></a>
 
18107
<p><small>JDB</small>, <small>PYDB</small>, Perl, and Bash do not support
 
18108
attaching the debugger to running processes.</p>
 
18109
 
 
18110
   <li><a name="fn-23"></a>
 
18111
<p><small>JDB</small>, <small>PYDB</small>, Perl, and Bash do not support
 
18112
altering the execution position.</p>
 
18113
 
 
18114
   <li><a name="fn-24"></a>
 
18115
<p>When glyphs are
 
18116
disabled (see <a href="#Customizing%20Source">Customizing Source</a>), dragging the execution position
 
18117
is not possible.  Set the execution position explicitly instead.</p>
 
18118
 
 
18119
   <li><a name="fn-25"></a>
 
18120
<p>Perl does not allow
 
18121
changing the current stack frame.</p>
 
18122
 
 
18123
   <li><a name="fn-26"></a>
 
18124
<p>Currently, threads are supported in <small>GDB</small> and <small>JDB</small> only.</p>
 
18125
 
 
18126
   <li><a name="fn-27"></a>
 
18127
<p>This
 
18128
requires that the full array size is known to the debugger.</p>
 
18129
 
 
18130
   <li><a name="fn-28"></a>
 
18131
<p><small>JDB</small> 1.1 does not support changing variable values.</p>
 
18132
 
 
18133
   <li><a name="fn-29"></a>
 
18134
<p>The string <code>//</code>; can
 
18135
be changed via the <code>labelDelimiter</code> resource.  See <a href="#Customizing%20Buttons">Customizing Buttons</a>, for details.</p>
 
18136
 
 
18137
   <li><a name="fn-30"></a>
 
18138
<p>The machine code window is available with <small>GDB</small> and
 
18139
some <small>DBX</small> variants only.</p>
 
18140
 
 
18141
   <li><a name="fn-31"></a>
 
18142
<p>The machine code
 
18143
window is available with <small>GDB</small> and some <small>DBX</small> variants only.</p>
 
18144
 
 
18145
   <li><a name="fn-32"></a>
 
18146
<p>If you use <small>DDD</small> commands
 
18147
within command definitions, or if you include debugger commands that
 
18148
resume execution, these commands will be realized transparently as
 
18149
<dfn>auto-commands</dfn>--that is, they won't be executed directly by the
 
18150
inferior debugger, but result in a command string being sent to
 
18151
<small>DDD</small>.  This command string is then interpreted by <small>DDD</small> and
 
18152
sent back to the inferior debugger, possibly prefixed by some other
 
18153
commands such that <small>DDD</small> can update its state.  See <a href="#Commands%20with%20Other%20Debuggers">Commands with Other Debuggers</a>, for a discussion.</p>
 
18154
 
 
18155
   <li><a name="fn-33"></a>
 
18156
<p>Since the inferior
 
18157
debugger is invoked through a virtual <small>TTY</small>, standard error is
 
18158
normally redirected to standard output, so <small>DDD</small> never receives
 
18159
standard error from the inferior debugger.</p>
 
18160
 
 
18161
   <li><a name="fn-34"></a>
 
18162
<p>This section
 
18163
was contributed by Gary Cliff from Computing Devices Canada
 
18164
Ltd., <a href="mailto:gary.cliff@cdott.com">gary.cliff@cdott.com</a>.</p>
 
18165
 
 
18166
   </ol><hr></div>
 
18167
 
 
18168
   </body></html>
 
18169