xref: /netbsd-src/external/gpl3/gdb/info/annotate.info (revision 3117ece4fc4a4ca4489ba793710b60b0d26bab6c)
1This is annotate.info, produced by makeinfo version 7.1 from
2annotate.texinfo.
3
4Copyright © 1994-2024 Free Software Foundation, Inc.
5
6   Permission is granted to copy, distribute and/or modify this document
7under the terms of the GNU Free Documentation License, Version 1.3 or
8any later version published by the Free Software Foundation; with no
9Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
10Texts.  A copy of the license is included in the section entitled "GNU
11Free Documentation License".
12INFO-DIR-SECTION Software development
13START-INFO-DIR-ENTRY
14* Annotate: (annotate).                 The obsolete annotation interface.
15END-INFO-DIR-ENTRY
16
17   This file documents GDB's obsolete annotations.
18
19   Copyright © 1994-2024 Free Software Foundation, Inc.
20
21   Permission is granted to copy, distribute and/or modify this document
22under the terms of the GNU Free Documentation License, Version 1.3 or
23any later version published by the Free Software Foundation; with no
24Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
25Texts.  A copy of the license is included in the section entitled "GNU
26Free Documentation License".
27
28
29File: annotate.info,  Node: Top,  Next: Annotations Overview,  Up: (dir)
30
31GDB Annotations
32***************
33
34This document describes the obsolete level two annotation interface
35implemented in older GDB versions.
36
37* Menu:
38
39* Annotations Overview::  What annotations are; the general syntax.
40* Limitations::           Limitations of the annotation interface.
41* Migrating to GDB/MI::   Migrating to GDB/MI
42* Server Prefix::       Issuing a command without affecting user state.
43* Value Annotations::   Values are marked as such.
44* Frame Annotations::   Stack frames are annotated.
45* Displays::            GDB can be told to display something periodically.
46* Prompting::           Annotations marking GDB's need for input.
47* Errors::              Annotations for error messages.
48* Breakpoint Info::     Information on breakpoints.
49* Invalidation::        Some annotations describe things now invalid.
50* Annotations for Running::
51                        Whether the program is running, how it stopped, etc.
52* Source Annotations::  Annotations describing source code.
53* Multi-threaded Apps:: An annotation that reports multi-threadedness.
54
55* GNU Free Documentation License::
56
57
58File: annotate.info,  Node: Annotations Overview,  Next: Limitations,  Prev: Top,  Up: Top
59
601 What is an Annotation?
61************************
62
63To produce obsolete level two annotations, start GDB with the
64‘--annotate=2’ option.
65
66   Annotations start with a newline character, two ‘control-z’
67characters, and the name of the annotation.  If there is no additional
68information associated with this annotation, the name of the annotation
69is followed immediately by a newline.  If there is additional
70information, the name of the annotation is followed by a space, the
71additional information, and a newline.  The additional information
72cannot contain newline characters.
73
74   Any output not beginning with a newline and two ‘control-z’
75characters denotes literal output from GDB.  Currently there is no need
76for GDB to output a newline followed by two ‘control-z’ characters, but
77if there was such a need, the annotations could be extended with an
78‘escape’ annotation which means those three characters as output.
79
80   A simple example of starting up GDB with annotations is:
81
82     $ gdb --annotate=2
83     GNU GDB 5.0
84     Copyright 2000 Free Software Foundation, Inc.
85     GDB is free software, covered by the GNU General Public License,
86     and you are welcome to change it and/or distribute copies of it
87     under certain conditions.
88     Type "show copying" to see the conditions.
89     There is absolutely no warranty for GDB.  Type "show warranty"
90     for details.
91     This GDB was configured as "sparc-sun-sunos4.1.3"
92
93     ^Z^Zpre-prompt
94     (gdb)
95     ^Z^Zprompt
96     quit
97
98     ^Z^Zpost-prompt
99     $
100
101   Here ‘quit’ is input to GDB; the rest is output from GDB.  The three
102lines beginning ‘^Z^Z’ (where ‘^Z’ denotes a ‘control-z’ character) are
103annotations; the rest is output from GDB.
104
105
106File: annotate.info,  Node: Limitations,  Next: Migrating to GDB/MI,  Prev: Annotations Overview,  Up: Top
107
1082 Limitations of the Annotation Interface
109*****************************************
110
111The level two annotations mechanism is known to have a number of
112technical and architectural limitations.  As a consequence, in 2001,
113with the release of GDB 5.1 and the addition of GDB/MI, the annotation
114interface was marked as deprecated.
115
116   This chapter discusses the known problems.
117
1182.1 Dependant on CLI output
119===========================
120
121The annotation interface works by interspersing markups with GDB normal
122command-line interpreter output.  Unfortunately, this makes the
123annotation client dependant on not just the annotations, but also the
124CLI output.  This is because the client is forced to assume that
125specific GDB commands provide specific information.  Any change to GDB's
126CLI output modifies or removes that information and, consequently,
127likely breaks the client.
128
129   Since the GDB/MI output is independent of the CLI, it does not have
130this problem.
131
1322.2 Scalability
133===============
134
135The annotation interface relies on value annotations (*note Value
136Annotations::) and the display mechanism as a way of obtaining
137up-to-date value information.  These mechanisms are not scalable.
138
139   In a graphical environment, where many values can be displayed
140simultaneously, a serious performance problem occurs when the client
141tries to first extract from GDB, and then re-display, all those values.
142The client should instead only request and update the values that
143changed.
144
145   The GDB/MI Variable Objects provide just that mechanism.
146
1472.3 Correctness
148===============
149
150The annotation interface assumes that a variable's value can only be
151changed when the target is running.  This assumption is not correct.  A
152single assignment to a single variable can result in the entire target,
153and all displayed values, needing an update.
154
155   The GDB/MI Variable Objects include a mechanism for efficiently
156reporting such changes.
157
1582.4 Reliability
159===============
160
161The GDB/MI interface includes a dedicated test directory (‘gdb/gdb.mi’),
162and any addition or fix to GDB/MI must include testsuite changes.
163
1642.5 Maintainability
165===================
166
167The annotation mechanism was implemented by interspersing CLI print
168statements with various annotations.  As a consequence, any CLI output
169change can alter the annotation output.
170
171   Since the GDB/MI output is independent of the CLI, and the GDB/MI is
172increasingly implemented independent of the CLI code, its long term
173maintenance is much easier.
174
175
176File: annotate.info,  Node: Migrating to GDB/MI,  Next: Server Prefix,  Prev: Limitations,  Up: Top
177
1783 Migrating to GDB/MI
179*********************
180
181By using the ‘interp mi’ command, it is possible for annotation clients
182to invoke GDB/MI commands, and hence access the GDB/MI.  By doing this,
183existing annotation clients have a migration path from this obsolete
184interface to GDB/MI.
185
186
187File: annotate.info,  Node: Server Prefix,  Next: Value Annotations,  Prev: Migrating to GDB/MI,  Up: Top
188
1894 The Server Prefix
190*******************
191
192To issue a command to GDB without affecting certain aspects of the state
193which is seen by users, prefix it with ‘server ’.  This means that this
194command will not affect the command history, nor will it affect GDB's
195notion of which command to repeat if <RET> is pressed on a line by
196itself.
197
198   The server prefix does not affect the recording of values into the
199value history; to print a value without recording it into the value
200history, use the ‘output’ command instead of the ‘print’ command.
201
202
203File: annotate.info,  Node: Value Annotations,  Next: Frame Annotations,  Prev: Server Prefix,  Up: Top
204
2055 Values
206********
207
208_Value Annotations have been removed.  GDB/MI instead provides Variable
209Objects._
210
211   When a value is printed in various contexts, GDB uses annotations to
212delimit the value from the surrounding text.
213
214   If a value is printed using ‘print’ and added to the value history,
215the annotation looks like
216
217     ^Z^Zvalue-history-begin HISTORY-NUMBER VALUE-FLAGS
218     HISTORY-STRING
219     ^Z^Zvalue-history-value
220     THE-VALUE
221     ^Z^Zvalue-history-end
222
223where HISTORY-NUMBER is the number it is getting in the value history,
224HISTORY-STRING is a string, such as ‘$5 = ’, which introduces the value
225to the user, THE-VALUE is the output corresponding to the value itself,
226and VALUE-FLAGS is ‘*’ for a value which can be dereferenced and ‘-’ for
227a value which cannot.
228
229   If the value is not added to the value history (it is an invalid
230float or it is printed with the ‘output’ command), the annotation is
231similar:
232
233     ^Z^Zvalue-begin VALUE-FLAGS
234     THE-VALUE
235     ^Z^Zvalue-end
236
237   When GDB prints an argument to a function (for example, in the output
238from the ‘backtrace’ command), it annotates it as follows:
239
240     ^Z^Zarg-begin
241     ARGUMENT-NAME
242     ^Z^Zarg-name-end
243     SEPARATOR-STRING
244     ^Z^Zarg-value VALUE-FLAGS
245     THE-VALUE
246     ^Z^Zarg-end
247
248where ARGUMENT-NAME is the name of the argument, SEPARATOR-STRING is
249text which separates the name from the value for the user's benefit
250(such as ‘=’), and VALUE-FLAGS and THE-VALUE have the same meanings as
251in a ‘value-history-begin’ annotation.
252
253   When printing a structure, GDB annotates it as follows:
254
255     ^Z^Zfield-begin VALUE-FLAGS
256     FIELD-NAME
257     ^Z^Zfield-name-end
258     SEPARATOR-STRING
259     ^Z^Zfield-value
260     THE-VALUE
261     ^Z^Zfield-end
262
263where FIELD-NAME is the name of the field, SEPARATOR-STRING is text
264which separates the name from the value for the user's benefit (such as
265‘=’), and VALUE-FLAGS and THE-VALUE have the same meanings as in a
266‘value-history-begin’ annotation.
267
268   When printing an array, GDB annotates it as follows:
269
270     ^Z^Zarray-section-begin ARRAY-INDEX VALUE-FLAGS
271
272where ARRAY-INDEX is the index of the first element being annotated and
273VALUE-FLAGS has the same meaning as in a ‘value-history-begin’
274annotation.  This is followed by any number of elements, where is
275element can be either a single element:
276
277     ‘,’ WHITESPACE         ; omitted for the first element
278     THE-VALUE
279     ^Z^Zelt
280
281   or a repeated element
282
283     ‘,’ WHITESPACE         ; omitted for the first element
284     THE-VALUE
285     ^Z^Zelt-rep NUMBER-OF-REPETITIONS
286     REPETITION-STRING
287     ^Z^Zelt-rep-end
288
289   In both cases, THE-VALUE is the output for the value of the element
290and WHITESPACE can contain spaces, tabs, and newlines.  In the repeated
291case, NUMBER-OF-REPETITIONS is the number of consecutive array elements
292which contain that value, and REPETITION-STRING is a string which is
293designed to convey to the user that repetition is being depicted.
294
295   Once all the array elements have been output, the array annotation is
296ended with
297
298     ^Z^Zarray-section-end
299
300
301File: annotate.info,  Node: Frame Annotations,  Next: Displays,  Prev: Value Annotations,  Up: Top
302
3036 Frames
304********
305
306_Value Annotations have been removed.  GDB/MI instead provides a number
307of frame commands._
308
309   _Frame annotations are no longer available.  The GDB/MI provides
310‘-stack-list-arguments’, ‘-stack-list-locals’, and ‘-stack-list-frames’
311commands._
312
313   Whenever GDB prints a frame, it annotates it.  For example, this
314applies to frames printed when GDB stops, output from commands such as
315‘backtrace’ or ‘up’, etc.
316
317   The frame annotation begins with
318
319     ^Z^Zframe-begin LEVEL ADDRESS
320     LEVEL-STRING
321
322where LEVEL is the number of the frame (0 is the innermost frame, and
323other frames have positive numbers), ADDRESS is the address of the code
324executing in that frame, and LEVEL-STRING is a string designed to convey
325the level to the user.  ADDRESS is in the form ‘0x’ followed by one or
326more lowercase hex digits (note that this does not depend on the
327language).  The frame ends with
328
329     ^Z^Zframe-end
330
331   Between these annotations is the main body of the frame, which can
332consist of
333
334   •      ^Z^Zfunction-call
335          FUNCTION-CALL-STRING
336
337     where FUNCTION-CALL-STRING is text designed to convey to the user
338     that this frame is associated with a function call made by GDB to a
339     function in the program being debugged.
340
341   •      ^Z^Zsignal-handler-caller
342          SIGNAL-HANDLER-CALLER-STRING
343
344     where SIGNAL-HANDLER-CALLER-STRING is text designed to convey to
345     the user that this frame is associated with whatever mechanism is
346     used by this operating system to call a signal handler (it is the
347     frame which calls the signal handler, not the frame for the signal
348     handler itself).
349
350   • A normal frame.
351
352     This can optionally (depending on whether this is thought of as
353     interesting information for the user to see) begin with
354
355          ^Z^Zframe-address
356          ADDRESS
357          ^Z^Zframe-address-end
358          SEPARATOR-STRING
359
360     where ADDRESS is the address executing in the frame (the same
361     address as in the ‘frame-begin’ annotation, but printed in a form
362     which is intended for user consumption--in particular, the syntax
363     varies depending on the language), and SEPARATOR-STRING is a string
364     intended to separate this address from what follows for the user's
365     benefit.
366
367     Then comes
368
369          ^Z^Zframe-function-name
370          FUNCTION-NAME
371          ^Z^Zframe-args
372          ARGUMENTS
373
374     where FUNCTION-NAME is the name of the function executing in the
375     frame, or ‘??’ if not known, and ARGUMENTS are the arguments to the
376     frame, with parentheses around them (each argument is annotated
377     individually as well, *note Value Annotations::).
378
379     If source information is available, a reference to it is then
380     printed:
381
382          ^Z^Zframe-source-begin
383          SOURCE-INTRO-STRING
384          ^Z^Zframe-source-file
385          FILENAME
386          ^Z^Zframe-source-file-end
387          :
388          ^Z^Zframe-source-line
389          LINE-NUMBER
390          ^Z^Zframe-source-end
391
392     where SOURCE-INTRO-STRING separates for the user's benefit the
393     reference from the text which precedes it, FILENAME is the name of
394     the source file, and LINE-NUMBER is the line number within that
395     file (the first line is line 1).
396
397     If GDB prints some information about where the frame is from (which
398     library, which load segment, etc.; currently only done on the
399     RS/6000), it is annotated with
400
401          ^Z^Zframe-where
402          INFORMATION
403
404     Then, if source is to actually be displayed for this frame (for
405     example, this is not true for output from the ‘backtrace’ command),
406     then a ‘source’ annotation (*note Source Annotations::) is
407     displayed.  Unlike most annotations, this is output instead of the
408     normal text which would be output, not in addition.
409
410
411File: annotate.info,  Node: Displays,  Next: Prompting,  Prev: Frame Annotations,  Up: Top
412
4137 Displays
414**********
415
416_Display Annotations have been removed.  GDB/MI instead provides
417Variable Objects._
418
419   When GDB is told to display something using the ‘display’ command,
420the results of the display are annotated:
421
422     ^Z^Zdisplay-begin
423     NUMBER
424     ^Z^Zdisplay-number-end
425     NUMBER-SEPARATOR
426     ^Z^Zdisplay-format
427     FORMAT
428     ^Z^Zdisplay-expression
429     EXPRESSION
430     ^Z^Zdisplay-expression-end
431     EXPRESSION-SEPARATOR
432     ^Z^Zdisplay-value
433     VALUE
434     ^Z^Zdisplay-end
435
436where NUMBER is the number of the display, NUMBER-SEPARATOR is intended
437to separate the number from what follows for the user, FORMAT includes
438information such as the size, format, or other information about how the
439value is being displayed, EXPRESSION is the expression being displayed,
440EXPRESSION-SEPARATOR is intended to separate the expression from the
441text that follows for the user, and VALUE is the actual value being
442displayed.
443
444
445File: annotate.info,  Node: Prompting,  Next: Errors,  Prev: Displays,  Up: Top
446
4478 Annotation for GDB Input
448**************************
449
450When GDB prompts for input, it annotates this fact so it is possible to
451know when to send output, when the output from a given command is over,
452etc.
453
454   Different kinds of input each have a different “input type”.  Each
455input type has three annotations: a ‘pre-’ annotation, which denotes the
456beginning of any prompt which is being output, a plain annotation, which
457denotes the end of the prompt, and then a ‘post-’ annotation which
458denotes the end of any echo which may (or may not) be associated with
459the input.  For example, the ‘prompt’ input type features the following
460annotations:
461
462     ^Z^Zpre-prompt
463     ^Z^Zprompt
464     ^Z^Zpost-prompt
465
466   The input types are
467
468‘prompt’
469     When GDB is prompting for a command (the main GDB prompt).
470
471‘commands’
472     When GDB prompts for a set of commands, like in the ‘commands’
473     command.  The annotations are repeated for each command which is
474     input.
475
476‘overload-choice’
477     When GDB wants the user to select between various overloaded
478     functions.
479
480‘query’
481     When GDB wants the user to confirm a potentially dangerous
482     operation.
483
484‘prompt-for-continue’
485     When GDB is asking the user to press return to continue.  Note:
486     Don't expect this to work well; instead use ‘set height 0’ to
487     disable prompting.  This is because the counting of lines is buggy
488     in the presence of annotations.
489
490
491File: annotate.info,  Node: Errors,  Next: Breakpoint Info,  Prev: Prompting,  Up: Top
492
4939 Errors
494********
495
496     ^Z^Zquit
497
498   This annotation occurs right before GDB responds to an interrupt.
499
500     ^Z^Zerror
501
502   This annotation occurs right before GDB responds to an error.
503
504   Quit and error annotations indicate that any annotations which GDB
505was in the middle of may end abruptly.  For example, if a
506‘value-history-begin’ annotation is followed by a ‘error’, one cannot
507expect to receive the matching ‘value-history-end’.  One cannot expect
508not to receive it either, however; an error annotation does not
509necessarily mean that GDB is immediately returning all the way to the
510top level.
511
512   A quit or error annotation may be preceded by
513
514     ^Z^Zerror-begin
515
516   Any output between that and the quit or error annotation is the error
517message.
518
519   Warning messages are not yet annotated.
520
521
522File: annotate.info,  Node: Breakpoint Info,  Next: Invalidation,  Prev: Errors,  Up: Top
523
52410 Information on Breakpoints
525*****************************
526
527_Breakpoint Annotations have been removed.  GDB/MI instead provides
528breakpoint commands._
529
530   The output from the ‘info breakpoints’ command is annotated as
531follows:
532
533     ^Z^Zbreakpoints-headers
534     HEADER-ENTRY
535     ^Z^Zbreakpoints-table
536
537where HEADER-ENTRY has the same syntax as an entry (see below) but
538instead of containing data, it contains strings which are intended to
539convey the meaning of each field to the user.  This is followed by any
540number of entries.  If a field does not apply for this entry, it is
541omitted.  Fields may contain trailing whitespace.  Each entry consists
542of:
543
544     ^Z^Zrecord
545     ^Z^Zfield 0
546     NUMBER
547     ^Z^Zfield 1
548     TYPE
549     ^Z^Zfield 2
550     DISPOSITION
551     ^Z^Zfield 3
552     ENABLE
553     ^Z^Zfield 4
554     ADDRESS
555     ^Z^Zfield 5
556     WHAT
557     ^Z^Zfield 6
558     FRAME
559     ^Z^Zfield 7
560     CONDITION
561     ^Z^Zfield 8
562     IGNORE-COUNT
563     ^Z^Zfield 9
564     COMMANDS
565
566   Note that ADDRESS is intended for user consumption--the syntax varies
567depending on the language.
568
569   The output ends with
570
571     ^Z^Zbreakpoints-table-end
572
573
574File: annotate.info,  Node: Invalidation,  Next: Annotations for Running,  Prev: Breakpoint Info,  Up: Top
575
57611 Invalidation Notices
577***********************
578
579The following annotations say that certain pieces of state may have
580changed.
581
582‘^Z^Zframes-invalid’
583
584     The frames (for example, output from the ‘backtrace’ command) may
585     have changed.
586
587‘^Z^Zbreakpoints-invalid’
588
589     The breakpoints may have changed.  For example, the user just added
590     or deleted a breakpoint.
591
592
593File: annotate.info,  Node: Annotations for Running,  Next: Source Annotations,  Prev: Invalidation,  Up: Top
594
59512 Running the Program
596**********************
597
598When the program starts executing due to a GDB command such as ‘step’ or
599‘continue’,
600
601     ^Z^Zstarting
602
603   is output.  When the program stops,
604
605     ^Z^Zstopped
606
607   is output.  Before the ‘stopped’ annotation, a variety of annotations
608describe how the program stopped.
609
610‘^Z^Zexited EXIT-STATUS’
611     The program exited, and EXIT-STATUS is the exit status (zero for
612     successful exit, otherwise nonzero).
613
614‘^Z^Zsignalled’
615     The program exited with a signal.  After the ‘^Z^Zsignalled’, the
616     annotation continues:
617
618          INTRO-TEXT
619          ^Z^Zsignal-name
620          NAME
621          ^Z^Zsignal-name-end
622          MIDDLE-TEXT
623          ^Z^Zsignal-string
624          STRING
625          ^Z^Zsignal-string-end
626          END-TEXT
627
628     where NAME is the name of the signal, such as ‘SIGILL’ or
629     ‘SIGSEGV’, and STRING is the explanation of the signal, such as
630     ‘Illegal Instruction’ or ‘Segmentation fault’.  INTRO-TEXT,
631     MIDDLE-TEXT, and END-TEXT are for the user's benefit and have no
632     particular format.
633
634‘^Z^Zsignal’
635     The syntax of this annotation is just like ‘signalled’, but GDB is
636     just saying that the program received the signal, not that it was
637     terminated with it.
638
639‘^Z^Zbreakpoint NUMBER’
640     The program hit breakpoint number NUMBER.
641
642‘^Z^Zwatchpoint NUMBER’
643     The program hit watchpoint number NUMBER.
644
645
646File: annotate.info,  Node: Source Annotations,  Next: Multi-threaded Apps,  Prev: Annotations for Running,  Up: Top
647
64813 Displaying Source
649********************
650
651The following annotation is used instead of displaying source code:
652
653     ^Z^Zsource FILENAME:LINE:CHARACTER:MIDDLE:ADDR
654
655   where FILENAME is an absolute file name indicating which source file,
656LINE is the line number within that file (where 1 is the first line in
657the file), CHARACTER is the character position within the file (where 0
658is the first character in the file) (for most debug formats this will
659necessarily point to the beginning of a line), MIDDLE is ‘middle’ if
660ADDR is in the middle of the line, or ‘beg’ if ADDR is at the beginning
661of the line, and ADDR is the address in the target program associated
662with the source which is being displayed.  ADDR is in the form ‘0x’
663followed by one or more lowercase hex digits (note that this does not
664depend on the language).
665
666
667File: annotate.info,  Node: Multi-threaded Apps,  Next: GNU Free Documentation License,  Prev: Source Annotations,  Up: Top
668
66914 Multi-threaded Applications
670******************************
671
672The following annotations report thread related changes of state.
673
674‘^Z^Znew-thread’
675
676     This annotation is issued once for each thread that is created
677     apart from the main thread, which is not reported.
678
679‘^Z^Zthread-changed’
680
681     The selected thread has changed.  This may occur at the request of
682     the user with the ‘thread’ command, or as a result of execution,
683     e.g., another thread hits a breakpoint.
684
685‘^Z^Zthread-exited,id="ID",group-id="GID"’
686
687     This annotation is issued once for each thread that exits.  The ID
688     field contains the global GDB identifier of the thread.  The GID
689     field identifies the thread group this thread belongs to.
690
691
692File: annotate.info,  Node: GNU Free Documentation License,  Prev: Multi-threaded Apps,  Up: Top
693
694Appendix A GNU Free Documentation License
695*****************************************
696
697                     Version 1.3, 3 November 2008
698
699     Copyright © 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc.
700     <http://fsf.org/>
701
702     Everyone is permitted to copy and distribute verbatim copies
703     of this license document, but changing it is not allowed.
704
705  0. PREAMBLE
706
707     The purpose of this License is to make a manual, textbook, or other
708     functional and useful document “free” in the sense of freedom: to
709     assure everyone the effective freedom to copy and redistribute it,
710     with or without modifying it, either commercially or
711     noncommercially.  Secondarily, this License preserves for the
712     author and publisher a way to get credit for their work, while not
713     being considered responsible for modifications made by others.
714
715     This License is a kind of "copyleft", which means that derivative
716     works of the document must themselves be free in the same sense.
717     It complements the GNU General Public License, which is a copyleft
718     license designed for free software.
719
720     We have designed this License in order to use it for manuals for
721     free software, because free software needs free documentation: a
722     free program should come with manuals providing the same freedoms
723     that the software does.  But this License is not limited to
724     software manuals; it can be used for any textual work, regardless
725     of subject matter or whether it is published as a printed book.  We
726     recommend this License principally for works whose purpose is
727     instruction or reference.
728
729  1. APPLICABILITY AND DEFINITIONS
730
731     This License applies to any manual or other work, in any medium,
732     that contains a notice placed by the copyright holder saying it can
733     be distributed under the terms of this License.  Such a notice
734     grants a world-wide, royalty-free license, unlimited in duration,
735     to use that work under the conditions stated herein.  The
736     "Document", below, refers to any such manual or work.  Any member
737     of the public is a licensee, and is addressed as "you".  You accept
738     the license if you copy, modify or distribute the work in a way
739     requiring permission under copyright law.
740
741     A "Modified Version" of the Document means any work containing the
742     Document or a portion of it, either copied verbatim, or with
743     modifications and/or translated into another language.
744
745     A "Secondary Section" is a named appendix or a front-matter section
746     of the Document that deals exclusively with the relationship of the
747     publishers or authors of the Document to the Document's overall
748     subject (or to related matters) and contains nothing that could
749     fall directly within that overall subject.  (Thus, if the Document
750     is in part a textbook of mathematics, a Secondary Section may not
751     explain any mathematics.)  The relationship could be a matter of
752     historical connection with the subject or with related matters, or
753     of legal, commercial, philosophical, ethical or political position
754     regarding them.
755
756     The "Invariant Sections" are certain Secondary Sections whose
757     titles are designated, as being those of Invariant Sections, in the
758     notice that says that the Document is released under this License.
759     If a section does not fit the above definition of Secondary then it
760     is not allowed to be designated as Invariant.  The Document may
761     contain zero Invariant Sections.  If the Document does not identify
762     any Invariant Sections then there are none.
763
764     The "Cover Texts" are certain short passages of text that are
765     listed, as Front-Cover Texts or Back-Cover Texts, in the notice
766     that says that the Document is released under this License.  A
767     Front-Cover Text may be at most 5 words, and a Back-Cover Text may
768     be at most 25 words.
769
770     A "Transparent" copy of the Document means a machine-readable copy,
771     represented in a format whose specification is available to the
772     general public, that is suitable for revising the document
773     straightforwardly with generic text editors or (for images composed
774     of pixels) generic paint programs or (for drawings) some widely
775     available drawing editor, and that is suitable for input to text
776     formatters or for automatic translation to a variety of formats
777     suitable for input to text formatters.  A copy made in an otherwise
778     Transparent file format whose markup, or absence of markup, has
779     been arranged to thwart or discourage subsequent modification by
780     readers is not Transparent.  An image format is not Transparent if
781     used for any substantial amount of text.  A copy that is not
782     "Transparent" is called "Opaque".
783
784     Examples of suitable formats for Transparent copies include plain
785     ASCII without markup, Texinfo input format, LaTeX input format,
786     SGML or XML using a publicly available DTD, and standard-conforming
787     simple HTML, PostScript or PDF designed for human modification.
788     Examples of transparent image formats include PNG, XCF and JPG.
789     Opaque formats include proprietary formats that can be read and
790     edited only by proprietary word processors, SGML or XML for which
791     the DTD and/or processing tools are not generally available, and
792     the machine-generated HTML, PostScript or PDF produced by some word
793     processors for output purposes only.
794
795     The "Title Page" means, for a printed book, the title page itself,
796     plus such following pages as are needed to hold, legibly, the
797     material this License requires to appear in the title page.  For
798     works in formats which do not have any title page as such, "Title
799     Page" means the text near the most prominent appearance of the
800     work's title, preceding the beginning of the body of the text.
801
802     The "publisher" means any person or entity that distributes copies
803     of the Document to the public.
804
805     A section "Entitled XYZ" means a named subunit of the Document
806     whose title either is precisely XYZ or contains XYZ in parentheses
807     following text that translates XYZ in another language.  (Here XYZ
808     stands for a specific section name mentioned below, such as
809     "Acknowledgements", "Dedications", "Endorsements", or "History".)
810     To "Preserve the Title" of such a section when you modify the
811     Document means that it remains a section "Entitled XYZ" according
812     to this definition.
813
814     The Document may include Warranty Disclaimers next to the notice
815     which states that this License applies to the Document.  These
816     Warranty Disclaimers are considered to be included by reference in
817     this License, but only as regards disclaiming warranties: any other
818     implication that these Warranty Disclaimers may have is void and
819     has no effect on the meaning of this License.
820
821  2. VERBATIM COPYING
822
823     You may copy and distribute the Document in any medium, either
824     commercially or noncommercially, provided that this License, the
825     copyright notices, and the license notice saying this License
826     applies to the Document are reproduced in all copies, and that you
827     add no other conditions whatsoever to those of this License.  You
828     may not use technical measures to obstruct or control the reading
829     or further copying of the copies you make or distribute.  However,
830     you may accept compensation in exchange for copies.  If you
831     distribute a large enough number of copies you must also follow the
832     conditions in section 3.
833
834     You may also lend copies, under the same conditions stated above,
835     and you may publicly display copies.
836
837  3. COPYING IN QUANTITY
838
839     If you publish printed copies (or copies in media that commonly
840     have printed covers) of the Document, numbering more than 100, and
841     the Document's license notice requires Cover Texts, you must
842     enclose the copies in covers that carry, clearly and legibly, all
843     these Cover Texts: Front-Cover Texts on the front cover, and
844     Back-Cover Texts on the back cover.  Both covers must also clearly
845     and legibly identify you as the publisher of these copies.  The
846     front cover must present the full title with all words of the title
847     equally prominent and visible.  You may add other material on the
848     covers in addition.  Copying with changes limited to the covers, as
849     long as they preserve the title of the Document and satisfy these
850     conditions, can be treated as verbatim copying in other respects.
851
852     If the required texts for either cover are too voluminous to fit
853     legibly, you should put the first ones listed (as many as fit
854     reasonably) on the actual cover, and continue the rest onto
855     adjacent pages.
856
857     If you publish or distribute Opaque copies of the Document
858     numbering more than 100, you must either include a machine-readable
859     Transparent copy along with each Opaque copy, or state in or with
860     each Opaque copy a computer-network location from which the general
861     network-using public has access to download using public-standard
862     network protocols a complete Transparent copy of the Document, free
863     of added material.  If you use the latter option, you must take
864     reasonably prudent steps, when you begin distribution of Opaque
865     copies in quantity, to ensure that this Transparent copy will
866     remain thus accessible at the stated location until at least one
867     year after the last time you distribute an Opaque copy (directly or
868     through your agents or retailers) of that edition to the public.
869
870     It is requested, but not required, that you contact the authors of
871     the Document well before redistributing any large number of copies,
872     to give them a chance to provide you with an updated version of the
873     Document.
874
875  4. MODIFICATIONS
876
877     You may copy and distribute a Modified Version of the Document
878     under the conditions of sections 2 and 3 above, provided that you
879     release the Modified Version under precisely this License, with the
880     Modified Version filling the role of the Document, thus licensing
881     distribution and modification of the Modified Version to whoever
882     possesses a copy of it.  In addition, you must do these things in
883     the Modified Version:
884
885       A. Use in the Title Page (and on the covers, if any) a title
886          distinct from that of the Document, and from those of previous
887          versions (which should, if there were any, be listed in the
888          History section of the Document).  You may use the same title
889          as a previous version if the original publisher of that
890          version gives permission.
891
892       B. List on the Title Page, as authors, one or more persons or
893          entities responsible for authorship of the modifications in
894          the Modified Version, together with at least five of the
895          principal authors of the Document (all of its principal
896          authors, if it has fewer than five), unless they release you
897          from this requirement.
898
899       C. State on the Title page the name of the publisher of the
900          Modified Version, as the publisher.
901
902       D. Preserve all the copyright notices of the Document.
903
904       E. Add an appropriate copyright notice for your modifications
905          adjacent to the other copyright notices.
906
907       F. Include, immediately after the copyright notices, a license
908          notice giving the public permission to use the Modified
909          Version under the terms of this License, in the form shown in
910          the Addendum below.
911
912       G. Preserve in that license notice the full lists of Invariant
913          Sections and required Cover Texts given in the Document's
914          license notice.
915
916       H. Include an unaltered copy of this License.
917
918       I. Preserve the section Entitled "History", Preserve its Title,
919          and add to it an item stating at least the title, year, new
920          authors, and publisher of the Modified Version as given on the
921          Title Page.  If there is no section Entitled "History" in the
922          Document, create one stating the title, year, authors, and
923          publisher of the Document as given on its Title Page, then add
924          an item describing the Modified Version as stated in the
925          previous sentence.
926
927       J. Preserve the network location, if any, given in the Document
928          for public access to a Transparent copy of the Document, and
929          likewise the network locations given in the Document for
930          previous versions it was based on.  These may be placed in the
931          "History" section.  You may omit a network location for a work
932          that was published at least four years before the Document
933          itself, or if the original publisher of the version it refers
934          to gives permission.
935
936       K. For any section Entitled "Acknowledgements" or "Dedications",
937          Preserve the Title of the section, and preserve in the section
938          all the substance and tone of each of the contributor
939          acknowledgements and/or dedications given therein.
940
941       L. Preserve all the Invariant Sections of the Document, unaltered
942          in their text and in their titles.  Section numbers or the
943          equivalent are not considered part of the section titles.
944
945       M. Delete any section Entitled "Endorsements".  Such a section
946          may not be included in the Modified Version.
947
948       N. Do not retitle any existing section to be Entitled
949          "Endorsements" or to conflict in title with any Invariant
950          Section.
951
952       O. Preserve any Warranty Disclaimers.
953
954     If the Modified Version includes new front-matter sections or
955     appendices that qualify as Secondary Sections and contain no
956     material copied from the Document, you may at your option designate
957     some or all of these sections as invariant.  To do this, add their
958     titles to the list of Invariant Sections in the Modified Version's
959     license notice.  These titles must be distinct from any other
960     section titles.
961
962     You may add a section Entitled "Endorsements", provided it contains
963     nothing but endorsements of your Modified Version by various
964     parties--for example, statements of peer review or that the text
965     has been approved by an organization as the authoritative
966     definition of a standard.
967
968     You may add a passage of up to five words as a Front-Cover Text,
969     and a passage of up to 25 words as a Back-Cover Text, to the end of
970     the list of Cover Texts in the Modified Version.  Only one passage
971     of Front-Cover Text and one of Back-Cover Text may be added by (or
972     through arrangements made by) any one entity.  If the Document
973     already includes a cover text for the same cover, previously added
974     by you or by arrangement made by the same entity you are acting on
975     behalf of, you may not add another; but you may replace the old
976     one, on explicit permission from the previous publisher that added
977     the old one.
978
979     The author(s) and publisher(s) of the Document do not by this
980     License give permission to use their names for publicity for or to
981     assert or imply endorsement of any Modified Version.
982
983  5. COMBINING DOCUMENTS
984
985     You may combine the Document with other documents released under
986     this License, under the terms defined in section 4 above for
987     modified versions, provided that you include in the combination all
988     of the Invariant Sections of all of the original documents,
989     unmodified, and list them all as Invariant Sections of your
990     combined work in its license notice, and that you preserve all
991     their Warranty Disclaimers.
992
993     The combined work need only contain one copy of this License, and
994     multiple identical Invariant Sections may be replaced with a single
995     copy.  If there are multiple Invariant Sections with the same name
996     but different contents, make the title of each such section unique
997     by adding at the end of it, in parentheses, the name of the
998     original author or publisher of that section if known, or else a
999     unique number.  Make the same adjustment to the section titles in
1000     the list of Invariant Sections in the license notice of the
1001     combined work.
1002
1003     In the combination, you must combine any sections Entitled
1004     "History" in the various original documents, forming one section
1005     Entitled "History"; likewise combine any sections Entitled
1006     "Acknowledgements", and any sections Entitled "Dedications".  You
1007     must delete all sections Entitled "Endorsements."
1008
1009  6. COLLECTIONS OF DOCUMENTS
1010
1011     You may make a collection consisting of the Document and other
1012     documents released under this License, and replace the individual
1013     copies of this License in the various documents with a single copy
1014     that is included in the collection, provided that you follow the
1015     rules of this License for verbatim copying of each of the documents
1016     in all other respects.
1017
1018     You may extract a single document from such a collection, and
1019     distribute it individually under this License, provided you insert
1020     a copy of this License into the extracted document, and follow this
1021     License in all other respects regarding verbatim copying of that
1022     document.
1023
1024  7. AGGREGATION WITH INDEPENDENT WORKS
1025
1026     A compilation of the Document or its derivatives with other
1027     separate and independent documents or works, in or on a volume of a
1028     storage or distribution medium, is called an "aggregate" if the
1029     copyright resulting from the compilation is not used to limit the
1030     legal rights of the compilation's users beyond what the individual
1031     works permit.  When the Document is included in an aggregate, this
1032     License does not apply to the other works in the aggregate which
1033     are not themselves derivative works of the Document.
1034
1035     If the Cover Text requirement of section 3 is applicable to these
1036     copies of the Document, then if the Document is less than one half
1037     of the entire aggregate, the Document's Cover Texts may be placed
1038     on covers that bracket the Document within the aggregate, or the
1039     electronic equivalent of covers if the Document is in electronic
1040     form.  Otherwise they must appear on printed covers that bracket
1041     the whole aggregate.
1042
1043  8. TRANSLATION
1044
1045     Translation is considered a kind of modification, so you may
1046     distribute translations of the Document under the terms of section
1047     4.  Replacing Invariant Sections with translations requires special
1048     permission from their copyright holders, but you may include
1049     translations of some or all Invariant Sections in addition to the
1050     original versions of these Invariant Sections.  You may include a
1051     translation of this License, and all the license notices in the
1052     Document, and any Warranty Disclaimers, provided that you also
1053     include the original English version of this License and the
1054     original versions of those notices and disclaimers.  In case of a
1055     disagreement between the translation and the original version of
1056     this License or a notice or disclaimer, the original version will
1057     prevail.
1058
1059     If a section in the Document is Entitled "Acknowledgements",
1060     "Dedications", or "History", the requirement (section 4) to
1061     Preserve its Title (section 1) will typically require changing the
1062     actual title.
1063
1064  9. TERMINATION
1065
1066     You may not copy, modify, sublicense, or distribute the Document
1067     except as expressly provided under this License.  Any attempt
1068     otherwise to copy, modify, sublicense, or distribute it is void,
1069     and will automatically terminate your rights under this License.
1070
1071     However, if you cease all violation of this License, then your
1072     license from a particular copyright holder is reinstated (a)
1073     provisionally, unless and until the copyright holder explicitly and
1074     finally terminates your license, and (b) permanently, if the
1075     copyright holder fails to notify you of the violation by some
1076     reasonable means prior to 60 days after the cessation.
1077
1078     Moreover, your license from a particular copyright holder is
1079     reinstated permanently if the copyright holder notifies you of the
1080     violation by some reasonable means, this is the first time you have
1081     received notice of violation of this License (for any work) from
1082     that copyright holder, and you cure the violation prior to 30 days
1083     after your receipt of the notice.
1084
1085     Termination of your rights under this section does not terminate
1086     the licenses of parties who have received copies or rights from you
1087     under this License.  If your rights have been terminated and not
1088     permanently reinstated, receipt of a copy of some or all of the
1089     same material does not give you any rights to use it.
1090
1091  10. FUTURE REVISIONS OF THIS LICENSE
1092
1093     The Free Software Foundation may publish new, revised versions of
1094     the GNU Free Documentation License from time to time.  Such new
1095     versions will be similar in spirit to the present version, but may
1096     differ in detail to address new problems or concerns.  See
1097     <http://www.gnu.org/copyleft/>.
1098
1099     Each version of the License is given a distinguishing version
1100     number.  If the Document specifies that a particular numbered
1101     version of this License "or any later version" applies to it, you
1102     have the option of following the terms and conditions either of
1103     that specified version or of any later version that has been
1104     published (not as a draft) by the Free Software Foundation.  If the
1105     Document does not specify a version number of this License, you may
1106     choose any version ever published (not as a draft) by the Free
1107     Software Foundation.  If the Document specifies that a proxy can
1108     decide which future versions of this License can be used, that
1109     proxy's public statement of acceptance of a version permanently
1110     authorizes you to choose that version for the Document.
1111
1112  11. RELICENSING
1113
1114     "Massive Multiauthor Collaboration Site" (or "MMC Site") means any
1115     World Wide Web server that publishes copyrightable works and also
1116     provides prominent facilities for anybody to edit those works.  A
1117     public wiki that anybody can edit is an example of such a server.
1118     A "Massive Multiauthor Collaboration" (or "MMC") contained in the
1119     site means any set of copyrightable works thus published on the MMC
1120     site.
1121
1122     "CC-BY-SA" means the Creative Commons Attribution-Share Alike 3.0
1123     license published by Creative Commons Corporation, a not-for-profit
1124     corporation with a principal place of business in San Francisco,
1125     California, as well as future copyleft versions of that license
1126     published by that same organization.
1127
1128     "Incorporate" means to publish or republish a Document, in whole or
1129     in part, as part of another Document.
1130
1131     An MMC is "eligible for relicensing" if it is licensed under this
1132     License, and if all works that were first published under this
1133     License somewhere other than this MMC, and subsequently
1134     incorporated in whole or in part into the MMC, (1) had no cover
1135     texts or invariant sections, and (2) were thus incorporated prior
1136     to November 1, 2008.
1137
1138     The operator of an MMC Site may republish an MMC contained in the
1139     site under CC-BY-SA on the same site at any time before August 1,
1140     2009, provided the MMC is eligible for relicensing.
1141
1142ADDENDUM: How to use this License for your documents
1143====================================================
1144
1145To use this License in a document you have written, include a copy of
1146the License in the document and put the following copyright and license
1147notices just after the title page:
1148
1149       Copyright (C)  YEAR  YOUR NAME.
1150       Permission is granted to copy, distribute and/or modify this document
1151       under the terms of the GNU Free Documentation License, Version 1.3
1152       or any later version published by the Free Software Foundation;
1153       with no Invariant Sections, no Front-Cover Texts, and no Back-Cover
1154       Texts.  A copy of the license is included in the section entitled ``GNU
1155       Free Documentation License''.
1156
1157   If you have Invariant Sections, Front-Cover Texts and Back-Cover
1158Texts, replace the "with...Texts."  line with this:
1159
1160         with the Invariant Sections being LIST THEIR TITLES, with
1161         the Front-Cover Texts being LIST, and with the Back-Cover Texts
1162         being LIST.
1163
1164   If you have Invariant Sections without Cover Texts, or some other
1165combination of the three, merge those two alternatives to suit the
1166situation.
1167
1168   If your document contains nontrivial examples of program code, we
1169recommend releasing these examples in parallel under your choice of free
1170software license, such as the GNU General Public License, to permit
1171their use in free software.
1172
1173
1174
1175Tag Table:
1176Node: Top1164
1177Node: Annotations Overview2334
1178Node: Limitations4169
1179Node: Migrating to GDB/MI6758
1180Node: Server Prefix7145
1181Node: Value Annotations7803
1182Node: Frame Annotations11025
1183Node: Displays14970
1184Node: Prompting16005
1185Node: Errors17552
1186Node: Breakpoint Info18454
1187Node: Invalidation19683
1188Node: Annotations for Running20176
1189Node: Source Annotations21745
1190Node: Multi-threaded Apps22703
1191Node: GNU Free Documentation License23579
1192
1193End Tag Table
1194
1195
1196Local Variables:
1197coding: utf-8
1198End:
1199