• R/O
  • HTTP
  • SSH
  • HTTPS

Commit

Tags
Keine Tags

Frequently used words (click to add to your profile)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

GNU Binutils with patches for OS216


Commit MetaInfo

Revision01b25dab88e1790f4eff36821358416e9a0999f3 (tree)
Zeit1991-04-02 08:52:17
AutorRoland Pesch <pesch@cygn...>
CommiterRoland Pesch

Log Message

(1) further restructuring;
(2) fix two bugs reported by Per Bothner;

(in markup for makeinfo)

(3) eliminate info structural information that can be generated

by texinfo-master-menu.

Ändern Zusammenfassung

Diff

--- a/gdb/doc/gdb.texinfo
+++ b/gdb/doc/gdb.texinfo
@@ -110,7 +110,7 @@ original English.
110110 @end titlepage
111111 @page
112112
113-@node Top, New Features, (dir), (dir)
113+@node Top,,,
114114 @unnumbered Summary of _GDBN__
115115
116116 The purpose of a debugger such as _GDBN__ is to allow you to see what is
@@ -155,7 +155,7 @@ from anyone else.
155155
156156 For full details, @pxref{License}.
157157
158-@node New Features, Invocation, Top, Top
158+@node New Features,,,
159159 @unnumbered New Features in _GDBN__ version 4.0
160160
161161 @itemize @bullet
@@ -222,7 +222,7 @@ HPPA architecture support.
222222 @end itemize
223223
224224 @node Sample Session,,,
225-@chapter A Sample _GDB__ Session
225+@chapter A Sample _GDBN__ Session
226226
227227 You can use this manual at your leisure to read all about _GDBN__.
228228 However, a handful of commands are enough to get started using the
@@ -231,6 +231,8 @@ debugger. This chapter illustrates these commands.
231231 In this sample session, we emphasize user input like this: @var{input},
232232 to make it easier to pick out from the surrounding output.
233233
234+@c FIXME: this example may not be appropriate for some configs, where
235+@c FIXME...primary interest is in remote use.
234236 We'll be using _GDBN__ to inspect GNU @code{m4} (a generic macro
235237 processor).
236238
@@ -239,11 +241,14 @@ $ @var{cd gm4/common}
239241
240242 $ @var{_GDBP__ m4}
241243 Reading symbol data from m4...done.
244+(_GDBP__) set width 70
242245 @end smallexample
243246
244247 @noindent
245248 _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.
247252
248253 @smallexample
249254 (_GDBP__) @var{break m4_changequote}
@@ -251,9 +256,10 @@ Breakpoint 1 at 0x59d4: file builtin.c, line 812.
251256 @end smallexample
252257
253258 @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.
257263
258264 @smallexample
259265 (_GDBP__) @var{run}
@@ -263,42 +269,45 @@ usual quotes <not these>
263269 @end smallexample
264270
265271 @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.
268275
269276 @smallexample
270277 @var{changequote(<,>)}
271278
272279 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))
274281 @end smallexample
275282 @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.
278286
279287 @smallexample
280288 (_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) @{
284292 @end smallexample
285293 @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}.
289298
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}).
294302
295303 @smallexample
296304 (_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
299307 #1 0x59ec in m4_changequote (argc=3, argv=0x2b958) at builtin.c:812
300308 #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
302311 #4 0x6794 in expand_input () at macro.c:40
303312 #5 0x28dc in main (argc=0, argv=0xf7fffbf8) at m4.c:174
304313 @end smallexample
@@ -309,13 +318,28 @@ to @code{m4_changequote}.
309318
310319 @smallexample
311320 (_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
314324 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))
316326 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
317340 (_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;
319343 (_GDBP__) @var{whatis lquote}
320344 type = char
321345 (_GDBP__) @var{p lquote}
@@ -331,20 +355,23 @@ command.
331355
332356 @smallexample
333357 (_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 /*
344370 (_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;
346373 (_GDBP__) @var{s}
347-817 @}
374+817 @}
348375 (_GDBP__) @var{p lquote}
349376 $3 = 60 '<'
350377 (_GDBP__) @var{p rquote}
@@ -379,8 +406,8 @@ Finally, when we ended the @code{m4} run, _GDBN__ told us
379406 the _GDBN__ @samp{quit} command.
380407
381408
382-@node Starting and Stopping,,,
383-@chapter Starting and Stopping
409+@node Invocation,,,
410+@chapter Getting In and Out of _GDBN__
384411
385412 @node Starting _GDBN__,,,
386413 @section Starting _GDBN__
@@ -407,8 +434,8 @@ All the options and command line arguments given are processed
407434 in sequential order. The order makes a difference when the
408435 @samp{-x} option is used.
409436
410-@node File Options, Mode Options, Invocation, Invocation
411-@subsection Options and Arguments to Choose Files
437+@node File Options,,,
438+@subsection Choosing Files
412439
413440 As shown above, any arguments other than options specify an executable
414441 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}.
438465 Add @var{directory} to the path to search for source files.
439466 @end table
440467
441-@node Mode Options, , ,
442-@subsection Options to Choose Modes
468+@node Mode Options,,,
469+@subsection Choosing Modes
443470
444471 @table @code
445472 @item -nx
@@ -486,9 +513,9 @@ _GDBN__ for remote debugging.
486513
487514 _if__(_I960__)
488515 @node i960-Nindy Remote,,,
489-@subsection _GDBN__ with a Remote Intel 960 (Nindy)
516+@subsection _GDBN__ with a Remote i960 (Nindy)
490517
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
492519 systems. When _GDBN__ is configured to control a remote Intel 960 using
493520 Nindy, you can tell _GDBN__ how to connect to the 960 in several ways:
494521
@@ -720,7 +747,7 @@ once again, after your _GDBN__ session has concluded, to attach to
720747 Type @samp{CTTY con} to return command input to the main DOS console,
721748 and type @samp{~.} to leave @code{tip} or @code{cu}.
722749
723-@node Remote Log, , Remote Commands, Remote
750+@node Remote Log,,,
724751 @subsubsection Remote Log
725752 @kindex eb.log
726753 @cindex log file for EB29K
@@ -1014,17 +1041,7 @@ If the modification time of your symbol file has changed since the last
10141041 time _GDBN__ read its symbols, _GDBN__ will discard its symbol table and re-read
10151042 it. In this process, it tries to retain your current breakpoints.
10161043
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,,,
10281045 @section Your Program's Arguments
10291046
10301047 @cindex arguments (to your program)
@@ -1049,7 +1066,7 @@ this is the only way to do so.
10491066 Show the arguments to give your program when it is started.
10501067 @end table
10511068
1052-@node Environment, Working Directory, Arguments, Running
1069+@node Environment,,,
10531070 @section Your Program's Environment
10541071
10551072 @cindex environment (of your program)
@@ -1101,7 +1118,7 @@ rather than assigning it an empty value. This command can be
11011118 abbreviated @samp{d e}.
11021119 @end table
11031120
1104-@node Working Directory, Input/Output, Environment, Running
1121+@node Working Directory,,,
11051122 @section Your Program's Working Directory
11061123
11071124 @cindex working directory (of your program)
@@ -1124,7 +1141,7 @@ Set _GDBN__'s working directory to @var{directory}.
11241141 Print _GDBN__'s working directory.
11251142 @end table
11261143
1127-@node Input/Output, Attach, Working Directory, Running
1144+@node Input/Output,,,
11281145 @section Your Program's Input and Output
11291146
11301147 @cindex redirection
@@ -1168,7 +1185,7 @@ When you use the @samp{tty} command or redirect input in the @samp{run}
11681185 command, only the @emph{input for your program} is affected. The input
11691186 for _GDBN__ still comes from your terminal.
11701187
1171-@node Attach, Kill Process, Input/Output, Running
1188+@node Attach,,,
11721189 @section Debugging an Already-Running Process
11731190 @kindex attach
11741191 @cindex attach
@@ -1209,9 +1226,9 @@ If you exit _GDBN__ or use the @samp{run} command while you have an attached
12091226 process, you kill that process. By default, you will be asked for
12101227 confirmation if you try to do either of these things; you can control
12111228 whether or not this happens by using the @samp{set caution} command
1212-(@pxref{User Interface}).
1229+(@pxref{Messages/Warnings}).
12131230
1214-@node Kill Process, , Attach, Running
1231+@node Kill Process,,,
12151232 @section Killing the Child Process
12161233
12171234 @table @code
@@ -1235,7 +1252,7 @@ next type @samp{run}, _GDBN__ will notice that the file has changed, and
12351252 will re-read the symbol table (while trying to preserve your current
12361253 breakpoint settings).
12371254
1238-@node Stopping, Stack, Running, Top
1255+@node Stopping,,,
12391256 @chapter Stopping and Continuing
12401257
12411258 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
12431260 that point; or so that if the program runs into trouble you can
12441261 investigate and find out why.
12451262
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,,,
13411264 @section Breakpoints
13421265
13431266 @cindex breakpoints
@@ -1387,17 +1310,7 @@ releases of _GDBN__ will use such hardware if it is available.
13871310
13881311 @end table
13891312
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,,,
14011314 @subsection Setting Breakpoints
14021315
14031316 @kindex break
@@ -1484,7 +1397,7 @@ _GDBN__ allows you to set any number of breakpoints at the same place in the
14841397 program. There is nothing silly or meaningless about this. When the
14851398 breakpoints are conditional, this is even useful (@pxref{Conditions}).
14861399
1487-@node Exception Handling, Delete Breaks, Set Breaks, Breakpoints
1400+@node Exception Handling,,,
14881401 @subsection Breakpoints and Exceptions
14891402 @cindex exception handlers
14901403
@@ -1543,7 +1456,7 @@ You cannot raise an exception interactively.
15431456 You cannot interactively install an exception handler.
15441457 @end itemize
15451458
1546-@node Delete Breaks, Disabling, Exception Handling, Breakpoints
1459+@node Delete Breaks,,,
15471460 @subsection Deleting Breakpoints
15481461
15491462 @cindex clearing breakpoints, watchpoints
@@ -1586,7 +1499,7 @@ Delete the breakpoints of the numbers specified as arguments. If no
15861499 argument is specified, delete all breakpoints.
15871500 @end table
15881501
1589-@node Disabling, Conditions, Delete Breaks, Breakpoints
1502+@node Disabling,,,
15901503 @subsection Disabling Breakpoints
15911504
15921505 @cindex disabled breakpoints
@@ -1660,7 +1573,7 @@ of the commands above. (The command @samp{until} can set and delete a
16601573 breakpoint on its own, but it will not change the state of your
16611574 breakpoints).
16621575
1663-@node Conditions, Break Commands, Disabling, Breakpoints
1576+@node Conditions,,,
16641577 @subsection Break Conditions
16651578 @cindex conditional breakpoints
16661579 @cindex breakpoint conditions
@@ -1751,7 +1664,7 @@ Note that you could achieve the effect of the ignore count with a
17511664 condition such as _0__@w{@samp{$foo-- <= 0}}_1__ using a debugger convenience
17521665 variable that is decremented each time. @xref{Convenience Vars}.
17531666
1754-@node Break Commands, Error in Breakpoints, Conditions, Breakpoints
1667+@node Break Commands,,,
17551668 @subsection Commands Executed on Breaking
17561669
17571670 @cindex breakpoint commands
@@ -1846,7 +1759,7 @@ evaluated without changing the terminal modes. When you want to have
18461759 nontrivial conditions for performing the side effects, the operators
18471760 @samp{&&}, @samp{||} and @samp{?@dots{}:} may be useful.
18481761
1849-@node Error in Breakpoints, , Break Commands, Breakpoints
1762+@node Error in Breakpoints,,,
18501763 @subsection ``Cannot Insert Breakpoints''
18511764
18521765 @c FIXME: "cannot insert breakpoints" error, v unclear.
@@ -1873,42 +1786,7 @@ linker option @samp{-N}. The operating system limitation may not apply
18731786 to nonsharable executables.
18741787 @end enumerate
18751788
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,,,
19121790 @section Stepping
19131791
19141792 @cindex stepping
@@ -2023,7 +1901,126 @@ problem happens.
20231901 The @samp{cont} command can be used after stepping to resume execution
20241902 until the next breakpoint or signal.
20251903
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,,,
20272024 @chapter Examining the Stack
20282025
20292026 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
20502047 frame and describes it briefly as the @samp{frame} command does
20512048 (@pxref{Frame Info, Info}).
20522049
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,,,
20612051 @section Stack Frames
20622052
20632053 @cindex frame
@@ -2111,7 +2101,7 @@ frame, _GDBN__ will give it a virtual stack frame of 0 and correctly allow
21112101 tracing of the function call chain. Results are undefined if a function
21122102 invocation besides the innermost one is frameless.
21132103
2114-@node Backtrace, Selection, Frames, Stack
2104+@node Backtrace,,,
21152105 @section Backtraces
21162106
21172107 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
21722162 @file{rtlanal.c}. Its arguments, named @code{x} and @code{y}, are shown
21732163 with their typed values.
21742164
2175-@node Selection, Frame Info, Backtrace, Stack
2165+@node Selection,,,
21762166 @section Selecting a Frame
21772167
21782168 Most commands for examining the stack and other data in the program work on
@@ -2236,7 +2226,7 @@ distracting.
22362226
22372227 @end table
22382228
2239-@node Frame Info, , Selection, Stack
2229+@node Frame Info,,,
22402230 @section Information on a Frame
22412231
22422232 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},
22882278 @xref{Exception Handling}.
22892279 @end table
22902280
2291-@node Source, Data, Stack, Top
2281+@node Source,,,
22922282 @chapter Examining Source Files
22932283
22942284 _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
22982288 which execution in that frame has stopped in. You can also
22992289 print parts of source files by explicit command.
23002290
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,,,
23082292 @section Printing Source Lines
23092293
23102294 @kindex list
@@ -2423,7 +2407,7 @@ is saved as the value of the convenience variable @code{$_}
24232407 (@pxref{Convenience Vars}).
24242408 @end table
24252409
2426-@node Search, Source Path, List, Source
2410+@node Search,,,
24272411 @section Searching Source Files
24282412 @cindex searching
24292413 @kindex search
@@ -2443,7 +2427,7 @@ with the one before the last line listed and going backward, for a match
24432427 for @var{regexp}. It lists the line that is found. You can abbreviate
24442428 this command with as little as @samp{rev}.
24452429
2446-@node Source Path, , Search, Source
2430+@node Source Path,,,
24472431 @section Specifying Source Directories
24482432
24492433 @cindex source path
@@ -2503,13 +2487,16 @@ directories you want in the source path. You can add all the directories
25032487 in one command.
25042488 @end enumerate
25052489
2506-@node Data, Symbols, Source, Top
2490+@node Data,,,
25072491 @chapter Examining Data
25082492
25092493 @cindex printing data
25102494 @cindex examining data
25112495 @kindex print
25122496 @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.
25132500 The usual way to examine data in your program is with the @samp{print}
25142501 command (abbreviated @samp{p}), or its synonym @samp{inspect}. It
25152502 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.
25282515 It examines data in memory at a specified address and prints it in a
25292516 specified format.
25302517
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,,,
25442519 @section Expressions
25452520
25462521 @cindex expressions
@@ -2551,6 +2526,8 @@ conditional expressions, function calls, casts and string constants. It
25512526 unfortunately does not include symbols defined by preprocessor
25522527 @code{#define} commands, or C++ expressions involving @samp{::}, the
25532528 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.
25542531
25552532 Casts are supported in all languages, not just in C, because it is so
25562533 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
25762553 officially supposed to reside at @var{addr}.@refill
25772554 @end table
25782555
2579-@node Variables, Arrays, Expressions, Data
2556+@node Variables,,,
25802557 @section Program Variables
25812558
25822559 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
26272604 of the same notation in C++; accordingly, _GDBN__ does not support use of
26282605 the C++ name resolution operator in _GDBN__ expressions.
26292606
2630-@node Arrays, Format options, Variables, Data
2607+@node Arrays,,,
26312608 @section Artificial Arrays
26322609
26332610 @cindex artificial array
@@ -2663,179 +2640,21 @@ subscripting, and are coerced to pointers when used in expressions.
26632640 (It would probably appear in an expression via the value history,
26642641 after you had printed it out.)
26652642
2666-@node Format options, Output formats, Arrays, Data
2667-@section Format options
2643+@node Output formats,,,
2644+@section Output formats
26682645
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}.
26722653
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:
28392658
28402659 @table @samp
28412660 @item x
@@ -2883,12 +2702,8 @@ To reprint the last value in the value history with a different format,
28832702 you can use the @samp{print} command with just a format and no
28842703 expression. For example, @samp{p/x} reprints the last value in hex.
28852704
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
28922707
28932708 @cindex examining memory
28942709 @table @code
@@ -3041,7 +2856,7 @@ If the @samp{x} command has a repeat count, the address and contents saved
30412856 are from the last memory unit printed; this is not the same as the last
30422857 address printed if several units were printed on the last line of output.
30432858
3044-@node Auto Display, Value History, Output formats, Data
2859+@node Auto Display,,,
30452860 @section Automatic Display
30462861 @cindex automatic display
30472862 @cindex display of expressions
@@ -3119,7 +2934,166 @@ It also includes expressions which would not be displayed right now
31192934 because they refer to automatic variables not currently available.
31202935 @end table
31212936
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,,,
31233097 @section Value History
31243098
31253099 @cindex value history
@@ -3192,7 +3166,7 @@ Print ten history values centered on history item number @var{n}.
31923166 Print ten history values just after the values last printed.
31933167 @end table
31943168
3195-@node Convenience Vars, Registers, Value History, Data
3169+@node Convenience Vars,,,
31963170 @section Convenience Variables
31973171
31983172 @cindex convenience variables
@@ -3258,7 +3232,7 @@ The variable @code{$__} is automatically set by the @samp{x} command
32583232 to the value found in the last address examined.
32593233 @end table
32603234
3261-@node Registers, , Convenience Vars, Data
3235+@node Registers,,,
32623236 @section Registers
32633237
32643238 @cindex registers
@@ -3315,9 +3289,7 @@ may be any register name valid on the machine you are using, with
33153289 or without the initial @samp{$}.
33163290 @end table
33173291
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
33213293
33223294 @example
33233295 p/x $pc
@@ -3345,7 +3317,7 @@ not allowed when other stack frames are selected. (To pop entire frames
33453317 off the stack, regardless of machine architecture, use @samp{return};
33463318 @pxref{Returning}.)
33473319
3348-@node Symbols, Altering, Data, Top
3320+@node Symbols,,,
33493321 @chapter Examining the Symbol Table
33503322
33513323 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
34383410 file @var{filename}.
34393411 @end table
34403412
3441-@node Altering, Sequences, Symbols, Top
3413+@node Altering,,,
34423414 @chapter Altering Execution
34433415
34443416 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
34513423 locations, give the program a signal, restart it at a different address,
34523424 or even return prematurely from a function to its caller.
34533425
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,,,
34633427 @section Assignment to Variables
34643428
34653429 @cindex assignment
@@ -3512,7 +3476,7 @@ set @{int@}0x83040 = 4
35123476
35133477 would store the value 4 into that memory location.
35143478
3515-@node Jumping, Signaling, Assignment, Altering
3479+@node Jumping,,,
35163480 @section Continuing at a Different Address
35173481
35183482 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,
35573521 perhaps with more breakpoints set, over a portion of a program that has
35583522 already executed.
35593523
3560-@node Signaling, Returning, Jumping, Altering
3524+@node Signaling,,,
35613525 @section Giving the Program a Signal
35623526
35633527 @table @code
@@ -3573,7 +3537,7 @@ a signal and would ordinary see the signal when resumed with the
35733537 signal.
35743538 @end table
35753539
3576-@node Returning, Calling, Signaling, Altering
3540+@node Returning,,,
35773541 @section Returning from a Function
35783542
35793543 @table @code
@@ -3604,8 +3568,7 @@ returned. Contrast this with the @samp{finish} command
36043568 (@pxref{Stepping}), which resumes execution until the selected stack
36053569 frame returns @emph{naturally}.
36063570
3607-@node Calling, , Returning, Altering
3608-@comment node-name, next, previous, up
3571+@node Calling,,,
36093572 @section Calling your Program's Functions
36103573
36113574 @cindex calling functions
@@ -3687,7 +3650,7 @@ The purpose of this two-stage reading strategy is to make _GDBN__ start up
36873650 faster. For the most part, it is invisible except for occasional pauses
36883651 while the symbol table details for a particular source file are being
36893652 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}).
36913654
36923655 When the symbol table is stored in COFF format, @samp{symbol-file} does
36933656 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
37923755 type of problem, no matter how many times the problem occurs. You can
37933756 ask it to print more messages, to see how many times the problems occur,
37943757 or can shut the messages off entirely, with the @samp{set
3795-complaints} command (@xref{User Interface}).
3758+complaints} command (@xref{Messages/Warnings}).
37963759
37973760 The messages currently printed, and their meanings, are:
37983761
@@ -3813,8 +3776,8 @@ The symbol information for symbol scope blocks should occur in
38133776 order of increasing addresses. This error indicates that it does not
38143777 do so. _GDBN__ does not circumvent this problem, and will have trouble
38153778 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}.)
38183781
38193782 @item bad block start address patched
38203783
@@ -3835,10 +3798,11 @@ previous source line.
38353798 @comment
38363799 @item bad string table offset in symbol @var{n}
38373800
3801+@cindex foo
38383802 Symbol number @var{n} contains a pointer into the string table which is
38393803 larger than the size of the string table. _GDBN__ circumvents the problem
38403804 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.
38423806
38433807 @item unknown symbol type @code{0xNN}
38443808
@@ -3867,7 +3831,7 @@ for some C++ object.
38673831
38683832 @end table
38693833
3870-@node Targets, Running, Compilation, Top
3834+@node Targets,,,
38713835 @chapter Specifying a Debugging Target
38723836 @cindex debugging target
38733837 @kindex target
@@ -3882,12 +3846,7 @@ physically separate host, controlling standalone systems over a
38823846 serial port, or realtime systems over a TCP/IP connection---you can use
38833847 the @samp{target} command.
38843848
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,,,
38913850 @section Active Targets
38923851 @cindex stacking targets
38933852 @cindex active targets
@@ -3913,7 +3872,7 @@ To get rid of a target without replacing it, use the @samp{detach}
39133872 command. The related command @samp{attach} provides you with a way of
39143873 choosing a particular running process as a new target. @xref{Attach}.
39153874
3916-@node Target Commands, , Active Targets, Targets
3875+@node Target Commands,,,
39173876 @section Commands for Managing Targets
39183877
39193878 @table @code
@@ -4014,16 +3973,9 @@ same version of _GDBN__ that is used ordinarily can be used for this.
40143973 Several sample remote debugging drivers are distributed with _GDBN__; see
40153974 the @file{README} file in the _GDBN__ distribution for more information.
40163975
4017-@menu
4018-* Remote Commands:: Commands used to start and finish remote debugging.
4019-@end menu
4020-
40213976 For details of the communication protocol, see the comments in the _GDBN__
40223977 source file @file{remote.c}.
40233978
4024-@node Remote Commands, , Remote, Remote
4025-@subsection Commands for Remote Debugging
4026-
40273979 To start remote debugging, first run _GDBN__ and specify as an executable file
40283980 the program that is running in the remote machine. This tells _GDBN__ how
40293981 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
41404092 @end table
41414093
41424094 @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.
41524106
41534107 The commands to control history expansion are:
41544108
@@ -4164,7 +4118,10 @@ Disable history expansion.
41644118
41654119 The @code{readline} code comes with more complete documentation of
41664120 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
41684125
41694126 @kindex show history
41704127 @item show history
@@ -4340,21 +4297,14 @@ Enables cautious questions (the default).
43404297 Displays state of cautious questions.
43414298 @end table
43424299
4343-@node Sequences, Emacs, Altering, Top
4300+@node Sequences,,,
43444301 @chapter Canned Sequences of Commands
43454302
43464303 Aside from breakpoint commands (@pxref{Break Commands}),_GDBN__ provides two
43474304 ways to store sequences of commands for execution as a unit:
43484305 user-defined commands and command files.
43494306
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,,,
43584308 @section User-Defined Commands
43594309
43604310 @cindex user-defined command
@@ -4395,7 +4345,7 @@ without asking when used inside a user-defined command. Many _GDBN__ commands
43954345 that normally print messages to say what they are doing omit the messages
43964346 when used in user-defined command.
43974347
4398-@node Command Files, Output, Define, Sequences
4348+@node Command Files,,,
43994349 @section Command Files
44004350
44014351 @cindex command files
@@ -4428,7 +4378,7 @@ without asking when used in a command file. Many _GDBN__ commands that
44284378 normally print messages to say what they are doing omit the messages
44294379 when used in a command file.
44304380
4431-@node Output, , Command Files, Sequences
4381+@node Output,,,
44324382 @section Commands for Controlled Output
44334383
44344384 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
45024452 letter.
45034453 @end table
45044454
4505-@node Emacs, Remote, Sequences, Top
4455+@node Emacs,,,
45064456 @chapter Using _GDBN__ under GNU Emacs
45074457
45084458 @cindex emacs
@@ -4658,7 +4608,7 @@ environment. Users of this environment can use a new command,
46584608 each value is printed in its own window.
46594609 @end ignore
46604610
4661-@node _GDBN__ Bugs, Installing _GDBN__, Remote, Top
4611+@node _GDBN__ Bugs,,,
46624612 @comment node-name, next, previous, up
46634613 @chapter Reporting Bugs in _GDBN__
46644614 @cindex Bugs in _GDBN__
@@ -4674,12 +4624,7 @@ reports are your contribution to the maintenance of _GDBN__.
46744624 In order for a bug report to serve its purpose, you must include the
46754625 information that makes for fixing the bug.
46764626
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,,,
46834628 @section Have You Found a Bug?
46844629 @cindex Bug Criteria
46854630
@@ -4708,7 +4653,7 @@ If you are an experienced user of debugging tools, your suggestions
47084653 for improvement of _GDBN__ are welcome in any case.
47094654 @end itemize
47104655
4711-@node Bug Reporting, , Bug Criteria, _GDBN__ Bugs
4656+@node Bug Reporting,,,
47124657 @section How to Report Bugs
47134658 @cindex Bug Reports
47144659 @cindex Compiler Bugs, Reporting
@@ -4885,7 +4830,7 @@ things without first using the debugger to find the facts.
48854830 @include readline/inc-history.texinfo
48864831 @end iftex
48874832
4888-@node Installing _GDBN__, License, _GDBN__ Bugs, Top
4833+@node Installing _GDBN__,,,
48894834 @appendix Installing _GDBN__
48904835 @cindex configuring _GDBN__
48914836 @cindex installation