GNU Binutils with patches for OS216
Revision | 01b25dab88e1790f4eff36821358416e9a0999f3 (tree) |
---|---|
Zeit | 1991-04-02 08:52:17 |
Autor | Roland Pesch <pesch@cygn...> |
Commiter | Roland Pesch |
(1) further restructuring;
(2) fix two bugs reported by Per Bothner;
(3) eliminate info structural information that can be generated
@@ -110,7 +110,7 @@ original English. | ||
110 | 110 | @end titlepage |
111 | 111 | @page |
112 | 112 | |
113 | -@node Top, New Features, (dir), (dir) | |
113 | +@node Top,,, | |
114 | 114 | @unnumbered Summary of _GDBN__ |
115 | 115 | |
116 | 116 | The purpose of a debugger such as _GDBN__ is to allow you to see what is |
@@ -155,7 +155,7 @@ from anyone else. | ||
155 | 155 | |
156 | 156 | For full details, @pxref{License}. |
157 | 157 | |
158 | -@node New Features, Invocation, Top, Top | |
158 | +@node New Features,,, | |
159 | 159 | @unnumbered New Features in _GDBN__ version 4.0 |
160 | 160 | |
161 | 161 | @itemize @bullet |
@@ -222,7 +222,7 @@ HPPA architecture support. | ||
222 | 222 | @end itemize |
223 | 223 | |
224 | 224 | @node Sample Session,,, |
225 | -@chapter A Sample _GDB__ Session | |
225 | +@chapter A Sample _GDBN__ Session | |
226 | 226 | |
227 | 227 | You can use this manual at your leisure to read all about _GDBN__. |
228 | 228 | However, a handful of commands are enough to get started using the |
@@ -231,6 +231,8 @@ debugger. This chapter illustrates these commands. | ||
231 | 231 | In this sample session, we emphasize user input like this: @var{input}, |
232 | 232 | to make it easier to pick out from the surrounding output. |
233 | 233 | |
234 | +@c FIXME: this example may not be appropriate for some configs, where | |
235 | +@c FIXME...primary interest is in remote use. | |
234 | 236 | We'll be using _GDBN__ to inspect GNU @code{m4} (a generic macro |
235 | 237 | processor). |
236 | 238 |
@@ -239,11 +241,14 @@ $ @var{cd gm4/common} | ||
239 | 241 | |
240 | 242 | $ @var{_GDBP__ m4} |
241 | 243 | Reading symbol data from m4...done. |
244 | +(_GDBP__) set width 70 | |
242 | 245 | @end smallexample |
243 | 246 | |
244 | 247 | @noindent |
245 | 248 | _GDBN__ only reads enough symbol data to know where to find the rest |
246 | -when needed; as a result, the first prompt comes up very quickly. | |
249 | +when needed; as a result, the first prompt comes up very quickly. We | |
250 | +immediately told _GDBN__ to use a narrower display width than usual, so | |
251 | +that examples will fit in this manual. | |
247 | 252 | |
248 | 253 | @smallexample |
249 | 254 | (_GDBP__) @var{break m4_changequote} |
@@ -251,9 +256,10 @@ Breakpoint 1 at 0x59d4: file builtin.c, line 812. | ||
251 | 256 | @end smallexample |
252 | 257 | |
253 | 258 | @noindent |
254 | -We've chosen to see how the @code{m4} builtin @samp{changequote} | |
255 | -works. We know the relevant subroutine is @samp{m4_changequote} (from | |
256 | -inspecting the source), so we set a breakpoint there. | |
259 | +We've chosen to see how the @code{m4} builtin @samp{changequote} works. | |
260 | +Having looked at the source, we knew the relevant subroutine is | |
261 | +@samp{m4_changequote}. We've set a breakpoint there with _GDBN__'s | |
262 | +@code{break} command. | |
257 | 263 | |
258 | 264 | @smallexample |
259 | 265 | (_GDBP__) @var{run} |
@@ -263,42 +269,45 @@ usual quotes <not these> | ||
263 | 269 | @end smallexample |
264 | 270 | |
265 | 271 | @noindent |
266 | -Now we've started @code{m4} running under _GDBN__ control; while we don't touch | |
267 | -the @samp{m4_changequote} subroutine, the program runs as usual. | |
272 | +Using the @samp{run} command, we've started @code{m4} running under | |
273 | +_GDBN__ control; while we don't touch the @samp{m4_changequote} | |
274 | +subroutine, the program runs as usual---it filters standard input. | |
268 | 275 | |
269 | 276 | @smallexample |
270 | 277 | @var{changequote(<,>)} |
271 | 278 | |
272 | 279 | Breakpoint 1, m4_changequote (argc=3, argv=0x2b958) at builtin.c:812 |
273 | -812 if (bad_argc(TOKEN_DATA_TEXT(argv[0]), argc, 1, 3)) | |
280 | +812 if (bad_argc(TOKEN_DATA_TEXT(argv[0]), argc, 1, 3)) | |
274 | 281 | @end smallexample |
275 | 282 | @noindent |
276 | -Once we've encountered the breakpoint, _GDBN__ suspends execution | |
277 | -of our program, displaying information about where it stopped. | |
283 | +To trigger the breakpoint, we called @code{changequote}. _GDBN__ | |
284 | +suspended execution of @code{m4}, displaying information about the | |
285 | +context where it stopped. | |
278 | 286 | |
279 | 287 | @smallexample |
280 | 288 | (_GDBP__) @var{s} |
281 | -bad_argc (name=0xf833cfb4<Address 0xf833cfb4 out of | |
282 | - bounds>, argc=3, min=1, max=3) at builtin.c:230 | |
283 | -230 if (min > 0 && argc < min) @{ | |
289 | +bad_argc (name=0xf851cfb4<Address 0xf851cfb4 out of bounds>, argc=3, | |
290 | + min=1, max=3) at builtin.c:230 | |
291 | +230 if (min > 0 && argc < min) @{ | |
284 | 292 | @end smallexample |
285 | 293 | @noindent |
286 | -We single-stepped with the command @samp{s}; since there was a subroutine | |
287 | -call, we've stopped in the first line of that subroutine, not in the next line | |
288 | -of @code{m4_changequote}. | |
294 | +We've used the command @samp{s} (@code{step}) to advance execution to | |
295 | +the next source line; since there was a subroutine call, we've stopped | |
296 | +in the first line of that subroutine, not in the next line of | |
297 | +@code{m4_changequote}. | |
289 | 298 | |
290 | -The command @samp{next} would have taken us to the next line of the same | |
291 | -subroutine. Now that we've stopped deeper in the stack, we can use the | |
292 | -@samp{backtrace} command (which can also be spelled @samp{bt}) to get | |
293 | -information about where we are. | |
299 | +The command @samp{next} would have taken us to the next line of | |
300 | +@code{m4_changequote}. To see where we are in the stack, we can use the | |
301 | +@samp{backtrace} command (which can also be spelled @samp{bt}). | |
294 | 302 | |
295 | 303 | @smallexample |
296 | 304 | (_GDBP__) @var{bt} |
297 | -#0 bad_argc (name=0xf833cfb4<Address 0xf833cfb4 out of bounds>, argc=3, | |
298 | - min=1, max=3) at builtin.c:230 | |
305 | +#0 bad_argc (name=0xf851cfb4<Address 0xf851cfb4 out of bounds>, | |
306 | + argc=3, min=1, max=3) at builtin.c:230 | |
299 | 307 | #1 0x59ec in m4_changequote (argc=3, argv=0x2b958) at builtin.c:812 |
300 | 308 | #2 0x6e38 in expand_macro (sym=0x2b060) at macro.c:242 |
301 | -#3 0x6840 in expand_token (obs=0x0, t=176224, td=0xf7fffb08) at macro.c:71 | |
309 | +#3 0x6840 in expand_token (obs=0x0, t=176224, td=0xf7fffb08) | |
310 | + at macro.c:71 | |
302 | 311 | #4 0x6794 in expand_input () at macro.c:40 |
303 | 312 | #5 0x28dc in main (argc=0, argv=0xf7fffbf8) at m4.c:174 |
304 | 313 | @end smallexample |
@@ -309,13 +318,28 @@ to @code{m4_changequote}. | ||
309 | 318 | |
310 | 319 | @smallexample |
311 | 320 | (_GDBP__) @var{finish} |
312 | -Run till exit from #0 bad_argc (name=0xf833cfb4<Address 0xf833cfb4 out of | |
313 | - bounds>, argc=3, min=1, max=3) at builtin.c:230 | |
321 | +Run till exit from #0 bad_argc (name=0xf851cfb4<Address 0xf851cfb4 out | |
322 | + of bounds>, | |
323 | + argc=3, min=1, max=3) at builtin.c:230 | |
314 | 324 | 0x59ec in m4_changequote (argc=3, argv=0x2b958) at builtin.c:812 |
315 | -812 if (bad_argc(TOKEN_DATA_TEXT(argv[0]), argc, 1, 3)) | |
325 | +812 if (bad_argc(TOKEN_DATA_TEXT(argv[0]), argc, 1, 3)) | |
316 | 326 | Value returned is $1 = false |
327 | +@end smallexample | |
328 | + | |
329 | +@noindent | |
330 | +We're still in the middle of the first line of @code{m4_changequote}; | |
331 | +@samp{finish} just allowed the subroutine call to complete. | |
332 | +The display beginning ``@code{0x59ec in}@dots'', preceding the | |
333 | +display of line @code{812}, is a reminder of that situation from | |
334 | +_GDBN__. | |
335 | + | |
336 | +Now that we're past the subroutine call, using the @code{step} command | |
337 | +again will get us to the next line of @code{m4_changequote}. | |
338 | + | |
339 | +@smallexample | |
317 | 340 | (_GDBP__) @var{s} |
318 | -815 lquote = (argc >= 2) ? TOKEN_DATA_TEXT(argv[1])[0] : DEF_LQUOTE; | |
341 | +815 lquote = (argc >= 2) ? TOKEN_DATA_TEXT(argv[1])[0] : DEF_LQ | |
342 | +UOTE; | |
319 | 343 | (_GDBP__) @var{whatis lquote} |
320 | 344 | type = char |
321 | 345 | (_GDBP__) @var{p lquote} |
@@ -331,20 +355,23 @@ command. | ||
331 | 355 | |
332 | 356 | @smallexample |
333 | 357 | (_GDBP__) @var{l} |
334 | -810 token_data **argv; | |
335 | -811 @{ | |
336 | -812 if (bad_argc(TOKEN_DATA_TEXT(argv[0]), argc, 1, 3)) | |
337 | -813 return; | |
338 | -814 | |
339 | -815 lquote = (argc >= 2) ? TOKEN_DATA_TEXT(argv[1])[0] : DEF_LQUOTE; | |
340 | -816 rquote = (argc >= 3) ? TOKEN_DATA_TEXT(argv[2])[0] : DEF_RQUOTE; | |
341 | -817 @} | |
342 | -818 | |
343 | -819 /* | |
358 | +810 token_data **argv; | |
359 | +811 @{ | |
360 | +812 if (bad_argc(TOKEN_DATA_TEXT(argv[0]), argc, 1, 3)) | |
361 | +813 return; | |
362 | +814 | |
363 | +815 lquote = (argc >= 2) ? TOKEN_DATA_TEXT(argv[1])[0] : DEF_LQ | |
364 | +UOTE; | |
365 | +816 rquote = (argc >= 3) ? TOKEN_DATA_TEXT(argv[2])[0] : DEF_RQ | |
366 | +UOTE; | |
367 | +817 @} | |
368 | +818 | |
369 | +819 /* | |
344 | 370 | (_GDBP__) @var{s} |
345 | -816 rquote = (argc >= 3) ? TOKEN_DATA_TEXT(argv[2])[0] : DEF_RQUOTE; | |
371 | +816 rquote = (argc >= 3) ? TOKEN_DATA_TEXT(argv[2])[0] : DEF_RQ | |
372 | +UOTE; | |
346 | 373 | (_GDBP__) @var{s} |
347 | -817 @} | |
374 | +817 @} | |
348 | 375 | (_GDBP__) @var{p lquote} |
349 | 376 | $3 = 60 '<' |
350 | 377 | (_GDBP__) @var{p rquote} |
@@ -379,8 +406,8 @@ Finally, when we ended the @code{m4} run, _GDBN__ told us | ||
379 | 406 | the _GDBN__ @samp{quit} command. |
380 | 407 | |
381 | 408 | |
382 | -@node Starting and Stopping,,, | |
383 | -@chapter Starting and Stopping | |
409 | +@node Invocation,,, | |
410 | +@chapter Getting In and Out of _GDBN__ | |
384 | 411 | |
385 | 412 | @node Starting _GDBN__,,, |
386 | 413 | @section Starting _GDBN__ |
@@ -407,8 +434,8 @@ All the options and command line arguments given are processed | ||
407 | 434 | in sequential order. The order makes a difference when the |
408 | 435 | @samp{-x} option is used. |
409 | 436 | |
410 | -@node File Options, Mode Options, Invocation, Invocation | |
411 | -@subsection Options and Arguments to Choose Files | |
437 | +@node File Options,,, | |
438 | +@subsection Choosing Files | |
412 | 439 | |
413 | 440 | As shown above, any arguments other than options specify an executable |
414 | 441 | file and core file; that is, the first argument encountered with no |
@@ -438,8 +465,8 @@ Execute _GDBN__ commands from file @var{file}. @xref{Command Files}. | ||
438 | 465 | Add @var{directory} to the path to search for source files. |
439 | 466 | @end table |
440 | 467 | |
441 | -@node Mode Options, , , | |
442 | -@subsection Options to Choose Modes | |
468 | +@node Mode Options,,, | |
469 | +@subsection Choosing Modes | |
443 | 470 | |
444 | 471 | @table @code |
445 | 472 | @item -nx |
@@ -486,9 +513,9 @@ _GDBN__ for remote debugging. | ||
486 | 513 | |
487 | 514 | _if__(_I960__) |
488 | 515 | @node i960-Nindy Remote,,, |
489 | -@subsection _GDBN__ with a Remote Intel 960 (Nindy) | |
516 | +@subsection _GDBN__ with a Remote i960 (Nindy) | |
490 | 517 | |
491 | -``Nindy'' is the name of a Rom Monitor program for Intel 960 target | |
518 | +``Nindy'' is the name of a ROM Monitor program for Intel 960 target | |
492 | 519 | systems. When _GDBN__ is configured to control a remote Intel 960 using |
493 | 520 | Nindy, you can tell _GDBN__ how to connect to the 960 in several ways: |
494 | 521 |
@@ -720,7 +747,7 @@ once again, after your _GDBN__ session has concluded, to attach to | ||
720 | 747 | Type @samp{CTTY con} to return command input to the main DOS console, |
721 | 748 | and type @samp{~.} to leave @code{tip} or @code{cu}. |
722 | 749 | |
723 | -@node Remote Log, , Remote Commands, Remote | |
750 | +@node Remote Log,,, | |
724 | 751 | @subsubsection Remote Log |
725 | 752 | @kindex eb.log |
726 | 753 | @cindex log file for EB29K |
@@ -1014,17 +1041,7 @@ If the modification time of your symbol file has changed since the last | ||
1014 | 1041 | time _GDBN__ read its symbols, _GDBN__ will discard its symbol table and re-read |
1015 | 1042 | it. In this process, it tries to retain your current breakpoints. |
1016 | 1043 | |
1017 | -@menu | |
1018 | -* Arguments:: Specifying the arguments for your program. | |
1019 | -* Environment:: Specifying the environment for your program. | |
1020 | -* Working Directory:: Specifying the working directory for giving | |
1021 | - to your program when it is run. | |
1022 | -* Input/Output:: Specifying the program's standard input and output. | |
1023 | -* Attach:: Debugging a process started outside _GDBN__. | |
1024 | -* Kill Process:: Getting rid of the child process running your program. | |
1025 | -@end menu | |
1026 | - | |
1027 | -@node Arguments, Environment, Running, Running | |
1044 | +@node Arguments,,, | |
1028 | 1045 | @section Your Program's Arguments |
1029 | 1046 | |
1030 | 1047 | @cindex arguments (to your program) |
@@ -1049,7 +1066,7 @@ this is the only way to do so. | ||
1049 | 1066 | Show the arguments to give your program when it is started. |
1050 | 1067 | @end table |
1051 | 1068 | |
1052 | -@node Environment, Working Directory, Arguments, Running | |
1069 | +@node Environment,,, | |
1053 | 1070 | @section Your Program's Environment |
1054 | 1071 | |
1055 | 1072 | @cindex environment (of your program) |
@@ -1101,7 +1118,7 @@ rather than assigning it an empty value. This command can be | ||
1101 | 1118 | abbreviated @samp{d e}. |
1102 | 1119 | @end table |
1103 | 1120 | |
1104 | -@node Working Directory, Input/Output, Environment, Running | |
1121 | +@node Working Directory,,, | |
1105 | 1122 | @section Your Program's Working Directory |
1106 | 1123 | |
1107 | 1124 | @cindex working directory (of your program) |
@@ -1124,7 +1141,7 @@ Set _GDBN__'s working directory to @var{directory}. | ||
1124 | 1141 | Print _GDBN__'s working directory. |
1125 | 1142 | @end table |
1126 | 1143 | |
1127 | -@node Input/Output, Attach, Working Directory, Running | |
1144 | +@node Input/Output,,, | |
1128 | 1145 | @section Your Program's Input and Output |
1129 | 1146 | |
1130 | 1147 | @cindex redirection |
@@ -1168,7 +1185,7 @@ When you use the @samp{tty} command or redirect input in the @samp{run} | ||
1168 | 1185 | command, only the @emph{input for your program} is affected. The input |
1169 | 1186 | for _GDBN__ still comes from your terminal. |
1170 | 1187 | |
1171 | -@node Attach, Kill Process, Input/Output, Running | |
1188 | +@node Attach,,, | |
1172 | 1189 | @section Debugging an Already-Running Process |
1173 | 1190 | @kindex attach |
1174 | 1191 | @cindex attach |
@@ -1209,9 +1226,9 @@ If you exit _GDBN__ or use the @samp{run} command while you have an attached | ||
1209 | 1226 | process, you kill that process. By default, you will be asked for |
1210 | 1227 | confirmation if you try to do either of these things; you can control |
1211 | 1228 | whether or not this happens by using the @samp{set caution} command |
1212 | -(@pxref{User Interface}). | |
1229 | +(@pxref{Messages/Warnings}). | |
1213 | 1230 | |
1214 | -@node Kill Process, , Attach, Running | |
1231 | +@node Kill Process,,, | |
1215 | 1232 | @section Killing the Child Process |
1216 | 1233 | |
1217 | 1234 | @table @code |
@@ -1235,7 +1252,7 @@ next type @samp{run}, _GDBN__ will notice that the file has changed, and | ||
1235 | 1252 | will re-read the symbol table (while trying to preserve your current |
1236 | 1253 | breakpoint settings). |
1237 | 1254 | |
1238 | -@node Stopping, Stack, Running, Top | |
1255 | +@node Stopping,,, | |
1239 | 1256 | @chapter Stopping and Continuing |
1240 | 1257 | |
1241 | 1258 | When you run a program normally, it runs until it terminates. The |
@@ -1243,101 +1260,7 @@ principal purpose of using a debugger is so that you can stop it before | ||
1243 | 1260 | that point; or so that if the program runs into trouble you can |
1244 | 1261 | investigate and find out why. |
1245 | 1262 | |
1246 | -@menu | |
1247 | -* Signals:: Fatal signals in your program just stop it; | |
1248 | - then you can use _GDBN__ to see what is going on. | |
1249 | -* Breakpoints:: Breakpoints let you stop your program when it | |
1250 | - reaches a specified point in the code. | |
1251 | - an expression changes. | |
1252 | -* Continuing:: Resuming execution until the next signal or breakpoint. | |
1253 | -* Stepping:: Stepping runs the program a short distance and | |
1254 | - then stops it wherever it has come to. | |
1255 | -@end menu | |
1256 | - | |
1257 | -@node Signals, Breakpoints, Stopping, Stopping | |
1258 | -@section Signals | |
1259 | -@cindex signals | |
1260 | - | |
1261 | -A signal is an asynchronous event that can happen in a program. The | |
1262 | -operating system defines the possible kinds of signals, and gives each kind | |
1263 | -a name and a number. For example, @code{SIGINT} is the signal a program | |
1264 | -gets when you type @kbd{Ctrl-c}; @code{SIGSEGV} is the signal a program | |
1265 | -gets from referencing a place in memory far away from all the areas in use; | |
1266 | -@code{SIGALRM} occurs when the alarm clock timer goes off (which happens | |
1267 | -only if the program has requested an alarm). | |
1268 | - | |
1269 | -@cindex fatal signals | |
1270 | -Some signals, including @code{SIGALRM}, are a normal part of the | |
1271 | -functioning of the program. Others, such as @code{SIGSEGV}, indicate | |
1272 | -errors; these signals are @dfn{fatal} (kill the program immediately) if the | |
1273 | -program has not specified in advance some other way to handle the signal. | |
1274 | -@code{SIGINT} does not indicate an error in the program, but it is normally | |
1275 | -fatal so it can carry out the purpose of @kbd{Ctrl-c}: to kill the program. | |
1276 | - | |
1277 | -_GDBN__ has the ability to detect any occurrence of a signal in the program | |
1278 | -running under _GDBN__'s control. You can tell _GDBN__ in advance what to do for | |
1279 | -each kind of signal. | |
1280 | - | |
1281 | -@cindex handling signals | |
1282 | -Normally, _GDBN__ is set up to ignore non-erroneous signals like @code{SIGALRM} | |
1283 | -(so as not to interfere with their role in the functioning of the program) | |
1284 | -but to stop the program immediately whenever an error signal happens. | |
1285 | -You can change these settings with the @samp{handle} command. | |
1286 | - | |
1287 | -@table @code | |
1288 | -@item info signal | |
1289 | -@kindex info signal | |
1290 | -Print a table of all the kinds of signals and how _GDBN__ has been told to | |
1291 | -handle each one. You can use this to see the signal numbers of all | |
1292 | -the defined types of signals. | |
1293 | - | |
1294 | -@item handle @var{signal} @var{keywords}@dots{} | |
1295 | -@kindex handle | |
1296 | -Change the way _GDBN__ handles signal @var{signal}. @var{signal} can be the | |
1297 | -number of a signal or its name (with or without the @samp{SIG} at the | |
1298 | -beginning). The @var{keywords} say what change to make. | |
1299 | -@end table | |
1300 | - | |
1301 | -The keywords allowed by the @samp{handle} command can be abbreviated. | |
1302 | -Their full names are | |
1303 | - | |
1304 | -@table @code | |
1305 | -@item nostop | |
1306 | -_GDBN__ should not stop the program when this signal happens. It may | |
1307 | -still print a message telling you that the signal has come in. | |
1308 | - | |
1309 | -@item stop | |
1310 | -_GDBN__ should stop the program when this signal happens. This implies | |
1311 | -the @samp{print} keyword as well. | |
1312 | - | |
1313 | -@item print | |
1314 | -_GDBN__ should print a message when this signal happens. | |
1315 | - | |
1316 | -@item noprint | |
1317 | -_GDBN__ should not mention the occurrence of the signal at all. This | |
1318 | -implies the @samp{nostop} keyword as well. | |
1319 | - | |
1320 | -@item pass | |
1321 | -_GDBN__ should allow the program to see this signal; the program will be | |
1322 | -able to handle the signal, or may be terminated if the signal is fatal | |
1323 | -and not handled. | |
1324 | - | |
1325 | -@item nopass | |
1326 | -_GDBN__ should not allow the program to see this signal. | |
1327 | -@end table | |
1328 | - | |
1329 | -When a signal has been set to stop the program, the program cannot see the | |
1330 | -signal until you continue. It will see the signal then, if @samp{pass} is | |
1331 | -in effect for the signal in question @i{at that time}. In other words, | |
1332 | -after _GDBN__ reports a signal, you can use the @samp{handle} command with | |
1333 | -@samp{pass} or @samp{nopass} to control whether that signal will be seen by | |
1334 | -the program when you later continue it. | |
1335 | - | |
1336 | -You can also use the @samp{signal} command to prevent the program from | |
1337 | -seeing a signal, or cause it to see a signal it normally would not see, | |
1338 | -or to give it any signal at any time. @xref{Signaling}. | |
1339 | - | |
1340 | -@node Breakpoints, Continuing, Signals, Stopping | |
1263 | +@node Breakpoints,,, | |
1341 | 1264 | @section Breakpoints |
1342 | 1265 | |
1343 | 1266 | @cindex breakpoints |
@@ -1387,17 +1310,7 @@ releases of _GDBN__ will use such hardware if it is available. | ||
1387 | 1310 | |
1388 | 1311 | @end table |
1389 | 1312 | |
1390 | -@menu | |
1391 | -* Set Breaks:: How to establish breakpoints. | |
1392 | -* Exception Handling:: How _GDBN__ supports exception handling for C++. | |
1393 | -* Delete Breaks:: How to remove breakpoints no longer needed. | |
1394 | -* Disabling:: How to disable breakpoints (turn them off temporarily). | |
1395 | -* Conditions:: Making extra conditions on whether to stop. | |
1396 | -* Break Commands:: Commands to be executed at a breakpoint. | |
1397 | -* Error in Breakpoints:: | |
1398 | -@end menu | |
1399 | - | |
1400 | -@node Set Breaks, Exception Handling, Breakpoints, Breakpoints | |
1313 | +@node Set Breaks,,, | |
1401 | 1314 | @subsection Setting Breakpoints |
1402 | 1315 | |
1403 | 1316 | @kindex break |
@@ -1484,7 +1397,7 @@ _GDBN__ allows you to set any number of breakpoints at the same place in the | ||
1484 | 1397 | program. There is nothing silly or meaningless about this. When the |
1485 | 1398 | breakpoints are conditional, this is even useful (@pxref{Conditions}). |
1486 | 1399 | |
1487 | -@node Exception Handling, Delete Breaks, Set Breaks, Breakpoints | |
1400 | +@node Exception Handling,,, | |
1488 | 1401 | @subsection Breakpoints and Exceptions |
1489 | 1402 | @cindex exception handlers |
1490 | 1403 |
@@ -1543,7 +1456,7 @@ You cannot raise an exception interactively. | ||
1543 | 1456 | You cannot interactively install an exception handler. |
1544 | 1457 | @end itemize |
1545 | 1458 | |
1546 | -@node Delete Breaks, Disabling, Exception Handling, Breakpoints | |
1459 | +@node Delete Breaks,,, | |
1547 | 1460 | @subsection Deleting Breakpoints |
1548 | 1461 | |
1549 | 1462 | @cindex clearing breakpoints, watchpoints |
@@ -1586,7 +1499,7 @@ Delete the breakpoints of the numbers specified as arguments. If no | ||
1586 | 1499 | argument is specified, delete all breakpoints. |
1587 | 1500 | @end table |
1588 | 1501 | |
1589 | -@node Disabling, Conditions, Delete Breaks, Breakpoints | |
1502 | +@node Disabling,,, | |
1590 | 1503 | @subsection Disabling Breakpoints |
1591 | 1504 | |
1592 | 1505 | @cindex disabled breakpoints |
@@ -1660,7 +1573,7 @@ of the commands above. (The command @samp{until} can set and delete a | ||
1660 | 1573 | breakpoint on its own, but it will not change the state of your |
1661 | 1574 | breakpoints). |
1662 | 1575 | |
1663 | -@node Conditions, Break Commands, Disabling, Breakpoints | |
1576 | +@node Conditions,,, | |
1664 | 1577 | @subsection Break Conditions |
1665 | 1578 | @cindex conditional breakpoints |
1666 | 1579 | @cindex breakpoint conditions |
@@ -1751,7 +1664,7 @@ Note that you could achieve the effect of the ignore count with a | ||
1751 | 1664 | condition such as _0__@w{@samp{$foo-- <= 0}}_1__ using a debugger convenience |
1752 | 1665 | variable that is decremented each time. @xref{Convenience Vars}. |
1753 | 1666 | |
1754 | -@node Break Commands, Error in Breakpoints, Conditions, Breakpoints | |
1667 | +@node Break Commands,,, | |
1755 | 1668 | @subsection Commands Executed on Breaking |
1756 | 1669 | |
1757 | 1670 | @cindex breakpoint commands |
@@ -1846,7 +1759,7 @@ evaluated without changing the terminal modes. When you want to have | ||
1846 | 1759 | nontrivial conditions for performing the side effects, the operators |
1847 | 1760 | @samp{&&}, @samp{||} and @samp{?@dots{}:} may be useful. |
1848 | 1761 | |
1849 | -@node Error in Breakpoints, , Break Commands, Breakpoints | |
1762 | +@node Error in Breakpoints,,, | |
1850 | 1763 | @subsection ``Cannot Insert Breakpoints'' |
1851 | 1764 | |
1852 | 1765 | @c FIXME: "cannot insert breakpoints" error, v unclear. |
@@ -1873,42 +1786,7 @@ linker option @samp{-N}. The operating system limitation may not apply | ||
1873 | 1786 | to nonsharable executables. |
1874 | 1787 | @end enumerate |
1875 | 1788 | |
1876 | -@node Continuing, Stepping, Breakpoints, Stopping | |
1877 | -@section Continuing | |
1878 | - | |
1879 | -After your program stops, most likely you will want it to run some more if | |
1880 | -the bug you are looking for has not happened yet. | |
1881 | - | |
1882 | -@table @code | |
1883 | -@item continue | |
1884 | -@item cont | |
1885 | -@kindex cont | |
1886 | -@kindex continue | |
1887 | -Continue running the program at the place where it stopped. | |
1888 | -@end table | |
1889 | - | |
1890 | -If the program stopped at a breakpoint, the place to continue running | |
1891 | -is the address of the breakpoint. You might expect that continuing would | |
1892 | -just stop at the same breakpoint immediately. In fact, @samp{cont} | |
1893 | -takes special care to prevent that from happening. You do not need | |
1894 | -to delete the breakpoint to proceed through it after stopping at it. | |
1895 | - | |
1896 | -You can, however, specify an ignore-count for the breakpoint that the | |
1897 | -program stopped at, by means of an argument to the @samp{cont} command. | |
1898 | -@xref{Conditions}. | |
1899 | - | |
1900 | -If the program stopped because of a signal other than @code{SIGINT} or | |
1901 | -@code{SIGTRAP}, continuing will cause the program to see that signal. | |
1902 | -You may not want this to happen. For example, if the program stopped | |
1903 | -due to some sort of memory reference error, you might store correct | |
1904 | -values into the erroneous variables and continue, hoping to see more | |
1905 | -execution; but the program would probably terminate immediately as | |
1906 | -a result of the fatal signal once it sees the signal. To prevent this, | |
1907 | -you can continue with @samp{signal 0}. @xref{Signaling}. You can | |
1908 | -also act in advance to control what signals your program will see, using | |
1909 | -the @samp{handle} command (@pxref{Signals}). | |
1910 | - | |
1911 | -@node Stepping, , Continuing, Stopping | |
1789 | +@node Stepping,,, | |
1912 | 1790 | @section Stepping |
1913 | 1791 | |
1914 | 1792 | @cindex stepping |
@@ -2023,7 +1901,126 @@ problem happens. | ||
2023 | 1901 | The @samp{cont} command can be used after stepping to resume execution |
2024 | 1902 | until the next breakpoint or signal. |
2025 | 1903 | |
2026 | -@node Stack, Source, Stopping, Top | |
1904 | +@node Continuing,,, | |
1905 | +@section Continuing | |
1906 | + | |
1907 | +After your program stops, most likely you will want it to run some more if | |
1908 | +the bug you are looking for has not happened yet. | |
1909 | + | |
1910 | +@table @code | |
1911 | +@item continue | |
1912 | +@item cont | |
1913 | +@kindex cont | |
1914 | +@kindex continue | |
1915 | +Continue running the program at the place where it stopped. | |
1916 | +@end table | |
1917 | + | |
1918 | +If the program stopped at a breakpoint, the place to continue running | |
1919 | +is the address of the breakpoint. You might expect that continuing would | |
1920 | +just stop at the same breakpoint immediately. In fact, @samp{cont} | |
1921 | +takes special care to prevent that from happening. You do not need | |
1922 | +to delete the breakpoint to proceed through it after stopping at it. | |
1923 | + | |
1924 | +You can, however, specify an ignore-count for the breakpoint that the | |
1925 | +program stopped at, by means of an argument to the @samp{cont} command. | |
1926 | +@xref{Conditions}. | |
1927 | + | |
1928 | +If the program stopped because of a signal other than @code{SIGINT} or | |
1929 | +@code{SIGTRAP}, continuing will cause the program to see that signal. | |
1930 | +You may not want this to happen. For example, if the program stopped | |
1931 | +due to some sort of memory reference error, you might store correct | |
1932 | +values into the erroneous variables and continue, hoping to see more | |
1933 | +execution; but the program would probably terminate immediately as | |
1934 | +a result of the fatal signal once it sees the signal. To prevent this, | |
1935 | +you can continue with @samp{signal 0}. @xref{Signaling}. You can | |
1936 | +also act in advance to control what signals your program will see, using | |
1937 | +the @samp{handle} command (@pxref{Signals}). | |
1938 | + | |
1939 | +@node Signals,,, | |
1940 | +@section Signals | |
1941 | +@cindex signals | |
1942 | + | |
1943 | +A signal is an asynchronous event that can happen in a program. The | |
1944 | +operating system defines the possible kinds of signals, and gives each | |
1945 | +kind a name and a number. For example, in Unix @code{SIGINT} is the | |
1946 | +signal a program gets when you type @kbd{Ctrl-c}; @code{SIGSEGV} is the | |
1947 | +signal a program gets from referencing a place in memory far away from | |
1948 | +all the areas in use; @code{SIGALRM} occurs when the alarm clock timer | |
1949 | +goes off (which happens only if the program has requested an alarm). | |
1950 | + | |
1951 | +@cindex fatal signals | |
1952 | +Some signals, including @code{SIGALRM}, are a normal part of the | |
1953 | +functioning of the program. Others, such as @code{SIGSEGV}, indicate | |
1954 | +errors; these signals are @dfn{fatal} (kill the program immediately) if the | |
1955 | +program has not specified in advance some other way to handle the signal. | |
1956 | +@code{SIGINT} does not indicate an error in the program, but it is normally | |
1957 | +fatal so it can carry out the purpose of @kbd{Ctrl-c}: to kill the program. | |
1958 | + | |
1959 | +_GDBN__ has the ability to detect any occurrence of a signal in the program | |
1960 | +running under _GDBN__'s control. You can tell _GDBN__ in advance what to do for | |
1961 | +each kind of signal. | |
1962 | + | |
1963 | +@cindex handling signals | |
1964 | +Normally, _GDBN__ is set up to ignore non-erroneous signals like @code{SIGALRM} | |
1965 | +(so as not to interfere with their role in the functioning of the program) | |
1966 | +but to stop the program immediately whenever an error signal happens. | |
1967 | +You can change these settings with the @samp{handle} command. | |
1968 | + | |
1969 | +@table @code | |
1970 | +@item info signal | |
1971 | +@kindex info signal | |
1972 | +Print a table of all the kinds of signals and how _GDBN__ has been told to | |
1973 | +handle each one. You can use this to see the signal numbers of all | |
1974 | +the defined types of signals. | |
1975 | + | |
1976 | +@item handle @var{signal} @var{keywords}@dots{} | |
1977 | +@kindex handle | |
1978 | +Change the way _GDBN__ handles signal @var{signal}. @var{signal} can be the | |
1979 | +number of a signal or its name (with or without the @samp{SIG} at the | |
1980 | +beginning). The @var{keywords} say what change to make. | |
1981 | +@end table | |
1982 | + | |
1983 | +The keywords allowed by the @samp{handle} command can be abbreviated. | |
1984 | +Their full names are | |
1985 | + | |
1986 | +@table @code | |
1987 | +@item nostop | |
1988 | +_GDBN__ should not stop the program when this signal happens. It may | |
1989 | +still print a message telling you that the signal has come in. | |
1990 | + | |
1991 | +@item stop | |
1992 | +_GDBN__ should stop the program when this signal happens. This implies | |
1993 | +the @samp{print} keyword as well. | |
1994 | + | |
1995 | +@item print | |
1996 | +_GDBN__ should print a message when this signal happens. | |
1997 | + | |
1998 | +@item noprint | |
1999 | +_GDBN__ should not mention the occurrence of the signal at all. This | |
2000 | +implies the @samp{nostop} keyword as well. | |
2001 | + | |
2002 | +@item pass | |
2003 | +_GDBN__ should allow the program to see this signal; the program will be | |
2004 | +able to handle the signal, or may be terminated if the signal is fatal | |
2005 | +and not handled. | |
2006 | + | |
2007 | +@item nopass | |
2008 | +_GDBN__ should not allow the program to see this signal. | |
2009 | +@end table | |
2010 | + | |
2011 | +When a signal has been set to stop the program, the program cannot see the | |
2012 | +signal until you continue. It will see the signal then, if @samp{pass} is | |
2013 | +in effect for the signal in question @i{at that time}. In other words, | |
2014 | +after _GDBN__ reports a signal, you can use the @samp{handle} command with | |
2015 | +@samp{pass} or @samp{nopass} to control whether that signal will be seen by | |
2016 | +the program when you later continue it. | |
2017 | + | |
2018 | +You can also use the @samp{signal} command to prevent the program from | |
2019 | +seeing a signal, or cause it to see a signal it normally would not see, | |
2020 | +or to give it any signal at any time. @xref{Signaling}. | |
2021 | + | |
2022 | + | |
2023 | +@node Stack,,, | |
2027 | 2024 | @chapter Examining the Stack |
2028 | 2025 | |
2029 | 2026 | When your program has stopped, the first thing you need to know is where it |
@@ -2050,14 +2047,7 @@ When the program stops, _GDBN__ automatically selects the currently executing | ||
2050 | 2047 | frame and describes it briefly as the @samp{frame} command does |
2051 | 2048 | (@pxref{Frame Info, Info}). |
2052 | 2049 | |
2053 | -@menu | |
2054 | -* Frames:: Explanation of stack frames and terminology. | |
2055 | -* Backtrace:: Summarizing many frames at once. | |
2056 | -* Selection:: How to select a stack frame. | |
2057 | -* Frame Info:: Information on a Frame | |
2058 | -@end menu | |
2059 | - | |
2060 | -@node Frames, Backtrace, Stack, Stack | |
2050 | +@node Frames,,, | |
2061 | 2051 | @section Stack Frames |
2062 | 2052 | |
2063 | 2053 | @cindex frame |
@@ -2111,7 +2101,7 @@ frame, _GDBN__ will give it a virtual stack frame of 0 and correctly allow | ||
2111 | 2101 | tracing of the function call chain. Results are undefined if a function |
2112 | 2102 | invocation besides the innermost one is frameless. |
2113 | 2103 | |
2114 | -@node Backtrace, Selection, Frames, Stack | |
2104 | +@node Backtrace,,, | |
2115 | 2105 | @section Backtraces |
2116 | 2106 | |
2117 | 2107 | A backtrace is a summary of how the program got where it is. It shows one |
@@ -2172,7 +2162,7 @@ for the function @code{rtx_equal_p}, which is in the file | ||
2172 | 2162 | @file{rtlanal.c}. Its arguments, named @code{x} and @code{y}, are shown |
2173 | 2163 | with their typed values. |
2174 | 2164 | |
2175 | -@node Selection, Frame Info, Backtrace, Stack | |
2165 | +@node Selection,,, | |
2176 | 2166 | @section Selecting a Frame |
2177 | 2167 | |
2178 | 2168 | Most commands for examining the stack and other data in the program work on |
@@ -2236,7 +2226,7 @@ distracting. | ||
2236 | 2226 | |
2237 | 2227 | @end table |
2238 | 2228 | |
2239 | -@node Frame Info, , Selection, Stack | |
2229 | +@node Frame Info,,, | |
2240 | 2230 | @section Information on a Frame |
2241 | 2231 | |
2242 | 2232 | There are several other commands to print information about the selected |
@@ -2288,7 +2278,7 @@ exception handlers, visit the associated frame (using the @samp{up}, | ||
2288 | 2278 | @xref{Exception Handling}. |
2289 | 2279 | @end table |
2290 | 2280 | |
2291 | -@node Source, Data, Stack, Top | |
2281 | +@node Source,,, | |
2292 | 2282 | @chapter Examining Source Files |
2293 | 2283 | |
2294 | 2284 | _GDBN__ knows which source files your program was compiled from, and |
@@ -2298,13 +2288,7 @@ select a stack frame (@pxref{Selection}), _GDBN__ prints the line | ||
2298 | 2288 | which execution in that frame has stopped in. You can also |
2299 | 2289 | print parts of source files by explicit command. |
2300 | 2290 | |
2301 | -@menu | |
2302 | -* List:: Using the @samp{list} command to print source files. | |
2303 | -* Search:: Commands for searching source files. | |
2304 | -* Source Path:: Specifying the directories to search for source files. | |
2305 | -@end menu | |
2306 | - | |
2307 | -@node List, Search, Source, Source | |
2291 | +@node List,,, | |
2308 | 2292 | @section Printing Source Lines |
2309 | 2293 | |
2310 | 2294 | @kindex list |
@@ -2423,7 +2407,7 @@ is saved as the value of the convenience variable @code{$_} | ||
2423 | 2407 | (@pxref{Convenience Vars}). |
2424 | 2408 | @end table |
2425 | 2409 | |
2426 | -@node Search, Source Path, List, Source | |
2410 | +@node Search,,, | |
2427 | 2411 | @section Searching Source Files |
2428 | 2412 | @cindex searching |
2429 | 2413 | @kindex search |
@@ -2443,7 +2427,7 @@ with the one before the last line listed and going backward, for a match | ||
2443 | 2427 | for @var{regexp}. It lists the line that is found. You can abbreviate |
2444 | 2428 | this command with as little as @samp{rev}. |
2445 | 2429 | |
2446 | -@node Source Path, , Search, Source | |
2430 | +@node Source Path,,, | |
2447 | 2431 | @section Specifying Source Directories |
2448 | 2432 | |
2449 | 2433 | @cindex source path |
@@ -2503,13 +2487,16 @@ directories you want in the source path. You can add all the directories | ||
2503 | 2487 | in one command. |
2504 | 2488 | @end enumerate |
2505 | 2489 | |
2506 | -@node Data, Symbols, Source, Top | |
2490 | +@node Data,,, | |
2507 | 2491 | @chapter Examining Data |
2508 | 2492 | |
2509 | 2493 | @cindex printing data |
2510 | 2494 | @cindex examining data |
2511 | 2495 | @kindex print |
2512 | 2496 | @kindex inspect |
2497 | +@c "inspect" isn't quite a synonym if you're using Epoch, which we don't | |
2498 | +@c document because it's nonstandard... Under Epoch it displays in a | |
2499 | +@c different window or something like that. | |
2513 | 2500 | The usual way to examine data in your program is with the @samp{print} |
2514 | 2501 | command (abbreviated @samp{p}), or its synonym @samp{inspect}. It |
2515 | 2502 | evaluates and prints the value of any valid expression of the language |
@@ -2528,19 +2515,7 @@ A more low-level way of examining data is with the @samp{x} command. | ||
2528 | 2515 | It examines data in memory at a specified address and prints it in a |
2529 | 2516 | specified format. |
2530 | 2517 | |
2531 | -@menu | |
2532 | -* Expressions:: Expressions that can be computed and printed. | |
2533 | -* Variables:: Using your program's variables in expressions. | |
2534 | -* Arrays:: Examining part of memory as an array. | |
2535 | -* Format options:: Controlling how structures and arrays are printed. | |
2536 | -* Output formats:: Specifying formats for printing values. | |
2537 | -* Auto Display:: Printing certain expressions whenever program stops. | |
2538 | -* Value History:: Referring to values previously printed. | |
2539 | -* Convenience Vars:: Giving names to values for future reference. | |
2540 | -* Registers:: Referring to and storing in machine registers. | |
2541 | -@end menu | |
2542 | - | |
2543 | -@node Expressions, Variables, Data, Data | |
2518 | +@node Expressions,,, | |
2544 | 2519 | @section Expressions |
2545 | 2520 | |
2546 | 2521 | @cindex expressions |
@@ -2551,6 +2526,8 @@ conditional expressions, function calls, casts and string constants. It | ||
2551 | 2526 | unfortunately does not include symbols defined by preprocessor |
2552 | 2527 | @code{#define} commands, or C++ expressions involving @samp{::}, the |
2553 | 2528 | name resolution operator. |
2529 | +@c FIXME: actually C++ a::b works except in obscure circumstances where it | |
2530 | +@c FIXME...can conflict with GDB's own name scope resolution. | |
2554 | 2531 | |
2555 | 2532 | Casts are supported in all languages, not just in C, because it is so |
2556 | 2533 | useful to cast a number into a pointer so as to examine a structure |
@@ -2576,7 +2553,7 @@ a cast). This construct is allowed regardless of what kind of data is | ||
2576 | 2553 | officially supposed to reside at @var{addr}.@refill |
2577 | 2554 | @end table |
2578 | 2555 | |
2579 | -@node Variables, Arrays, Expressions, Data | |
2556 | +@node Variables,,, | |
2580 | 2557 | @section Program Variables |
2581 | 2558 | |
2582 | 2559 | The most common kind of expression to use is the name of a variable |
@@ -2627,7 +2604,7 @@ Unfortunately, this use of @samp{::} conflicts with the very similar use | ||
2627 | 2604 | of the same notation in C++; accordingly, _GDBN__ does not support use of |
2628 | 2605 | the C++ name resolution operator in _GDBN__ expressions. |
2629 | 2606 | |
2630 | -@node Arrays, Format options, Variables, Data | |
2607 | +@node Arrays,,, | |
2631 | 2608 | @section Artificial Arrays |
2632 | 2609 | |
2633 | 2610 | @cindex artificial array |
@@ -2663,179 +2640,21 @@ subscripting, and are coerced to pointers when used in expressions. | ||
2663 | 2640 | (It would probably appear in an expression via the value history, |
2664 | 2641 | after you had printed it out.) |
2665 | 2642 | |
2666 | -@node Format options, Output formats, Arrays, Data | |
2667 | -@section Format options | |
2643 | +@node Output formats,,, | |
2644 | +@section Output formats | |
2668 | 2645 | |
2669 | -@cindex format options | |
2670 | -_GDBN__ provides a few ways to control how arrays, structures, and symbols are | |
2671 | -printed. | |
2646 | +@cindex formatted output | |
2647 | +@cindex output formats | |
2648 | +_GDBN__ normally prints all values according to their data types. Sometimes | |
2649 | +this is not what you want. For example, you might want to print a number | |
2650 | +in hex, or a pointer in decimal. Or you might want to view data in memory | |
2651 | +at a certain address as a character string or an instruction. These things | |
2652 | +can be done with @dfn{output formats}. | |
2672 | 2653 | |
2673 | -@table @code | |
2674 | -@item set array-max @var{number-of-elements} | |
2675 | -@kindex set array-max | |
2676 | -If _GDBN__ is printing a large array, it will stop printing after it has | |
2677 | -printed the number of elements set by the @samp{set array-max} command. | |
2678 | -This limit also applies to the display of strings. | |
2679 | - | |
2680 | -@item show array-max | |
2681 | -@kindex show array-max | |
2682 | -Display the number of elements of a large array that _GDBN__ will print | |
2683 | -before losing patience. | |
2684 | - | |
2685 | -@item set arrayprint | |
2686 | -@itemx set arrayprint on | |
2687 | -@kindex set arrayprint | |
2688 | -_GDBN__ will pretty print arrays. This format is more convenient to read, | |
2689 | -but uses more space. The default is off. | |
2690 | - | |
2691 | -@item set arrayprint off. | |
2692 | -Return to compressed format for arrays. | |
2693 | - | |
2694 | -@item show arrayprint | |
2695 | -@kindex show arrayprint | |
2696 | -Show whether compressed or pretty format is selected for displaying | |
2697 | -arrays. | |
2698 | - | |
2699 | -@item set demangle | |
2700 | -@itemx set demangle on | |
2701 | -@kindex set demangle | |
2702 | -Print C++ names in their source form rather than in the mangled form | |
2703 | -in which they are passed to the assembler and linker for type-safe linkage. | |
2704 | -The default is on. | |
2705 | - | |
2706 | -@item show demangle | |
2707 | -@kindex show demangle | |
2708 | -Show whether C++ names will be printed in mangled or demangled form. | |
2709 | - | |
2710 | -@item set asm-demangle | |
2711 | -@itemx set asm-demangle on | |
2712 | -@kindex set asm-demangle | |
2713 | -Print C++ names in their source form rather than their mangled form, even | |
2714 | -in assembler code printouts such as instruction disassemblies. | |
2715 | -The default is off. | |
2716 | - | |
2717 | -@item show asm-demangle | |
2718 | -@kindex show asm-demangle | |
2719 | -Show whether C++ names in assembly listings will be printed in mangled | |
2720 | -or demangled form. | |
2721 | - | |
2722 | -@item set vtblprint | |
2723 | -@itemx set vtblprint on | |
2724 | -@kindex set vtblprint | |
2725 | -Pretty print C++ virtual function tables. The default is off. | |
2726 | - | |
2727 | -@item set vtblprint off | |
2728 | -Do not pretty print C++ virtual function tables. | |
2729 | - | |
2730 | -@item show vtblprint | |
2731 | -@kindex show vtblprint | |
2732 | -Show whether C++ virtual function tables are pretty printed, or not. | |
2733 | - | |
2734 | -@item set addressprint | |
2735 | -@item set addressprint on | |
2736 | -@kindex set addressprint | |
2737 | -_GDBN__ will print memory addresses in stack traces, structure values, pointer | |
2738 | -values, breakpoints, etc. The default is on. | |
2739 | - | |
2740 | -@item set addressprint off | |
2741 | -Do not print addresses. | |
2742 | - | |
2743 | -@item show addressprint | |
2744 | -@kindex show addressprint | |
2745 | -Show whether or not addresses are to be printed. | |
2746 | - | |
2747 | -@item set prettyprint on | |
2748 | -@kindex set prettyprint | |
2749 | -Cause _GDBN__ to print structures in an indented format with one member per | |
2750 | -line, like this: | |
2751 | - | |
2752 | -@example | |
2753 | -$1 = @{ | |
2754 | - next = 0x0, | |
2755 | - flags = @{ | |
2756 | - sweet = 1, | |
2757 | - sour = 1 | |
2758 | - @}, | |
2759 | - meat = 0x54 "Pork" | |
2760 | -@} | |
2761 | -@end example | |
2762 | - | |
2763 | -@item set prettyprint off | |
2764 | -Cause _GDBN__ to print structures in a compact format, like this: | |
2765 | - | |
2766 | -@smallexample | |
2767 | -$1 = @{next = 0x0, flags = @{sweet = 1, sour = 1@}, meat \ | |
2768 | -= 0x54 "Pork"@} | |
2769 | -@end smallexample | |
2770 | - | |
2771 | -@noindent | |
2772 | -This is the default format. | |
2773 | - | |
2774 | -@item show prettyprint | |
2775 | -@kindex show prettyprint | |
2776 | -Show which format _GDBN__ will use to print structures. | |
2777 | - | |
2778 | -@item set unionprint on | |
2779 | -@kindex set unionprint | |
2780 | -Tell _GDBN__ to print unions which are contained in structures. This is the | |
2781 | -default setting. | |
2782 | - | |
2783 | -@item set unionprint off | |
2784 | -Tell _GDBN__ not to print unions which are contained in structures. | |
2785 | - | |
2786 | -@item show unionprint | |
2787 | -@kindex show unionprint | |
2788 | -Ask _GDBN__ whether or not it will print unions which are contained in | |
2789 | -structures. | |
2790 | - | |
2791 | -For example, given the declarations | |
2792 | - | |
2793 | -@smallexample | |
2794 | -typedef enum @{Tree, Bug@} Species; | |
2795 | -typedef enum @{Big_tree, Acorn, Seedling@} Tree_forms; | |
2796 | -typedef enum @{Caterpillar, Cocoon, Butterfly@} Bug_forms; | |
2797 | - | |
2798 | -struct thing @{ | |
2799 | - Species it; | |
2800 | - union @{ | |
2801 | - Tree_forms tree; | |
2802 | - Bug_forms bug; | |
2803 | - @} form; | |
2804 | -@}; | |
2805 | - | |
2806 | -struct thing foo = @{Tree, @{Acorn@}@}; | |
2807 | -@end smallexample | |
2808 | - | |
2809 | -@noindent | |
2810 | -with @samp{set unionprint on} in effect @samp{p foo} would print | |
2811 | - | |
2812 | -@smallexample | |
2813 | -$1 = @{it = Tree, form = @{tree = Acorn, bug = Cocoon@}@} | |
2814 | -@end smallexample | |
2815 | - | |
2816 | -@noindent | |
2817 | -and with @samp{set unionprint off} in effect it would print | |
2818 | - | |
2819 | -@example | |
2820 | -$1 = @{it = Tree, form = @{...@}@} | |
2821 | -@end example | |
2822 | -@end table | |
2823 | - | |
2824 | -@node Output formats, Auto Display, Format options, Data | |
2825 | -@section Output formats | |
2826 | - | |
2827 | -@cindex formatted output | |
2828 | -@cindex output formats | |
2829 | -_GDBN__ normally prints all values according to their data types. Sometimes | |
2830 | -this is not what you want. For example, you might want to print a number | |
2831 | -in hex, or a pointer in decimal. Or you might want to view data in memory | |
2832 | -at a certain address as a character string or an instruction. These things | |
2833 | -can be done with @dfn{output formats}. | |
2834 | - | |
2835 | -The simplest use of output formats is to say how to print a value | |
2836 | -already computed. This is done by starting the arguments of the | |
2837 | -@samp{print} command with a slash and a format letter. The format | |
2838 | -letters supported are: | |
2654 | +The simplest use of output formats is to say how to print a value | |
2655 | +already computed. This is done by starting the arguments of the | |
2656 | +@samp{print} command with a slash and a format letter. The format | |
2657 | +letters supported are: | |
2839 | 2658 | |
2840 | 2659 | @table @samp |
2841 | 2660 | @item x |
@@ -2883,12 +2702,8 @@ To reprint the last value in the value history with a different format, | ||
2883 | 2702 | you can use the @samp{print} command with just a format and no |
2884 | 2703 | expression. For example, @samp{p/x} reprints the last value in hex. |
2885 | 2704 | |
2886 | -@menu | |
2887 | -* Memory:: Examining Memory | |
2888 | -@end menu | |
2889 | - | |
2890 | -@node Memory, , Output formats, Output formats | |
2891 | -@subsection Examining Memory | |
2705 | +@node Memory,,, | |
2706 | +@section Examining Memory | |
2892 | 2707 | |
2893 | 2708 | @cindex examining memory |
2894 | 2709 | @table @code |
@@ -3041,7 +2856,7 @@ If the @samp{x} command has a repeat count, the address and contents saved | ||
3041 | 2856 | are from the last memory unit printed; this is not the same as the last |
3042 | 2857 | address printed if several units were printed on the last line of output. |
3043 | 2858 | |
3044 | -@node Auto Display, Value History, Output formats, Data | |
2859 | +@node Auto Display,,, | |
3045 | 2860 | @section Automatic Display |
3046 | 2861 | @cindex automatic display |
3047 | 2862 | @cindex display of expressions |
@@ -3119,7 +2934,166 @@ It also includes expressions which would not be displayed right now | ||
3119 | 2934 | because they refer to automatic variables not currently available. |
3120 | 2935 | @end table |
3121 | 2936 | |
3122 | -@node Value History, Convenience Vars, Auto Display, Data | |
2937 | +@node Print Settings,,, | |
2938 | +@section Print Settings | |
2939 | + | |
2940 | +@cindex format options | |
2941 | +@cindex print settings | |
2942 | +_GDBN__ provides a few ways to control how arrays, structures, and symbols are | |
2943 | +printed. | |
2944 | + | |
2945 | +@table @code | |
2946 | +@item set array-max @var{number-of-elements} | |
2947 | +@kindex set array-max | |
2948 | +If _GDBN__ is printing a large array, it will stop printing after it has | |
2949 | +printed the number of elements set by the @samp{set array-max} command. | |
2950 | +This limit also applies to the display of strings. | |
2951 | + | |
2952 | +@item show array-max | |
2953 | +@kindex show array-max | |
2954 | +Display the number of elements of a large array that _GDBN__ will print | |
2955 | +before losing patience. | |
2956 | + | |
2957 | +@item set arrayprint | |
2958 | +@itemx set arrayprint on | |
2959 | +@kindex set arrayprint | |
2960 | +_GDBN__ will pretty print arrays. This format is more convenient to read, | |
2961 | +but uses more space. The default is off. | |
2962 | + | |
2963 | +@item set arrayprint off. | |
2964 | +Return to compressed format for arrays. | |
2965 | + | |
2966 | +@item show arrayprint | |
2967 | +@kindex show arrayprint | |
2968 | +Show whether compressed or pretty format is selected for displaying | |
2969 | +arrays. | |
2970 | + | |
2971 | +@item set demangle | |
2972 | +@itemx set demangle on | |
2973 | +@kindex set demangle | |
2974 | +Print C++ names in their source form rather than in the mangled form | |
2975 | +in which they are passed to the assembler and linker for type-safe linkage. | |
2976 | +The default is on. | |
2977 | + | |
2978 | +@item show demangle | |
2979 | +@kindex show demangle | |
2980 | +Show whether C++ names will be printed in mangled or demangled form. | |
2981 | + | |
2982 | +@item set asm-demangle | |
2983 | +@itemx set asm-demangle on | |
2984 | +@kindex set asm-demangle | |
2985 | +Print C++ names in their source form rather than their mangled form, even | |
2986 | +in assembler code printouts such as instruction disassemblies. | |
2987 | +The default is off. | |
2988 | + | |
2989 | +@item show asm-demangle | |
2990 | +@kindex show asm-demangle | |
2991 | +Show whether C++ names in assembly listings will be printed in mangled | |
2992 | +or demangled form. | |
2993 | + | |
2994 | +@item set vtblprint | |
2995 | +@itemx set vtblprint on | |
2996 | +@kindex set vtblprint | |
2997 | +Pretty print C++ virtual function tables. The default is off. | |
2998 | + | |
2999 | +@item set vtblprint off | |
3000 | +Do not pretty print C++ virtual function tables. | |
3001 | + | |
3002 | +@item show vtblprint | |
3003 | +@kindex show vtblprint | |
3004 | +Show whether C++ virtual function tables are pretty printed, or not. | |
3005 | + | |
3006 | +@item set addressprint | |
3007 | +@item set addressprint on | |
3008 | +@kindex set addressprint | |
3009 | +_GDBN__ will print memory addresses in stack traces, structure values, pointer | |
3010 | +values, breakpoints, etc. The default is on. | |
3011 | + | |
3012 | +@item set addressprint off | |
3013 | +Do not print addresses. | |
3014 | + | |
3015 | +@item show addressprint | |
3016 | +@kindex show addressprint | |
3017 | +Show whether or not addresses are to be printed. | |
3018 | + | |
3019 | +@item set prettyprint on | |
3020 | +@kindex set prettyprint | |
3021 | +Cause _GDBN__ to print structures in an indented format with one member per | |
3022 | +line, like this: | |
3023 | + | |
3024 | +@example | |
3025 | +$1 = @{ | |
3026 | + next = 0x0, | |
3027 | + flags = @{ | |
3028 | + sweet = 1, | |
3029 | + sour = 1 | |
3030 | + @}, | |
3031 | + meat = 0x54 "Pork" | |
3032 | +@} | |
3033 | +@end example | |
3034 | + | |
3035 | +@item set prettyprint off | |
3036 | +Cause _GDBN__ to print structures in a compact format, like this: | |
3037 | + | |
3038 | +@smallexample | |
3039 | +$1 = @{next = 0x0, flags = @{sweet = 1, sour = 1@}, meat \ | |
3040 | += 0x54 "Pork"@} | |
3041 | +@end smallexample | |
3042 | + | |
3043 | +@noindent | |
3044 | +This is the default format. | |
3045 | + | |
3046 | +@item show prettyprint | |
3047 | +@kindex show prettyprint | |
3048 | +Show which format _GDBN__ will use to print structures. | |
3049 | + | |
3050 | +@item set unionprint on | |
3051 | +@kindex set unionprint | |
3052 | +Tell _GDBN__ to print unions which are contained in structures. This is the | |
3053 | +default setting. | |
3054 | + | |
3055 | +@item set unionprint off | |
3056 | +Tell _GDBN__ not to print unions which are contained in structures. | |
3057 | + | |
3058 | +@item show unionprint | |
3059 | +@kindex show unionprint | |
3060 | +Ask _GDBN__ whether or not it will print unions which are contained in | |
3061 | +structures. | |
3062 | + | |
3063 | +For example, given the declarations | |
3064 | + | |
3065 | +@smallexample | |
3066 | +typedef enum @{Tree, Bug@} Species; | |
3067 | +typedef enum @{Big_tree, Acorn, Seedling@} Tree_forms; | |
3068 | +typedef enum @{Caterpillar, Cocoon, Butterfly@} Bug_forms; | |
3069 | + | |
3070 | +struct thing @{ | |
3071 | + Species it; | |
3072 | + union @{ | |
3073 | + Tree_forms tree; | |
3074 | + Bug_forms bug; | |
3075 | + @} form; | |
3076 | +@}; | |
3077 | + | |
3078 | +struct thing foo = @{Tree, @{Acorn@}@}; | |
3079 | +@end smallexample | |
3080 | + | |
3081 | +@noindent | |
3082 | +with @samp{set unionprint on} in effect @samp{p foo} would print | |
3083 | + | |
3084 | +@smallexample | |
3085 | +$1 = @{it = Tree, form = @{tree = Acorn, bug = Cocoon@}@} | |
3086 | +@end smallexample | |
3087 | + | |
3088 | +@noindent | |
3089 | +and with @samp{set unionprint off} in effect it would print | |
3090 | + | |
3091 | +@example | |
3092 | +$1 = @{it = Tree, form = @{...@}@} | |
3093 | +@end example | |
3094 | +@end table | |
3095 | + | |
3096 | +@node Value History,,, | |
3123 | 3097 | @section Value History |
3124 | 3098 | |
3125 | 3099 | @cindex value history |
@@ -3192,7 +3166,7 @@ Print ten history values centered on history item number @var{n}. | ||
3192 | 3166 | Print ten history values just after the values last printed. |
3193 | 3167 | @end table |
3194 | 3168 | |
3195 | -@node Convenience Vars, Registers, Value History, Data | |
3169 | +@node Convenience Vars,,, | |
3196 | 3170 | @section Convenience Variables |
3197 | 3171 | |
3198 | 3172 | @cindex convenience variables |
@@ -3258,7 +3232,7 @@ The variable @code{$__} is automatically set by the @samp{x} command | ||
3258 | 3232 | to the value found in the last address examined. |
3259 | 3233 | @end table |
3260 | 3234 | |
3261 | -@node Registers, , Convenience Vars, Data | |
3235 | +@node Registers,,, | |
3262 | 3236 | @section Registers |
3263 | 3237 | |
3264 | 3238 | @cindex registers |
@@ -3315,9 +3289,7 @@ may be any register name valid on the machine you are using, with | ||
3315 | 3289 | or without the initial @samp{$}. |
3316 | 3290 | @end table |
3317 | 3291 | |
3318 | -@subsection Examples | |
3319 | - | |
3320 | -You could print the program counter in hex with | |
3292 | +For example, you could print the program counter in hex with | |
3321 | 3293 | |
3322 | 3294 | @example |
3323 | 3295 | p/x $pc |
@@ -3345,7 +3317,7 @@ not allowed when other stack frames are selected. (To pop entire frames | ||
3345 | 3317 | off the stack, regardless of machine architecture, use @samp{return}; |
3346 | 3318 | @pxref{Returning}.) |
3347 | 3319 | |
3348 | -@node Symbols, Altering, Data, Top | |
3320 | +@node Symbols,,, | |
3349 | 3321 | @chapter Examining the Symbol Table |
3350 | 3322 | |
3351 | 3323 | The commands described in this section allow you to inquire about the |
@@ -3438,7 +3410,7 @@ Write a complete dump of the debugger's symbol data into the | ||
3438 | 3410 | file @var{filename}. |
3439 | 3411 | @end table |
3440 | 3412 | |
3441 | -@node Altering, Sequences, Symbols, Top | |
3413 | +@node Altering,,, | |
3442 | 3414 | @chapter Altering Execution |
3443 | 3415 | |
3444 | 3416 | Once you think you have found an error in the program, you might want to |
@@ -3451,15 +3423,7 @@ For example, you can store new values into variables or memory | ||
3451 | 3423 | locations, give the program a signal, restart it at a different address, |
3452 | 3424 | or even return prematurely from a function to its caller. |
3453 | 3425 | |
3454 | -@menu | |
3455 | -* Assignment:: Altering variable values or memory contents. | |
3456 | -* Jumping:: Altering control flow. | |
3457 | -* Signaling:: Making signals happen in the program. | |
3458 | -* Returning:: Making a function return prematurely. | |
3459 | -* Calling:: Calling functions from your program | |
3460 | -@end menu | |
3461 | - | |
3462 | -@node Assignment, Jumping, Altering, Altering | |
3426 | +@node Assignment,,, | |
3463 | 3427 | @section Assignment to Variables |
3464 | 3428 | |
3465 | 3429 | @cindex assignment |
@@ -3512,7 +3476,7 @@ set @{int@}0x83040 = 4 | ||
3512 | 3476 | |
3513 | 3477 | would store the value 4 into that memory location. |
3514 | 3478 | |
3515 | -@node Jumping, Signaling, Assignment, Altering | |
3479 | +@node Jumping,,, | |
3516 | 3480 | @section Continuing at a Different Address |
3517 | 3481 | |
3518 | 3482 | Ordinarily, when you continue the program, you do so at the place where |
@@ -3557,7 +3521,7 @@ The most common occasion to use the @samp{jump} command is to back up, | ||
3557 | 3521 | perhaps with more breakpoints set, over a portion of a program that has |
3558 | 3522 | already executed. |
3559 | 3523 | |
3560 | -@node Signaling, Returning, Jumping, Altering | |
3524 | +@node Signaling,,, | |
3561 | 3525 | @section Giving the Program a Signal |
3562 | 3526 | |
3563 | 3527 | @table @code |
@@ -3573,7 +3537,7 @@ a signal and would ordinary see the signal when resumed with the | ||
3573 | 3537 | signal. |
3574 | 3538 | @end table |
3575 | 3539 | |
3576 | -@node Returning, Calling, Signaling, Altering | |
3540 | +@node Returning,,, | |
3577 | 3541 | @section Returning from a Function |
3578 | 3542 | |
3579 | 3543 | @table @code |
@@ -3604,8 +3568,7 @@ returned. Contrast this with the @samp{finish} command | ||
3604 | 3568 | (@pxref{Stepping}), which resumes execution until the selected stack |
3605 | 3569 | frame returns @emph{naturally}. |
3606 | 3570 | |
3607 | -@node Calling, , Returning, Altering | |
3608 | -@comment node-name, next, previous, up | |
3571 | +@node Calling,,, | |
3609 | 3572 | @section Calling your Program's Functions |
3610 | 3573 | |
3611 | 3574 | @cindex calling functions |
@@ -3687,7 +3650,7 @@ The purpose of this two-stage reading strategy is to make _GDBN__ start up | ||
3687 | 3650 | faster. For the most part, it is invisible except for occasional pauses |
3688 | 3651 | while the symbol table details for a particular source file are being |
3689 | 3652 | read. (The @samp{set verbose} command can turn these pauses into |
3690 | -messages if desired. @xref{User Interface}). | |
3653 | +messages if desired. @xref{Messages/Warnings}). | |
3691 | 3654 | |
3692 | 3655 | When the symbol table is stored in COFF format, @samp{symbol-file} does |
3693 | 3656 | read the symbol table data in full right away. We haven't implemented |
@@ -3792,7 +3755,7 @@ compiler output. By default, it prints one message about each such | ||
3792 | 3755 | type of problem, no matter how many times the problem occurs. You can |
3793 | 3756 | ask it to print more messages, to see how many times the problems occur, |
3794 | 3757 | or can shut the messages off entirely, with the @samp{set |
3795 | -complaints} command (@xref{User Interface}). | |
3758 | +complaints} command (@xref{Messages/Warnings}). | |
3796 | 3759 | |
3797 | 3760 | The messages currently printed, and their meanings, are: |
3798 | 3761 |
@@ -3813,8 +3776,8 @@ The symbol information for symbol scope blocks should occur in | ||
3813 | 3776 | order of increasing addresses. This error indicates that it does not |
3814 | 3777 | do so. _GDBN__ does not circumvent this problem, and will have trouble |
3815 | 3778 | locating symbols in the source file whose symbols being read. (You |
3816 | -can often determine what source file is affected by turning on | |
3817 | -@samp{info verbose}. @xref{User Interface}.) | |
3779 | +can often determine what source file is affected by specifying | |
3780 | +@samp{set verbose on}. @xref{Messages/Warnings}.) | |
3818 | 3781 | |
3819 | 3782 | @item bad block start address patched |
3820 | 3783 |
@@ -3835,10 +3798,11 @@ previous source line. | ||
3835 | 3798 | @comment |
3836 | 3799 | @item bad string table offset in symbol @var{n} |
3837 | 3800 | |
3801 | +@cindex foo | |
3838 | 3802 | Symbol number @var{n} contains a pointer into the string table which is |
3839 | 3803 | larger than the size of the string table. _GDBN__ circumvents the problem |
3840 | 3804 | by considering the symbol to have the name @code{foo}, which may cause |
3841 | -other problems if many symbols end up with this name. @cindex{foo} | |
3805 | +other problems if many symbols end up with this name. | |
3842 | 3806 | |
3843 | 3807 | @item unknown symbol type @code{0xNN} |
3844 | 3808 |
@@ -3867,7 +3831,7 @@ for some C++ object. | ||
3867 | 3831 | |
3868 | 3832 | @end table |
3869 | 3833 | |
3870 | -@node Targets, Running, Compilation, Top | |
3834 | +@node Targets,,, | |
3871 | 3835 | @chapter Specifying a Debugging Target |
3872 | 3836 | @cindex debugging target |
3873 | 3837 | @kindex target |
@@ -3882,12 +3846,7 @@ physically separate host, controlling standalone systems over a | ||
3882 | 3846 | serial port, or realtime systems over a TCP/IP connection---you can use |
3883 | 3847 | the @samp{target} command. |
3884 | 3848 | |
3885 | -@menu | |
3886 | -* Active Targets:: Active Targets | |
3887 | -* Target Commands:: Commands for Managing Targets | |
3888 | -@end menu | |
3889 | - | |
3890 | -@node Active Targets, Target Commands, Targets, Targets | |
3849 | +@node Active Targets,,, | |
3891 | 3850 | @section Active Targets |
3892 | 3851 | @cindex stacking targets |
3893 | 3852 | @cindex active targets |
@@ -3913,7 +3872,7 @@ To get rid of a target without replacing it, use the @samp{detach} | ||
3913 | 3872 | command. The related command @samp{attach} provides you with a way of |
3914 | 3873 | choosing a particular running process as a new target. @xref{Attach}. |
3915 | 3874 | |
3916 | -@node Target Commands, , Active Targets, Targets | |
3875 | +@node Target Commands,,, | |
3917 | 3876 | @section Commands for Managing Targets |
3918 | 3877 | |
3919 | 3878 | @table @code |
@@ -4014,16 +3973,9 @@ same version of _GDBN__ that is used ordinarily can be used for this. | ||
4014 | 3973 | Several sample remote debugging drivers are distributed with _GDBN__; see |
4015 | 3974 | the @file{README} file in the _GDBN__ distribution for more information. |
4016 | 3975 | |
4017 | -@menu | |
4018 | -* Remote Commands:: Commands used to start and finish remote debugging. | |
4019 | -@end menu | |
4020 | - | |
4021 | 3976 | For details of the communication protocol, see the comments in the _GDBN__ |
4022 | 3977 | source file @file{remote.c}. |
4023 | 3978 | |
4024 | -@node Remote Commands, , Remote, Remote | |
4025 | -@subsection Commands for Remote Debugging | |
4026 | - | |
4027 | 3979 | To start remote debugging, first run _GDBN__ and specify as an executable file |
4028 | 3980 | the program that is running in the remote machine. This tells _GDBN__ how |
4029 | 3981 | to find the program's symbols and the contents of its pure text. Then |
@@ -4140,15 +4092,17 @@ This defaults to the value of the environmental variable | ||
4140 | 4092 | @end table |
4141 | 4093 | |
4142 | 4094 | @cindex history expansion |
4143 | -History expansion assigns special meaning to the character @samp{!} | |
4144 | -(@pxref{Event Designators}). Since @samp{!} is also the logical not | |
4145 | -operator in C, history expansion is off by default. If you decide to | |
4146 | -enable history expansion with the @samp{set history expansion on} | |
4147 | -command, you may sometimes need to follow @samp{!} (when it is used as | |
4148 | -logical not, in an expression) with a space or a tab to prevent it from | |
4149 | -being expanded. The @code{readline} history facilities will not attempt | |
4150 | -substitution on the strings @samp{!=} and @samp{!(}, even when history | |
4151 | -expansion is enabled. | |
4095 | +History expansion assigns special meaning to the character @samp{!}. | |
4096 | +@iftex | |
4097 | +(@xref{Event Designators}.) | |
4098 | +@end iftex | |
4099 | +Since @samp{!} is also the logical not operator in C, history expansion | |
4100 | +is off by default. If you decide to enable history expansion with the | |
4101 | +@samp{set history expansion on} command, you may sometimes need to | |
4102 | +follow @samp{!} (when it is used as logical not, in an expression) with | |
4103 | +a space or a tab to prevent it from being expanded. The @code{readline} | |
4104 | +history facilities will not attempt substitution on the strings | |
4105 | +@samp{!=} and @samp{!(}, even when history expansion is enabled. | |
4152 | 4106 | |
4153 | 4107 | The commands to control history expansion are: |
4154 | 4108 |
@@ -4164,7 +4118,10 @@ Disable history expansion. | ||
4164 | 4118 | |
4165 | 4119 | The @code{readline} code comes with more complete documentation of |
4166 | 4120 | editing and history expansion features. Users unfamiliar with @samp{emacs} |
4167 | -or @samp{vi} may wish to read it. @xref{Command Line Editing}. | |
4121 | +or @samp{vi} may wish to read it. | |
4122 | +@iftex | |
4123 | +@xref{Command Line Editing}. | |
4124 | +@end iftex | |
4168 | 4125 | |
4169 | 4126 | @kindex show history |
4170 | 4127 | @item show history |
@@ -4340,21 +4297,14 @@ Enables cautious questions (the default). | ||
4340 | 4297 | Displays state of cautious questions. |
4341 | 4298 | @end table |
4342 | 4299 | |
4343 | -@node Sequences, Emacs, Altering, Top | |
4300 | +@node Sequences,,, | |
4344 | 4301 | @chapter Canned Sequences of Commands |
4345 | 4302 | |
4346 | 4303 | Aside from breakpoint commands (@pxref{Break Commands}),_GDBN__ provides two |
4347 | 4304 | ways to store sequences of commands for execution as a unit: |
4348 | 4305 | user-defined commands and command files. |
4349 | 4306 | |
4350 | -@menu | |
4351 | -* Define:: User-defined commands. | |
4352 | -* Command Files:: Command files. | |
4353 | -* Output:: Controlled output commands useful in | |
4354 | - user-defined commands and command files. | |
4355 | -@end menu | |
4356 | - | |
4357 | -@node Define, Command Files, Sequences, Sequences | |
4307 | +@node Define,,, | |
4358 | 4308 | @section User-Defined Commands |
4359 | 4309 | |
4360 | 4310 | @cindex user-defined command |
@@ -4395,7 +4345,7 @@ without asking when used inside a user-defined command. Many _GDBN__ commands | ||
4395 | 4345 | that normally print messages to say what they are doing omit the messages |
4396 | 4346 | when used in user-defined command. |
4397 | 4347 | |
4398 | -@node Command Files, Output, Define, Sequences | |
4348 | +@node Command Files,,, | |
4399 | 4349 | @section Command Files |
4400 | 4350 | |
4401 | 4351 | @cindex command files |
@@ -4428,7 +4378,7 @@ without asking when used in a command file. Many _GDBN__ commands that | ||
4428 | 4378 | normally print messages to say what they are doing omit the messages |
4429 | 4379 | when used in a command file. |
4430 | 4380 | |
4431 | -@node Output, , Command Files, Sequences | |
4381 | +@node Output,,, | |
4432 | 4382 | @section Commands for Controlled Output |
4433 | 4383 | |
4434 | 4384 | During the execution of a command file or a user-defined command, the only |
@@ -4502,7 +4452,7 @@ string are the simple ones that consist of backslash followed by a | ||
4502 | 4452 | letter. |
4503 | 4453 | @end table |
4504 | 4454 | |
4505 | -@node Emacs, Remote, Sequences, Top | |
4455 | +@node Emacs,,, | |
4506 | 4456 | @chapter Using _GDBN__ under GNU Emacs |
4507 | 4457 | |
4508 | 4458 | @cindex emacs |
@@ -4658,7 +4608,7 @@ environment. Users of this environment can use a new command, | ||
4658 | 4608 | each value is printed in its own window. |
4659 | 4609 | @end ignore |
4660 | 4610 | |
4661 | -@node _GDBN__ Bugs, Installing _GDBN__, Remote, Top | |
4611 | +@node _GDBN__ Bugs,,, | |
4662 | 4612 | @comment node-name, next, previous, up |
4663 | 4613 | @chapter Reporting Bugs in _GDBN__ |
4664 | 4614 | @cindex Bugs in _GDBN__ |
@@ -4674,12 +4624,7 @@ reports are your contribution to the maintenance of _GDBN__. | ||
4674 | 4624 | In order for a bug report to serve its purpose, you must include the |
4675 | 4625 | information that makes for fixing the bug. |
4676 | 4626 | |
4677 | -@menu | |
4678 | -* Bug Criteria:: Have You Found a Bug? | |
4679 | -* Bug Reporting:: How to Report Bugs | |
4680 | -@end menu | |
4681 | - | |
4682 | -@node Bug Criteria, Bug Reporting, _GDBN__ Bugs, _GDBN__ Bugs | |
4627 | +@node Bug Criteria,,, | |
4683 | 4628 | @section Have You Found a Bug? |
4684 | 4629 | @cindex Bug Criteria |
4685 | 4630 |
@@ -4708,7 +4653,7 @@ If you are an experienced user of debugging tools, your suggestions | ||
4708 | 4653 | for improvement of _GDBN__ are welcome in any case. |
4709 | 4654 | @end itemize |
4710 | 4655 | |
4711 | -@node Bug Reporting, , Bug Criteria, _GDBN__ Bugs | |
4656 | +@node Bug Reporting,,, | |
4712 | 4657 | @section How to Report Bugs |
4713 | 4658 | @cindex Bug Reports |
4714 | 4659 | @cindex Compiler Bugs, Reporting |
@@ -4885,7 +4830,7 @@ things without first using the debugger to find the facts. | ||
4885 | 4830 | @include readline/inc-history.texinfo |
4886 | 4831 | @end iftex |
4887 | 4832 | |
4888 | -@node Installing _GDBN__, License, _GDBN__ Bugs, Top | |
4833 | +@node Installing _GDBN__,,, | |
4889 | 4834 | @appendix Installing _GDBN__ |
4890 | 4835 | @cindex configuring _GDBN__ |
4891 | 4836 | @cindex installation |