Sync usage with man page.
[netbsd-mini2440.git] / gnu / dist / gdb6 / gdb / doc / annotate.texinfo
blob6133614109000c2e8a4c27f16fb433d5f591d999
1 \input texinfo   @c -*-texinfo-*-
2 @c %**start of header
3 @setfilename annotate.info
5 @c This is a dir.info fragment to support semi-automated addition of
6 @c manuals to an info tree.
7 @dircategory Software development
8 @direntry
9 * Annotate: (annotate).                 The obsolete annotation interface.
10 @end direntry
13 @include gdb-cfg.texi
15 @settitle @value{GDBN}'s Obsolete Annotations
16 @setchapternewpage off
17 @c %**end of header
19 @set EDITION 1.0
20 @set DATE July 2003
22 @c NOTE: cagney/2003-07-28:
23 @c Don't make this migration doccument an appendix of GDB's user guide.
24 @c By keeping this separate, the size of the user guide is contained. If
25 @c the user guide to get much bigger it would need to switch to a larger,
26 @c more expensive, form factor and would drive up the manuals publication
27 @c cost.  Having a smaller cheaper manual helps the GNU Press with its sales.
29 @ifinfo
30 This file documents @value{GDBN}'s obsolete annotations.
32 Copyright (C) 1994, 1995, 2000, 2001, 2003 Free Software Foundation, Inc.
34 Permission is granted to copy, distribute and/or modify this document
35 under the terms of the GNU Free Documentation License, Version 1.1 or
36 any later version published by the Free Software Foundation; with no
37 Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
38 Texts.  A copy of the license is included in the section entitled ``GNU
39 Free Documentation License''.
41 @end ifinfo
43 @titlepage
44 @title @value{GDBN}'s Obsolete Annotations
45 @subtitle Edition @value{EDITION}
46 @subtitle @value{DATE}
47 @author Free Software Foundation
48 @page
49 @vskip 0pt plus 1filll
50 Copyright @copyright{} 1994, 1995, 2000, 2001, 2003 Free Software
51 Foundation, Inc.
53 Permission is granted to copy, distribute and/or modify this document
54 under the terms of the GNU Free Documentation License, Version 1.1 or
55 any later version published by the Free Software Foundation; with no
56 Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
57 Texts.  A copy of the license is included in the section entitled ``GNU
58 Free Documentation License''.
59 @end titlepage
61 @ifinfo
62 @node Top
63 @top GDB Annotations
65 This document describes the obsolete level two annotation interface
66 implemented in older @value{GDBN} versions.
68 @ignore
69 This is Edition @value{EDITION}, @value{DATE}.
70 @end ignore
71 @end ifinfo
73 @menu
74 * Annotations Overview::  What annotations are; the general syntax.
75 * Limitations::           Limitations of the annotation interface.
76 * Migrating to GDB/MI::   Migrating to GDB/MI
77 * Server Prefix::       Issuing a command without affecting user state.
78 * Value Annotations::   Values are marked as such.
79 * Frame Annotations::   Stack frames are annotated.
80 * Displays::            @value{GDBN} can be told to display something periodically.
81 * Prompting::           Annotations marking @value{GDBN}'s need for input.
82 * Errors::              Annotations for error messages.
83 * Breakpoint Info::     Information on breakpoints.
84 * Invalidation::        Some annotations describe things now invalid.
85 * Annotations for Running::
86                         Whether the program is running, how it stopped, etc.
87 * Source Annotations::  Annotations describing source code.
89 * GNU Free Documentation License::
90 @end menu
92 @contents
94 @node Annotations Overview
95 @chapter What is an Annotation?
96 @cindex annotations
98 To produce obsolete level two annotations, start @value{GDBN} with the
99 @code{--annotate=2} option.
101 Annotations start with a newline character, two @samp{control-z}
102 characters, and the name of the annotation.  If there is no additional
103 information associated with this annotation, the name of the annotation
104 is followed immediately by a newline.  If there is additional
105 information, the name of the annotation is followed by a space, the
106 additional information, and a newline.  The additional information
107 cannot contain newline characters.
109 Any output not beginning with a newline and two @samp{control-z}
110 characters denotes literal output from @value{GDBN}.  Currently there is
111 no need for @value{GDBN} to output a newline followed by two
112 @samp{control-z} characters, but if there was such a need, the
113 annotations could be extended with an @samp{escape} annotation which
114 means those three characters as output.
116 A simple example of starting up @value{GDBN} with annotations is:
118 @smallexample
119 $ gdb --annotate=2
120 GNU GDB 5.0
121 Copyright 2000 Free Software Foundation, Inc.
122 GDB is free software, covered by the GNU General Public License,
123 and you are welcome to change it and/or distribute copies of it
124 under certain conditions.
125 Type "show copying" to see the conditions.
126 There is absolutely no warranty for GDB.  Type "show warranty"
127 for details.
128 This GDB was configured as "sparc-sun-sunos4.1.3"
130 ^Z^Zpre-prompt
131 (gdb) 
132 ^Z^Zprompt
133 quit
135 ^Z^Zpost-prompt
137 @end smallexample
139 Here @samp{quit} is input to @value{GDBN}; the rest is output from
140 @value{GDBN}.  The three lines beginning @samp{^Z^Z} (where @samp{^Z}
141 denotes a @samp{control-z} character) are annotations; the rest is
142 output from @value{GDBN}.
144 @node Limitations
145 @chapter Limitations of the Annotation Interface
147 The level two annotations mechanism is known to have a number of
148 technical and architectural limitations.  As a consequence, in 2001,
149 with the release of @value{GDBN} 5.1 and the addition of @sc{gdb/mi},
150 the annotation interface was marked as deprecated.
152 This chapter discusses the known problems.
154 @section Dependant on @sc{cli} output
156 The annotation interface works by interspersing markups with
157 @value{GDBN} normal command-line interpreter output.  Unfortunately, this
158 makes the annotation client dependant on not just the annotations, but
159 also the @sc{cli} output.  This is because the client is forced to
160 assume that specific @value{GDBN} commands provide specific information.
161 Any change to @value{GDBN}'s @sc{cli} output modifies or removes that
162 information and, consequently, likely breaks the client.
164 Since the @sc{gdb/mi} output is independant of the @sc{cli}, it does not
165 have this problem.
167 @section Scalability
169 The annotation interface relies on value annotations (@pxref{Value
170 Annotations}) and the display mechanism as a way of obtaining up-to-date
171 value information.  These mechanisms are not scalable.
173 In a graphical environment, where many values can be displayed
174 simultaneously, a serious performance problem occurs when the client
175 tries to first extract from @value{GDBN}, and then re-display, all those
176 values.  The client should instead only request and update the values
177 that changed.
179 The @sc{gdb/mi} Variable Objects provide just that mechanism.
181 @section Correctness
183 The annotation interface assumes that a variable's value can only be
184 changed when the target is running.  This assumption is not correct.  A
185 single assignment to a single variable can result in the entire target,
186 and all displayed values, needing an update.
188 The @sc{gdb/mi} Variable Objects include a mechanism for efficiently
189 reporting such changes.
191 @section Reliability
193 The @sc{gdb/mi} interface includes a dedicated test directory
194 (@file{gdb/gdb.mi}), and any addition or fix to @sc{gdb/mi} must include
195 testsuite changes.
197 @section Maintainability
199 The annotation mechanism was implemented by interspersing @sc{cli} print
200 statements with various annotations.  As a consequence, any @sc{cli}
201 output change can alter the annotation output.
203 Since the @sc{gdb/mi} output is independant of the @sc{cli}, and the
204 @sc{gdb/mi} is increasingly implemented independant of the @sc{cli}
205 code, its long term maintenance is much easier.
207 @node Migrating to GDB/MI
208 @chapter Migrating to @sc{gdb/mi}
210 By using the @samp{interp mi} command, it is possible for annotation
211 clients to invoke @sc{gdb/mi} commands, and hence access the
212 @sc{gdb/mi}.  By doing this, existing annotation clients have a
213 migration path from this obsolete interface to @sc{gdb/mi}.
215 @node Server Prefix
216 @chapter The Server Prefix
217 @cindex server prefix for annotations
219 To issue a command to @value{GDBN} without affecting certain aspects of
220 the state which is seen by users, prefix it with @samp{server }.  This
221 means that this command will not affect the command history, nor will it
222 affect @value{GDBN}'s notion of which command to repeat if @key{RET} is
223 pressed on a line by itself.
225 The server prefix does not affect the recording of values into the value
226 history; to print a value without recording it into the value history,
227 use the @code{output} command instead of the @code{print} command.
229 @node Value Annotations
230 @chapter Values
232 @emph{Value Annotations have been removed.  @sc{gdb/mi} instead provides
233 Variable Objects.}
235 @cindex annotations for values
236 When a value is printed in various contexts, @value{GDBN} uses
237 annotations to delimit the value from the surrounding text.
239 @findex value-history-begin
240 @findex value-history-value
241 @findex value-history-end
242 If a value is printed using @code{print} and added to the value history,
243 the annotation looks like
245 @smallexample
246 ^Z^Zvalue-history-begin @var{history-number} @var{value-flags}
247 @var{history-string}
248 ^Z^Zvalue-history-value
249 @var{the-value}
250 ^Z^Zvalue-history-end
251 @end smallexample
253 @noindent
254 where @var{history-number} is the number it is getting in the value
255 history, @var{history-string} is a string, such as @samp{$5 = }, which
256 introduces the value to the user, @var{the-value} is the output
257 corresponding to the value itself, and @var{value-flags} is @samp{*} for
258 a value which can be dereferenced and @samp{-} for a value which cannot.
260 @findex value-begin
261 @findex value-end
262 If the value is not added to the value history (it is an invalid float
263 or it is printed with the @code{output} command), the annotation is similar:
265 @smallexample
266 ^Z^Zvalue-begin @var{value-flags}
267 @var{the-value}
268 ^Z^Zvalue-end
269 @end smallexample
271 @findex arg-begin
272 @findex arg-name-end
273 @findex arg-value
274 @findex arg-end
275 When @value{GDBN} prints an argument to a function (for example, in the output
276 from the @code{backtrace} command), it annotates it as follows:
278 @smallexample
279 ^Z^Zarg-begin
280 @var{argument-name}
281 ^Z^Zarg-name-end
282 @var{separator-string}
283 ^Z^Zarg-value @var{value-flags}
284 @var{the-value}
285 ^Z^Zarg-end
286 @end smallexample
288 @noindent
289 where @var{argument-name} is the name of the argument,
290 @var{separator-string} is text which separates the name from the value
291 for the user's benefit (such as @samp{=}), and @var{value-flags} and
292 @var{the-value} have the same meanings as in a
293 @code{value-history-begin} annotation.
295 @findex field-begin
296 @findex field-name-end
297 @findex field-value
298 @findex field-end
299 When printing a structure, @value{GDBN} annotates it as follows:
301 @smallexample
302 ^Z^Zfield-begin @var{value-flags}
303 @var{field-name}
304 ^Z^Zfield-name-end
305 @var{separator-string}
306 ^Z^Zfield-value
307 @var{the-value}
308 ^Z^Zfield-end
309 @end smallexample
311 @noindent
312 where @var{field-name} is the name of the field, @var{separator-string}
313 is text which separates the name from the value for the user's benefit
314 (such as @samp{=}), and @var{value-flags} and @var{the-value} have the
315 same meanings as in a @code{value-history-begin} annotation.
317 When printing an array, @value{GDBN} annotates it as follows:
319 @smallexample
320 ^Z^Zarray-section-begin @var{array-index} @var{value-flags}
321 @end smallexample
323 @noindent
324 where @var{array-index} is the index of the first element being
325 annotated and @var{value-flags} has the same meaning as in a
326 @code{value-history-begin} annotation.  This is followed by any number
327 of elements, where is element can be either a single element:
329 @findex elt
330 @smallexample
331 @samp{,} @var{whitespace}         ; @r{omitted for the first element}
332 @var{the-value}
333 ^Z^Zelt
334 @end smallexample
336 or a repeated element
338 @findex elt-rep
339 @findex elt-rep-end
340 @smallexample
341 @samp{,} @var{whitespace}         ; @r{omitted for the first element}
342 @var{the-value}
343 ^Z^Zelt-rep @var{number-of-repetitions}
344 @var{repetition-string}
345 ^Z^Zelt-rep-end
346 @end smallexample
348 In both cases, @var{the-value} is the output for the value of the
349 element and @var{whitespace} can contain spaces, tabs, and newlines.  In
350 the repeated case, @var{number-of-repetitions} is the number of
351 consecutive array elements which contain that value, and
352 @var{repetition-string} is a string which is designed to convey to the
353 user that repetition is being depicted.
355 @findex array-section-end
356 Once all the array elements have been output, the array annotation is
357 ended with
359 @smallexample
360 ^Z^Zarray-section-end
361 @end smallexample
363 @node Frame Annotations
364 @chapter Frames
366 @emph{Value Annotations have been removed.  @sc{gdb/mi} instead provides
367 a number of frame commands.}
369 @emph{Frame annotations are no longer available.  The @sc{gdb/mi}
370 provides @samp{-stack-list-arguments}, @samp{-stack-list-locals}, and
371 @samp{-stack-list-frames} commands.}
373 @cindex annotations for frames
374 Whenever @value{GDBN} prints a frame, it annotates it.  For example, this applies
375 to frames printed when @value{GDBN} stops, output from commands such as
376 @code{backtrace} or @code{up}, etc.
378 @findex frame-begin
379 The frame annotation begins with
381 @smallexample
382 ^Z^Zframe-begin @var{level} @var{address}
383 @var{level-string}
384 @end smallexample
386 @noindent
387 where @var{level} is the number of the frame (0 is the innermost frame,
388 and other frames have positive numbers), @var{address} is the address of
389 the code executing in that frame, and @var{level-string} is a string
390 designed to convey the level to the user.  @var{address} is in the form
391 @samp{0x} followed by one or more lowercase hex digits (note that this
392 does not depend on the language).  The frame ends with
394 @findex frame-end
395 @smallexample
396 ^Z^Zframe-end
397 @end smallexample
399 Between these annotations is the main body of the frame, which can
400 consist of
402 @itemize @bullet
403 @item
404 @findex function-call
405 @smallexample
406 ^Z^Zfunction-call
407 @var{function-call-string}
408 @end smallexample
410 where @var{function-call-string} is text designed to convey to the user
411 that this frame is associated with a function call made by @value{GDBN} to a
412 function in the program being debugged.
414 @item
415 @findex signal-handler-caller
416 @smallexample
417 ^Z^Zsignal-handler-caller
418 @var{signal-handler-caller-string}
419 @end smallexample
421 where @var{signal-handler-caller-string} is text designed to convey to
422 the user that this frame is associated with whatever mechanism is used
423 by this operating system to call a signal handler (it is the frame which
424 calls the signal handler, not the frame for the signal handler itself).
426 @item
427 A normal frame.
429 @findex frame-address
430 @findex frame-address-end
431 This can optionally (depending on whether this is thought of as
432 interesting information for the user to see) begin with
434 @smallexample
435 ^Z^Zframe-address
436 @var{address}
437 ^Z^Zframe-address-end
438 @var{separator-string}
439 @end smallexample
441 where @var{address} is the address executing in the frame (the same
442 address as in the @code{frame-begin} annotation, but printed in a form
443 which is intended for user consumption---in particular, the syntax varies
444 depending on the language), and @var{separator-string} is a string
445 intended to separate this address from what follows for the user's
446 benefit.
448 @findex frame-function-name
449 @findex frame-args
450 Then comes
452 @smallexample
453 ^Z^Zframe-function-name
454 @var{function-name}
455 ^Z^Zframe-args
456 @var{arguments}
457 @end smallexample
459 where @var{function-name} is the name of the function executing in the
460 frame, or @samp{??} if not known, and @var{arguments} are the arguments
461 to the frame, with parentheses around them (each argument is annotated
462 individually as well, @pxref{Value Annotations}).
464 @findex frame-source-begin
465 @findex frame-source-file
466 @findex frame-source-file-end
467 @findex frame-source-line
468 @findex frame-source-end
469 If source information is available, a reference to it is then printed:
471 @smallexample
472 ^Z^Zframe-source-begin
473 @var{source-intro-string}
474 ^Z^Zframe-source-file
475 @var{filename}
476 ^Z^Zframe-source-file-end
478 ^Z^Zframe-source-line
479 @var{line-number}
480 ^Z^Zframe-source-end
481 @end smallexample
483 where @var{source-intro-string} separates for the user's benefit the
484 reference from the text which precedes it, @var{filename} is the name of
485 the source file, and @var{line-number} is the line number within that
486 file (the first line is line 1).
488 @findex frame-where
489 If @value{GDBN} prints some information about where the frame is from (which
490 library, which load segment, etc.; currently only done on the RS/6000),
491 it is annotated with
493 @smallexample
494 ^Z^Zframe-where
495 @var{information}
496 @end smallexample
498 Then, if source is to actually be displayed for this frame (for example,
499 this is not true for output from the @code{backtrace} command), then a
500 @code{source} annotation (@pxref{Source Annotations}) is displayed.  Unlike
501 most annotations, this is output instead of the normal text which would be
502 output, not in addition.
503 @end itemize
505 @node Displays
506 @chapter Displays
508 @emph{Display Annotations have been removed.  @sc{gdb/mi} instead
509 provides Variable Objects.}
511 @findex display-begin
512 @findex display-number-end
513 @findex display-format
514 @findex display-expression
515 @findex display-expression-end
516 @findex display-value
517 @findex display-end
518 @cindex annotations for display
519 When @value{GDBN} is told to display something using the @code{display} command,
520 the results of the display are annotated:
522 @smallexample
523 ^Z^Zdisplay-begin
524 @var{number}
525 ^Z^Zdisplay-number-end
526 @var{number-separator}
527 ^Z^Zdisplay-format
528 @var{format}
529 ^Z^Zdisplay-expression
530 @var{expression}
531 ^Z^Zdisplay-expression-end
532 @var{expression-separator}
533 ^Z^Zdisplay-value
534 @var{value}
535 ^Z^Zdisplay-end
536 @end smallexample
538 @noindent
539 where @var{number} is the number of the display, @var{number-separator}
540 is intended to separate the number from what follows for the user,
541 @var{format} includes information such as the size, format, or other
542 information about how the value is being displayed, @var{expression} is
543 the expression being displayed, @var{expression-separator} is intended
544 to separate the expression from the text that follows for the user,
545 and @var{value} is the actual value being displayed.
547 @node Prompting
548 @chapter Annotation for @value{GDBN} Input
550 @cindex annotations for prompts
551 When @value{GDBN} prompts for input, it annotates this fact so it is possible
552 to know when to send output, when the output from a given command is
553 over, etc.
555 Different kinds of input each have a different @dfn{input type}.  Each
556 input type has three annotations: a @code{pre-} annotation, which
557 denotes the beginning of any prompt which is being output, a plain
558 annotation, which denotes the end of the prompt, and then a @code{post-}
559 annotation which denotes the end of any echo which may (or may not) be
560 associated with the input.  For example, the @code{prompt} input type
561 features the following annotations:
563 @smallexample
564 ^Z^Zpre-prompt
565 ^Z^Zprompt
566 ^Z^Zpost-prompt
567 @end smallexample
569 The input types are
571 @table @code
572 @findex pre-prompt
573 @findex prompt
574 @findex post-prompt
575 @item prompt
576 When @value{GDBN} is prompting for a command (the main @value{GDBN} prompt).
578 @findex pre-commands
579 @findex commands
580 @findex post-commands
581 @item commands
582 When @value{GDBN} prompts for a set of commands, like in the @code{commands}
583 command.  The annotations are repeated for each command which is input.
585 @findex pre-overload-choice
586 @findex overload-choice
587 @findex post-overload-choice
588 @item overload-choice
589 When @value{GDBN} wants the user to select between various overloaded functions.
591 @findex pre-query
592 @findex query
593 @findex post-query
594 @item query
595 When @value{GDBN} wants the user to confirm a potentially dangerous operation.
597 @findex pre-prompt-for-continue
598 @findex prompt-for-continue
599 @findex post-prompt-for-continue
600 @item prompt-for-continue
601 When @value{GDBN} is asking the user to press return to continue.  Note: Don't
602 expect this to work well; instead use @code{set height 0} to disable
603 prompting.  This is because the counting of lines is buggy in the
604 presence of annotations.
605 @end table
607 @node Errors
608 @chapter Errors
609 @cindex annotations for errors, warnings and interrupts
611 @findex quit
612 @smallexample
613 ^Z^Zquit
614 @end smallexample
616 This annotation occurs right before @value{GDBN} responds to an interrupt.
618 @findex error
619 @smallexample
620 ^Z^Zerror
621 @end smallexample
623 This annotation occurs right before @value{GDBN} responds to an error.
625 Quit and error annotations indicate that any annotations which @value{GDBN} was
626 in the middle of may end abruptly.  For example, if a
627 @code{value-history-begin} annotation is followed by a @code{error}, one
628 cannot expect to receive the matching @code{value-history-end}.  One
629 cannot expect not to receive it either, however; an error annotation
630 does not necessarily mean that @value{GDBN} is immediately returning all the way
631 to the top level.
633 @findex error-begin
634 A quit or error annotation may be preceded by
636 @smallexample
637 ^Z^Zerror-begin
638 @end smallexample
640 Any output between that and the quit or error annotation is the error
641 message.
643 Warning messages are not yet annotated.
644 @c If we want to change that, need to fix warning(), type_error(),
645 @c range_error(), and possibly other places.
647 @node Breakpoint Info
648 @chapter Information on Breakpoints
650 @emph{Breakpoint Annotations have been removed.  @sc{gdb/mi} instead
651 provides breakpoint commands.}
653 @cindex annotations for breakpoints
654 The output from the @code{info breakpoints} command is annotated as follows:
656 @findex breakpoints-headers
657 @findex breakpoints-table
658 @smallexample
659 ^Z^Zbreakpoints-headers
660 @var{header-entry}
661 ^Z^Zbreakpoints-table
662 @end smallexample
664 @noindent
665 where @var{header-entry} has the same syntax as an entry (see below) but
666 instead of containing data, it contains strings which are intended to
667 convey the meaning of each field to the user.  This is followed by any
668 number of entries.  If a field does not apply for this entry, it is
669 omitted.  Fields may contain trailing whitespace.  Each entry consists
672 @findex record
673 @findex field
674 @smallexample
675 ^Z^Zrecord
676 ^Z^Zfield 0
677 @var{number}
678 ^Z^Zfield 1
679 @var{type}
680 ^Z^Zfield 2
681 @var{disposition}
682 ^Z^Zfield 3
683 @var{enable}
684 ^Z^Zfield 4
685 @var{address}
686 ^Z^Zfield 5
687 @var{what}
688 ^Z^Zfield 6
689 @var{frame}
690 ^Z^Zfield 7
691 @var{condition}
692 ^Z^Zfield 8
693 @var{ignore-count}
694 ^Z^Zfield 9
695 @var{commands}
696 @end smallexample
698 Note that @var{address} is intended for user consumption---the syntax
699 varies depending on the language.
701 The output ends with
703 @findex breakpoints-table-end
704 @smallexample
705 ^Z^Zbreakpoints-table-end
706 @end smallexample
708 @node Invalidation
709 @chapter Invalidation Notices
711 @cindex annotations for invalidation messages
712 The following annotations say that certain pieces of state may have
713 changed.
715 @table @code
716 @findex frames-invalid
717 @item ^Z^Zframes-invalid
719 The frames (for example, output from the @code{backtrace} command) may
720 have changed.
722 @findex breakpoints-invalid
723 @item ^Z^Zbreakpoints-invalid
725 The breakpoints may have changed.  For example, the user just added or
726 deleted a breakpoint.
727 @end table
729 @node Annotations for Running
730 @chapter Running the Program
731 @cindex annotations for running programs
733 @findex starting
734 @findex stopping
735 When the program starts executing due to a @value{GDBN} command such as
736 @code{step} or @code{continue}, 
738 @smallexample
739 ^Z^Zstarting
740 @end smallexample
742 is output.  When the program stops, 
744 @smallexample
745 ^Z^Zstopped
746 @end smallexample
748 is output.  Before the @code{stopped} annotation, a variety of
749 annotations describe how the program stopped.
751 @table @code
752 @findex exited
753 @item ^Z^Zexited @var{exit-status}
754 The program exited, and @var{exit-status} is the exit status (zero for
755 successful exit, otherwise nonzero).
757 @findex signalled
758 @findex signal-name
759 @findex signal-name-end
760 @findex signal-string
761 @findex signal-string-end
762 @item ^Z^Zsignalled
763 The program exited with a signal.  After the @code{^Z^Zsignalled}, the
764 annotation continues:
766 @smallexample
767 @var{intro-text}
768 ^Z^Zsignal-name
769 @var{name}
770 ^Z^Zsignal-name-end
771 @var{middle-text}
772 ^Z^Zsignal-string
773 @var{string}
774 ^Z^Zsignal-string-end
775 @var{end-text}
776 @end smallexample
778 @noindent
779 where @var{name} is the name of the signal, such as @code{SIGILL} or
780 @code{SIGSEGV}, and @var{string} is the explanation of the signal, such
781 as @code{Illegal Instruction} or @code{Segmentation fault}.
782 @var{intro-text}, @var{middle-text}, and @var{end-text} are for the
783 user's benefit and have no particular format.
785 @findex signal
786 @item ^Z^Zsignal
787 The syntax of this annotation is just like @code{signalled}, but @value{GDBN} is
788 just saying that the program received the signal, not that it was
789 terminated with it.
791 @findex breakpoint
792 @item ^Z^Zbreakpoint @var{number}
793 The program hit breakpoint number @var{number}.
795 @findex watchpoint
796 @item ^Z^Zwatchpoint @var{number}
797 The program hit watchpoint number @var{number}.
798 @end table
800 @node Source Annotations
801 @chapter Displaying Source
802 @cindex annotations for source display
804 @findex source
805 The following annotation is used instead of displaying source code:
807 @smallexample
808 ^Z^Zsource @var{filename}:@var{line}:@var{character}:@var{middle}:@var{addr}
809 @end smallexample
811 where @var{filename} is an absolute file name indicating which source
812 file, @var{line} is the line number within that file (where 1 is the
813 first line in the file), @var{character} is the character position
814 within the file (where 0 is the first character in the file) (for most
815 debug formats this will necessarily point to the beginning of a line),
816 @var{middle} is @samp{middle} if @var{addr} is in the middle of the
817 line, or @samp{beg} if @var{addr} is at the beginning of the line, and
818 @var{addr} is the address in the target program associated with the
819 source which is being displayed.  @var{addr} is in the form @samp{0x}
820 followed by one or more lowercase hex digits (note that this does not
821 depend on the language).
823 @raisesections
824 @include fdl.texi
825 @lowersections
827 @ignore
828 @node Index
829 @unnumbered Index
831 @printindex fn
832 @end ignore
834 @bye