OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-old/] [gdb-7.1/] [gdb/] [doc/] [annotate.texinfo] - Blame information for rev 833

Go to most recent revision | Details | Compare with Previous | View Log

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

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.