您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

1194 行
48KB

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