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

Subversion Repositories or1k

[/] [or1k/] [trunk/] [gdb-5.3/] [gdb/] [mi/] [gdbmi.texinfo] - Blame information for rev 1765

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 1181 sfurman
@c  \input texinfo   @c -*-texinfo-*-
2
@c  @c %**start of header
3
@c  @setfilename gdbmi.info
4
@c  @settitle GDB/MI Machine Interface
5
@c  @setchapternewpage off
6
@c  @c %**end of header
7
 
8
@c  @ifinfo
9
@c  This file documents GDB/MI, a Machine Interface to GDB.
10
 
11
@c  Copyright 2000, 2001, 2002 Free Software Foundation, Inc.
12
@c  Contributed by Cygnus Solutions.
13
 
14
@c  Permission is granted to copy, distribute and/or modify this document
15
@c  under the terms of the GNU Free Documentation License, Version 1.1 or
16
@c  any later version published by the Free Software Foundation; with no
17
@c  Invariant Sections, with the Front-Cover Texts being ``A GNU Manual,''
18
@c  and with the Back-Cover Texts as in (a) below.
19
 
20
@c  (a) The FSF's Back-Cover Text is: ``You have freedom to copy and modify
21
@c  this GNU Manual, like GNU software.  Copies published by the Free
22
@c  Software Foundation raise funds for GNU development.''
23
@c  @end ifinfo
24
 
25
@c  @c  This title page illustrates only one of the
26
@c  @c  two methods of forming a title page.
27
 
28
@c  @titlepage
29
@c  @title GDB/MI
30
@c  @subtitle Version 0.3
31
@c  @subtitle Apr 2001
32
@c  @author Andrew Cagney, Fernando Nasser and Elena Zannoni
33
 
34
@c  @c  The following two commands
35
@c  @c  start the copyright page.
36
@c  @page
37
@c  @vskip 0pt plus 1filll
38
 
39
@c  Copyright @copyright{} 2000, 2001, 2002 Free Software Foundation, Inc.
40
 
41
@c  Permission is granted to copy, distribute and/or modify this document
42
@c  under the terms of the GNU Free Documentation License, Version 1.1 or
43
@c  any later version published by the Free Software Foundation; with no
44
@c  Invariant Sections, with the Front-Cover texts being ``A GNU Manual,''
45
@c  and with the Back-Cover Texts as in (a) below.
46
 
47
@c  (a) The FSF's Back-Cover Text is: ``You have freedom to copy and modify
48
@c  this GNU Manual, like GNU software.  Copies published by the Free
49
@c  Software Foundation raise funds for GNU development.''
50
@c  @end titlepage
51
 
52
@c %%%%%%%%%%%%%%%%%%%%%%%%%%%% CHAPTER %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
53
@node GDB/MI
54
@chapter The @sc{gdb/mi} Interface
55
 
56
@unnumberedsec Function and Purpose
57
 
58
@cindex @sc{gdb/mi}, its purpose
59
@sc{gdb/mi} is a line based machine oriented text interface to @value{GDBN}.  It is
60
specifically intended to support the development of systems which use
61
the debugger as just one small component of a larger system.
62
 
63
This chapter is a specification of the @sc{gdb/mi} interface.  It is written
64
in the form of a reference manual.
65
 
66
Note that @sc{gdb/mi} is still under construction, so some of the
67
features described below are incomplete and subject to change.
68
 
69
@unnumberedsec Notation and Terminology
70
 
71
@cindex notational conventions, for @sc{gdb/mi}
72
This chapter uses the following notation:
73
 
74
@itemize @bullet
75
@item
76
@code{|} separates two alternatives.
77
 
78
@item
79
@code{[ @var{something} ]} indicates that @var{something} is optional:
80
it may or may not be given.
81
 
82
@item
83
@code{( @var{group} )*} means that @var{group} inside the parentheses
84
may repeat zero or more times.
85
 
86
@item
87
@code{( @var{group} )+} means that @var{group} inside the parentheses
88
may repeat one or more times.
89
 
90
@item
91
@code{"@var{string}"} means a literal @var{string}.
92
@end itemize
93
 
94
@ignore
95
@heading Dependencies
96
@end ignore
97
 
98
@heading Acknowledgments
99
 
100
In alphabetic order: Andrew Cagney, Fernando Nasser, Stan Shebs and
101
Elena Zannoni.
102
 
103
@menu
104
* GDB/MI Command Syntax::
105
* GDB/MI Compatibility with CLI::
106
* GDB/MI Output Records::
107
* GDB/MI Command Description Format::
108
* GDB/MI Breakpoint Table Commands::
109
* GDB/MI Data Manipulation::
110
* GDB/MI Program Control::
111
* GDB/MI Miscellaneous Commands::
112
@ignore
113
* GDB/MI Kod Commands::
114
* GDB/MI Memory Overlay Commands::
115
* GDB/MI Signal Handling Commands::
116
@end ignore
117
* GDB/MI Stack Manipulation::
118
* GDB/MI Symbol Query::
119
* GDB/MI Target Manipulation::
120
* GDB/MI Thread Commands::
121
* GDB/MI Tracepoint Commands::
122
* GDB/MI Variable Objects::
123
@end menu
124
 
125
@c %%%%%%%%%%%%%%%%%%%%%%%%%%%% SECTION %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
126
@node GDB/MI Command Syntax
127
@section @sc{gdb/mi} Command Syntax
128
 
129
@menu
130
* GDB/MI Input Syntax::
131
* GDB/MI Output Syntax::
132
* GDB/MI Simple Examples::
133
@end menu
134
 
135
@node GDB/MI Input Syntax
136
@subsection @sc{gdb/mi} Input Syntax
137
 
138
@cindex input syntax for @sc{gdb/mi}
139
@cindex @sc{gdb/mi}, input syntax
140
@table @code
141
@item @var{command} @expansion{}
142
@code{@var{cli-command} | @var{mi-command}}
143
 
144
@item @var{cli-command} @expansion{}
145
@code{[ @var{token} ] @var{cli-command} @var{nl}}, where
146
@var{cli-command} is any existing @value{GDBN} CLI command.
147
 
148
@item @var{mi-command} @expansion{}
149
@code{[ @var{token} ] "-" @var{operation} ( " " @var{option} )*
150
@code{[} " --" @code{]} ( " " @var{parameter} )* @var{nl}}
151
 
152
@item @var{token} @expansion{}
153
"any sequence of digits"
154
 
155
@item @var{option} @expansion{}
156
@code{"-" @var{parameter} [ " " @var{parameter} ]}
157
 
158
@item @var{parameter} @expansion{}
159
@code{@var{non-blank-sequence} | @var{c-string}}
160
 
161
@item @var{operation} @expansion{}
162
@emph{any of the operations described in this chapter}
163
 
164
@item @var{non-blank-sequence} @expansion{}
165
@emph{anything, provided it doesn't contain special characters such as
166
"-", @var{nl}, """ and of course " "}
167
 
168
@item @var{c-string} @expansion{}
169
@code{""" @var{seven-bit-iso-c-string-content} """}
170
 
171
@item @var{nl} @expansion{}
172
@code{CR | CR-LF}
173
@end table
174
 
175
@noindent
176
Notes:
177
 
178
@itemize @bullet
179
@item
180
The CLI commands are still handled by the @sc{mi} interpreter; their
181
output is described below.
182
 
183
@item
184
The @code{@var{token}}, when present, is passed back when the command
185
finishes.
186
 
187
@item
188
Some @sc{mi} commands accept optional arguments as part of the parameter
189
list.  Each option is identified by a leading @samp{-} (dash) and may be
190
followed by an optional argument parameter.  Options occur first in the
191
parameter list and can be delimited from normal parameters using
192
@samp{--} (this is useful when some parameters begin with a dash).
193
@end itemize
194
 
195
Pragmatics:
196
 
197
@itemize @bullet
198
@item
199
We want easy access to the existing CLI syntax (for debugging).
200
 
201
@item
202
We want it to be easy to spot a @sc{mi} operation.
203
@end itemize
204
 
205
@node GDB/MI Output Syntax
206
@subsection @sc{gdb/mi} Output Syntax
207
 
208
@cindex output syntax of @sc{gdb/mi}
209
@cindex @sc{gdb/mi}, output syntax
210
The output from @sc{gdb/mi} consists of zero or more out-of-band records
211
followed, optionally, by a single result record.  This result record
212
is for the most recent command.  The sequence of output records is
213
terminated by @samp{(@value{GDBP})}.
214
 
215
If an input command was prefixed with a @code{@var{token}} then the
216
corresponding output for that command will also be prefixed by that same
217
@var{token}.
218
 
219
@table @code
220
@item @var{output} @expansion{}
221
@code{( @var{out-of-band-record} )* [ @var{result-record} ] "(gdb)" @var{nl}}
222
 
223
@item @var{result-record} @expansion{}
224
@code{ [ @var{token} ] "^" @var{result-class} ( "," @var{result} )* @var{nl}}
225
 
226
@item @var{out-of-band-record} @expansion{}
227
@code{@var{async-record} | @var{stream-record}}
228
 
229
@item @var{async-record} @expansion{}
230
@code{@var{exec-async-output} | @var{status-async-output} | @var{notify-async-output}}
231
 
232
@item @var{exec-async-output} @expansion{}
233
@code{[ @var{token} ] "*" @var{async-output}}
234
 
235
@item @var{status-async-output} @expansion{}
236
@code{[ @var{token} ] "+" @var{async-output}}
237
 
238
@item @var{notify-async-output} @expansion{}
239
@code{[ @var{token} ] "=" @var{async-output}}
240
 
241
@item @var{async-output} @expansion{}
242
@code{@var{async-class} ( "," @var{result} )* @var{nl}}
243
 
244
@item @var{result-class} @expansion{}
245
@code{"done" | "running" | "connected" | "error" | "exit"}
246
 
247
@item @var{async-class} @expansion{}
248
@code{"stopped" | @var{others}} (where @var{others} will be added
249
depending on the needs---this is still in development).
250
 
251
@item @var{result} @expansion{}
252
@code{ @var{variable} "=" @var{value}}
253
 
254
@item @var{variable} @expansion{}
255
@code{ @var{string} }
256
 
257
@item @var{value} @expansion{}
258
@code{ @var{const} | @var{tuple} | @var{list} }
259
 
260
@item @var{const} @expansion{}
261
@code{@var{c-string}}
262
 
263
@item @var{tuple} @expansion{}
264
@code{ "@{@}" | "@{" @var{result} ( "," @var{result} )* "@}" }
265
 
266
@item @var{list} @expansion{}
267
@code{ "[]" | "[" @var{value} ( "," @var{value} )* "]" | "["
268
@var{result} ( "," @var{result} )* "]" }
269
 
270
@item @var{stream-record} @expansion{}
271
@code{@var{console-stream-output} | @var{target-stream-output} | @var{log-stream-output}}
272
 
273
@item @var{console-stream-output} @expansion{}
274
@code{"~" @var{c-string}}
275
 
276
@item @var{target-stream-output} @expansion{}
277
@code{"@@" @var{c-string}}
278
 
279
@item @var{log-stream-output} @expansion{}
280
@code{"&" @var{c-string}}
281
 
282
@item @var{nl} @expansion{}
283
@code{CR | CR-LF}
284
 
285
@item @var{token} @expansion{}
286
@emph{any sequence of digits}.
287
@end table
288
 
289
@noindent
290
Notes:
291
 
292
@itemize @bullet
293
@item
294
All output sequences end in a single line containing a period.
295
 
296
@item
297
The @code{@var{token}} is from the corresponding request.  If an execution
298
command is interrupted by the @samp{-exec-interrupt} command, the
299
@var{token} associated with the @samp{*stopped} message is the one of the
300
original execution command, not the one of the interrupt command.
301
 
302
@item
303
@cindex status output in @sc{gdb/mi}
304
@var{status-async-output} contains on-going status information about the
305
progress of a slow operation.  It can be discarded.  All status output is
306
prefixed by @samp{+}.
307
 
308
@item
309
@cindex async output in @sc{gdb/mi}
310
@var{exec-async-output} contains asynchronous state change on the target
311
(stopped, started, disappeared).  All async output is prefixed by
312
@samp{*}.
313
 
314
@item
315
@cindex notify output in @sc{gdb/mi}
316
@var{notify-async-output} contains supplementary information that the
317
client should handle (e.g., a new breakpoint information).  All notify
318
output is prefixed by @samp{=}.
319
 
320
@item
321
@cindex console output in @sc{gdb/mi}
322
@var{console-stream-output} is output that should be displayed as is in the
323
console.  It is the textual response to a CLI command.  All the console
324
output is prefixed by @samp{~}.
325
 
326
@item
327
@cindex target output in @sc{gdb/mi}
328
@var{target-stream-output} is the output produced by the target program.
329
All the target output is prefixed by @samp{@@}.
330
 
331
@item
332
@cindex log output in @sc{gdb/mi}
333
@var{log-stream-output} is output text coming from @value{GDBN}'s internals, for
334
instance messages that should be displayed as part of an error log.  All
335
the log output is prefixed by @samp{&}.
336
 
337
@item
338
@cindex list output in @sc{gdb/mi}
339
New @sc{gdb/mi} commands should only output @var{lists} containing
340
@var{values}.
341
 
342
 
343
@end itemize
344
 
345
@xref{GDB/MI Stream Records, , @sc{gdb/mi} Stream Records}, for more
346
details about the various output records.
347
 
348
@node GDB/MI Simple Examples
349
@subsection Simple Examples of @sc{gdb/mi} Interaction
350
@cindex @sc{gdb/mi}, simple examples
351
 
352
This subsection presents several simple examples of interaction using
353
the @sc{gdb/mi} interface.  In these examples, @samp{->} means that the
354
following line is passed to @sc{gdb/mi} as input, while @samp{<-} means
355
the output received from @sc{gdb/mi}.
356
 
357
@subsubheading Target Stop
358
@c Ummm... There is no "-stop" command. This assumes async, no?
359
Here's an example of stopping the inferior process:
360
 
361
@example
362
-> -stop
363
<- (@value{GDBP})
364
@end example
365
 
366
@noindent
367
and later:
368
 
369
@example
370
<- *stop,reason="stop",address="0x123",source="a.c:123"
371
<- (@value{GDBP})
372
@end example
373
 
374
@subsubheading Simple CLI Command
375
 
376
Here's an example of a simple CLI command being passed through
377
@sc{gdb/mi} and on to the CLI.
378
 
379
@example
380
-> print 1+2
381
<- &"print 1+2\n"
382
<- ~"$1 = 3\n"
383
<- ^done
384
<- (@value{GDBP})
385
@end example
386
 
387
@subsubheading Command With Side Effects
388
 
389
@example
390
-> -symbol-file xyz.exe
391
<- *breakpoint,nr="3",address="0x123",source="a.c:123"
392
<- (@value{GDBP})
393
@end example
394
 
395
@subsubheading A Bad Command
396
 
397
Here's what happens if you pass a non-existent command:
398
 
399
@example
400
-> -rubbish
401
<- ^error,msg="Undefined MI command: rubbish"
402
<- (@value{GDBP})
403
@end example
404
 
405
@c %%%%%%%%%%%%%%%%%%%%%%%%%%%% SECTION %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
406
@node GDB/MI Compatibility with CLI
407
@section @sc{gdb/mi} Compatibility with CLI
408
 
409
@cindex compatibility, @sc{gdb/mi} and CLI
410
@cindex @sc{gdb/mi}, compatibility with CLI
411
To help users familiar with @value{GDBN}'s existing CLI interface, @sc{gdb/mi}
412
accepts existing CLI commands.  As specified by the syntax, such
413
commands can be directly entered into the @sc{gdb/mi} interface and @value{GDBN} will
414
respond.
415
 
416
This mechanism is provided as an aid to developers of @sc{gdb/mi}
417
clients and not as a reliable interface into the CLI.  Since the command
418
is being interpreteted in an environment that assumes @sc{gdb/mi}
419
behaviour, the exact output of such commands is likely to end up being
420
an un-supported hybrid of @sc{gdb/mi} and CLI output.
421
 
422
@c %%%%%%%%%%%%%%%%%%%%%%%%%%%% SECTION %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
423
@node GDB/MI Output Records
424
@section @sc{gdb/mi} Output Records
425
 
426
@menu
427
* GDB/MI Result Records::
428
* GDB/MI Stream Records::
429
* GDB/MI Out-of-band Records::
430
@end menu
431
 
432
@node GDB/MI Result Records
433
@subsection @sc{gdb/mi} Result Records
434
 
435
@cindex result records in @sc{gdb/mi}
436
@cindex @sc{gdb/mi}, result records
437
In addition to a number of out-of-band notifications, the response to a
438
@sc{gdb/mi} command includes one of the following result indications:
439
 
440
@table @code
441
@findex ^done
442
@item "^done" [ "," @var{results} ]
443
The synchronous operation was successful, @code{@var{results}} are the return
444
values.
445
 
446
@item "^running"
447
@findex ^running
448
@c Is this one correct?  Should it be an out-of-band notification?
449
The asynchronous operation was successfully started.  The target is
450
running.
451
 
452
@item "^error" "," @var{c-string}
453
@findex ^error
454
The operation failed.  The @code{@var{c-string}} contains the corresponding
455
error message.
456
@end table
457
 
458
@node GDB/MI Stream Records
459
@subsection @sc{gdb/mi} Stream Records
460
 
461
@cindex @sc{gdb/mi}, stream records
462
@cindex stream records in @sc{gdb/mi}
463
@value{GDBN} internally maintains a number of output streams: the console, the
464
target, and the log.  The output intended for each of these streams is
465
funneled through the @sc{gdb/mi} interface using @dfn{stream records}.
466
 
467
Each stream record begins with a unique @dfn{prefix character} which
468
identifies its stream (@pxref{GDB/MI Output Syntax, , @sc{gdb/mi} Output
469
Syntax}).  In addition to the prefix, each stream record contains a
470
@code{@var{string-output}}.  This is either raw text (with an implicit new
471
line) or a quoted C string (which does not contain an implicit newline).
472
 
473
@table @code
474
@item "~" @var{string-output}
475
The console output stream contains text that should be displayed in the
476
CLI console window.  It contains the textual responses to CLI commands.
477
 
478
@item "@@" @var{string-output}
479
The target output stream contains any textual output from the running
480
target.
481
 
482
@item "&" @var{string-output}
483
The log stream contains debugging messages being produced by @value{GDBN}'s
484
internals.
485
@end table
486
 
487
@node GDB/MI Out-of-band Records
488
@subsection @sc{gdb/mi} Out-of-band Records
489
 
490
@cindex out-of-band records in @sc{gdb/mi}
491
@cindex @sc{gdb/mi}, out-of-band records
492
@dfn{Out-of-band} records are used to notify the @sc{gdb/mi} client of
493
additional changes that have occurred.  Those changes can either be a
494
consequence of @sc{gdb/mi} (e.g., a breakpoint modified) or a result of
495
target activity (e.g., target stopped).
496
 
497
The following is a preliminary list of possible out-of-band records.
498
 
499
@table @code
500
@item "*" "stop"
501
@end table
502
 
503
 
504
@c %%%%%%%%%%%%%%%%%%%%%%%%%%%% SECTION %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
505
@node GDB/MI Command Description Format
506
@section @sc{gdb/mi} Command Description Format
507
 
508
The remaining sections describe blocks of commands.  Each block of
509
commands is laid out in a fashion similar to this section.
510
 
511
Note the the line breaks shown in the examples are here only for
512
readability.  They don't appear in the real output.
513
Also note that the commands with a non-available example (N.A.@:) are
514
not yet implemented.
515
 
516
@subheading Motivation
517
 
518
The motivation for this collection of commands.
519
 
520
@subheading Introduction
521
 
522
A brief introduction to this collection of commands as a whole.
523
 
524
@subheading Commands
525
 
526
For each command in the block, the following is described:
527
 
528
@subsubheading Synopsis
529
 
530
@example
531
 -command @var{args}@dots{}
532
@end example
533
 
534
@subsubheading @value{GDBN} Command
535
 
536
The corresponding @value{GDBN} CLI command.
537
 
538
@subsubheading Result
539
 
540
@subsubheading Out-of-band
541
 
542
@subsubheading Notes
543
 
544
@subsubheading Example
545
 
546
 
547
@c %%%%%%%%%%%%%%%%%%%%%%%%%%%% SECTION %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
548
@node GDB/MI Breakpoint Table Commands
549
@section @sc{gdb/mi} Breakpoint table commands
550
 
551
@cindex breakpoint commands for @sc{gdb/mi}
552
@cindex @sc{gdb/mi}, breakpoint commands
553
This section documents @sc{gdb/mi} commands for manipulating
554
breakpoints.
555
 
556
@subheading The @code{-break-after} Command
557
@findex -break-after
558
 
559
@subsubheading Synopsis
560
 
561
@example
562
 -break-after @var{number} @var{count}
563
@end example
564
 
565
The breakpoint number @var{number} is not in effect until it has been
566
hit @var{count} times.  To see how this is reflected in the output of
567
the @samp{-break-list} command, see the description of the
568
@samp{-break-list} command below.
569
 
570
@subsubheading @value{GDBN} Command
571
 
572
The corresponding @value{GDBN} command is @samp{ignore}.
573
 
574
@subsubheading Example
575
 
576
@smallexample
577
(@value{GDBP})
578
-break-insert main
579
^done,bkpt=@{number="1",addr="0x000100d0",file="hello.c",line="5"@}
580
(@value{GDBP})
581
-break-after 1 3
582
~
583
^done
584
(@value{GDBP})
585
-break-list
586
^done,BreakpointTable=@{nr_rows="1",nr_cols="6",
587
hdr=[@{width="3",alignment="-1",col_name="number",colhdr="Num"@},
588
@{width="14",alignment="-1",col_name="type",colhdr="Type"@},
589
@{width="4",alignment="-1",col_name="disp",colhdr="Disp"@},
590
@{width="3",alignment="-1",col_name="enabled",colhdr="Enb"@},
591
@{width="10",alignment="-1",col_name="addr",colhdr="Address"@},
592
@{width="40",alignment="2",col_name="what",colhdr="What"@}],
593
body=[bkpt=@{number="1",type="breakpoint",disp="keep",enabled="y",
594
addr="0x000100d0",func="main",file="hello.c",line="5",times="0",
595
ignore="3"@}]@}
596
(@value{GDBP})
597
@end smallexample
598
 
599
@ignore
600
@subheading The @code{-break-catch} Command
601
@findex -break-catch
602
 
603
@subheading The @code{-break-commands} Command
604
@findex -break-commands
605
@end ignore
606
 
607
 
608
@subheading The @code{-break-condition} Command
609
@findex -break-condition
610
 
611
@subsubheading Synopsis
612
 
613
@example
614
 -break-condition @var{number} @var{expr}
615
@end example
616
 
617
Breakpoint @var{number} will stop the program only if the condition in
618
@var{expr} is true.  The condition becomes part of the
619
@samp{-break-list} output (see the description of the @samp{-break-list}
620
command below).
621
 
622
@subsubheading @value{GDBN} Command
623
 
624
The corresponding @value{GDBN} command is @samp{condition}.
625
 
626
@subsubheading Example
627
 
628
@smallexample
629
(@value{GDBP})
630
-break-condition 1 1
631
^done
632
(@value{GDBP})
633
-break-list
634
^done,BreakpointTable=@{nr_rows="1",nr_cols="6",
635
hdr=[@{width="3",alignment="-1",col_name="number",colhdr="Num"@},
636
@{width="14",alignment="-1",col_name="type",colhdr="Type"@},
637
@{width="4",alignment="-1",col_name="disp",colhdr="Disp"@},
638
@{width="3",alignment="-1",col_name="enabled",colhdr="Enb"@},
639
@{width="10",alignment="-1",col_name="addr",colhdr="Address"@},
640
@{width="40",alignment="2",col_name="what",colhdr="What"@}],
641
body=[bkpt=@{number="1",type="breakpoint",disp="keep",enabled="y",
642
addr="0x000100d0",func="main",file="hello.c",line="5",cond="1",
643
times="0",ignore="3"@}]@}
644
(@value{GDBP})
645
@end smallexample
646
 
647
@subheading The @code{-break-delete} Command
648
@findex -break-delete
649
 
650
@subsubheading Synopsis
651
 
652
@example
653
 -break-delete ( @var{breakpoint} )+
654
@end example
655
 
656
Delete the breakpoint(s) whose number(s) are specified in the argument
657
list.  This is obviously reflected in the breakpoint list.
658
 
659
@subsubheading @value{GDBN} command
660
 
661
The corresponding @value{GDBN} command is @samp{delete}.
662
 
663
@subsubheading Example
664
 
665
@example
666
(@value{GDBP})
667
-break-delete 1
668
^done
669
(@value{GDBP})
670
-break-list
671
^done,BreakpointTable=@{nr_rows="0",nr_cols="6",
672
hdr=[@{width="3",alignment="-1",col_name="number",colhdr="Num"@},
673
@{width="14",alignment="-1",col_name="type",colhdr="Type"@},
674
@{width="4",alignment="-1",col_name="disp",colhdr="Disp"@},
675
@{width="3",alignment="-1",col_name="enabled",colhdr="Enb"@},
676
@{width="10",alignment="-1",col_name="addr",colhdr="Address"@},
677
@{width="40",alignment="2",col_name="what",colhdr="What"@}],
678
body=[]@}
679
(@value{GDBP})
680
@end example
681
 
682
@subheading The @code{-break-disable} Command
683
@findex -break-disable
684
 
685
@subsubheading Synopsis
686
 
687
@example
688
 -break-disable ( @var{breakpoint} )+
689
@end example
690
 
691
Disable the named @var{breakpoint}(s).  The field @samp{enabled} in the
692
break list is now set to @samp{n} for the named @var{breakpoint}(s).
693
 
694
@subsubheading @value{GDBN} Command
695
 
696
The corresponding @value{GDBN} command is @samp{disable}.
697
 
698
@subsubheading Example
699
 
700
@smallexample
701
(@value{GDBP})
702
-break-disable 2
703
^done
704
(@value{GDBP})
705
-break-list
706
^done,BreakpointTable=@{nr_rows="1",nr_cols="6",
707
hdr=[@{width="3",alignment="-1",col_name="number",colhdr="Num"@},
708
@{width="14",alignment="-1",col_name="type",colhdr="Type"@},
709
@{width="4",alignment="-1",col_name="disp",colhdr="Disp"@},
710
@{width="3",alignment="-1",col_name="enabled",colhdr="Enb"@},
711
@{width="10",alignment="-1",col_name="addr",colhdr="Address"@},
712
@{width="40",alignment="2",col_name="what",colhdr="What"@}],
713
body=[bkpt=@{number="2",type="breakpoint",disp="keep",enabled="n",
714
addr="0x000100d0",func="main",file="hello.c",line="5",times="0"@}]@}
715
(@value{GDBP})
716
@end smallexample
717
 
718
@subheading The @code{-break-enable} Command
719
@findex -break-enable
720
 
721
@subsubheading Synopsis
722
 
723
@example
724
 -break-enable ( @var{breakpoint} )+
725
@end example
726
 
727
Enable (previously disabled) @var{breakpoint}(s).
728
 
729
@subsubheading @value{GDBN} Command
730
 
731
The corresponding @value{GDBN} command is @samp{enable}.
732
 
733
@subsubheading Example
734
 
735
@smallexample
736
(@value{GDBP})
737
-break-enable 2
738
^done
739
(@value{GDBP})
740
-break-list
741
^done,BreakpointTable=@{nr_rows="1",nr_cols="6",
742
hdr=[@{width="3",alignment="-1",col_name="number",colhdr="Num"@},
743
@{width="14",alignment="-1",col_name="type",colhdr="Type"@},
744
@{width="4",alignment="-1",col_name="disp",colhdr="Disp"@},
745
@{width="3",alignment="-1",col_name="enabled",colhdr="Enb"@},
746
@{width="10",alignment="-1",col_name="addr",colhdr="Address"@},
747
@{width="40",alignment="2",col_name="what",colhdr="What"@}],
748
body=[bkpt=@{number="2",type="breakpoint",disp="keep",enabled="y",
749
addr="0x000100d0",func="main",file="hello.c",line="5",times="0"@}]@}
750
(@value{GDBP})
751
@end smallexample
752
 
753
@subheading The @code{-break-info} Command
754
@findex -break-info
755
 
756
@subsubheading Synopsis
757
 
758
@example
759
 -break-info @var{breakpoint}
760
@end example
761
 
762
@c REDUNDANT???
763
Get information about a single breakpoint.
764
 
765
@subsubheading @value{GDBN} command
766
 
767
The corresponding @value{GDBN} command is @samp{info break @var{breakpoint}}.
768
 
769
@subsubheading Example
770
N.A.
771
 
772
@subheading The @code{-break-insert} Command
773
@findex -break-insert
774
 
775
@subsubheading Synopsis
776
 
777
@example
778
 -break-insert [ -t ] [ -h ] [ -r ]
779
    [ -c @var{condition} ] [ -i @var{ignore-count} ]
780
    [ -p @var{thread} ] [ @var{line} | @var{addr} ]
781
@end example
782
 
783
@noindent
784
If specified, @var{line}, can be one of:
785
 
786
@itemize @bullet
787
@item function
788
@c @item +offset
789
@c @item -offset
790
@c @item linenum
791
@item filename:linenum
792
@item filename:function
793
@item *address
794
@end itemize
795
 
796
The possible optional parameters of this command are:
797
 
798
@table @samp
799
@item -t
800
Insert a tempoary breakpoint.
801
@item -h
802
Insert a hardware breakpoint.
803
@item -c @var{condition}
804
Make the breakpoint conditional on @var{condition}.
805
@item -i @var{ignore-count}
806
Initialize the @var{ignore-count}.
807
@item -r
808
Insert a regular breakpoint in all the functions whose names match the
809
given regular expression.  Other flags are not applicable to regular
810
expresson.
811
@end table
812
 
813
@subsubheading Result
814
 
815
The result is in the form:
816
 
817
@example
818
 ^done,bkptno="@var{number}",func="@var{funcname}",
819
  file="@var{filename}",line="@var{lineno}"
820
@end example
821
 
822
@noindent
823
where @var{number} is the @value{GDBN} number for this breakpoint, @var{funcname}
824
is the name of the function where the breakpoint was inserted,
825
@var{filename} is the name of the source file which contains this
826
function, and @var{lineno} is the source line number within that file.
827
 
828
Note: this format is open to change.
829
@c An out-of-band breakpoint instead of part of the result?
830
 
831
@subsubheading @value{GDBN} Command
832
 
833
The corresponding @value{GDBN} commands are @samp{break}, @samp{tbreak},
834
@samp{hbreak}, @samp{thbreak}, and @samp{rbreak}.
835
 
836
@subsubheading Example
837
 
838
@smallexample
839
(@value{GDBP})
840
-break-insert main
841
^done,bkpt=@{number="1",addr="0x0001072c",file="recursive2.c",line="4"@}
842
(@value{GDBP})
843
-break-insert -t foo
844
^done,bkpt=@{number="2",addr="0x00010774",file="recursive2.c",line="11"@}
845
(@value{GDBP})
846
-break-list
847
^done,BreakpointTable=@{nr_rows="2",nr_cols="6",
848
hdr=[@{width="3",alignment="-1",col_name="number",colhdr="Num"@},
849
@{width="14",alignment="-1",col_name="type",colhdr="Type"@},
850
@{width="4",alignment="-1",col_name="disp",colhdr="Disp"@},
851
@{width="3",alignment="-1",col_name="enabled",colhdr="Enb"@},
852
@{width="10",alignment="-1",col_name="addr",colhdr="Address"@},
853
@{width="40",alignment="2",col_name="what",colhdr="What"@}],
854
body=[bkpt=@{number="1",type="breakpoint",disp="keep",enabled="y",
855
addr="0x0001072c", func="main",file="recursive2.c",line="4",times="0"@},
856
bkpt=@{number="2",type="breakpoint",disp="del",enabled="y",
857
addr="0x00010774",func="foo",file="recursive2.c",line="11",times="0"@}]@}
858
(@value{GDBP})
859
-break-insert -r foo.*
860
~int foo(int, int);
861
^done,bkpt=@{number="3",addr="0x00010774",file="recursive2.c",line="11"@}
862
(@value{GDBP})
863
@end smallexample
864
 
865
@subheading The @code{-break-list} Command
866
@findex -break-list
867
 
868
@subsubheading Synopsis
869
 
870
@example
871
 -break-list
872
@end example
873
 
874
Displays the list of inserted breakpoints, showing the following fields:
875
 
876
@table @samp
877
@item Number
878
number of the breakpoint
879
@item Type
880
type of the breakpoint: @samp{breakpoint} or @samp{watchpoint}
881
@item Disposition
882
should the breakpoint be deleted or disabled when it is hit: @samp{keep}
883
or @samp{nokeep}
884
@item Enabled
885
is the breakpoint enabled or no: @samp{y} or @samp{n}
886
@item Address
887
memory location at which the breakpoint is set
888
@item What
889
logical location of the breakpoint, expressed by function name, file
890
name, line number
891
@item Times
892
number of times the breakpoint has been hit
893
@end table
894
 
895
If there are no breakpoints or watchpoints, the @code{BreakpointTable}
896
@code{body} field is an empty list.
897
 
898
@subsubheading @value{GDBN} Command
899
 
900
The corresponding @value{GDBN} command is @samp{info break}.
901
 
902
@subsubheading Example
903
 
904
@smallexample
905
(@value{GDBP})
906
-break-list
907
^done,BreakpointTable=@{nr_rows="2",nr_cols="6",
908
hdr=[@{width="3",alignment="-1",col_name="number",colhdr="Num"@},
909
@{width="14",alignment="-1",col_name="type",colhdr="Type"@},
910
@{width="4",alignment="-1",col_name="disp",colhdr="Disp"@},
911
@{width="3",alignment="-1",col_name="enabled",colhdr="Enb"@},
912
@{width="10",alignment="-1",col_name="addr",colhdr="Address"@},
913
@{width="40",alignment="2",col_name="what",colhdr="What"@}],
914
body=[bkpt=@{number="1",type="breakpoint",disp="keep",enabled="y",
915
addr="0x000100d0",func="main",file="hello.c",line="5",times="0"@},
916
bkpt=@{number="2",type="breakpoint",disp="keep",enabled="y",
917
addr="0x00010114",func="foo",file="hello.c",line="13",times="0"@}]@}
918
(@value{GDBP})
919
@end smallexample
920
 
921
Here's an example of the result when there are no breakpoints:
922
 
923
@smallexample
924
(@value{GDBP})
925
-break-list
926
^done,BreakpointTable=@{nr_rows="0",nr_cols="6",
927
hdr=[@{width="3",alignment="-1",col_name="number",colhdr="Num"@},
928
@{width="14",alignment="-1",col_name="type",colhdr="Type"@},
929
@{width="4",alignment="-1",col_name="disp",colhdr="Disp"@},
930
@{width="3",alignment="-1",col_name="enabled",colhdr="Enb"@},
931
@{width="10",alignment="-1",col_name="addr",colhdr="Address"@},
932
@{width="40",alignment="2",col_name="what",colhdr="What"@}],
933
body=[]@}
934
(@value{GDBP})
935
@end smallexample
936
 
937
@subheading The @code{-break-watch} Command
938
@findex -break-watch
939
 
940
@subsubheading Synopsis
941
 
942
@example
943
 -break-watch [ -a | -r ]
944
@end example
945
 
946
Create a watchpoint.  With the @samp{-a} option it will create an
947
@dfn{access} watchpoint, i.e. a watchpoint that triggers either on a
948
read from or on a write to the memory location.  With the @samp{-r}
949
option, the watchpoint created is a @dfn{read} watchpoint, i.e. it will
950
trigger only when the memory location is accessed for reading.  Without
951
either of the options, the watchpoint created is a regular watchpoint,
952
i.e. it will trigger when the memory location is accessed for writing.
953
@xref{Set Watchpoints, , Setting watchpoints}.
954
 
955
Note that @samp{-break-list} will report a single list of watchpoints and
956
breakpoints inserted.
957
 
958
@subsubheading @value{GDBN} Command
959
 
960
The corresponding @value{GDBN} commands are @samp{watch}, @samp{awatch}, and
961
@samp{rwatch}.
962
 
963
@subsubheading Example
964
 
965
Setting a watchpoint on a variable in the @code{main} function:
966
 
967
@smallexample
968
(@value{GDBP})
969
-break-watch x
970
^done,wpt=@{number="2",exp="x"@}
971
(@value{GDBP})
972
-exec-continue
973
^running
974
^done,reason="watchpoint-trigger",wpt=@{number="2",exp="x"@},
975
value=@{old="-268439212",new="55"@},
976
frame=@{func="main",args=[],file="recursive2.c",line="5"@}
977
(@value{GDBP})
978
@end smallexample
979
 
980
Setting a watchpoint on a variable local to a function.  @value{GDBN} will stop
981
the program execution twice: first for the variable changing value, then
982
for the watchpoint going out of scope.
983
 
984
@smallexample
985
(@value{GDBP})
986
-break-watch C
987
^done,wpt=@{number="5",exp="C"@}
988
(@value{GDBP})
989
-exec-continue
990
^running
991
^done,reason="watchpoint-trigger",
992
wpt=@{number="5",exp="C"@},value=@{old="-276895068",new="3"@},
993
frame=@{func="callee4",args=[],
994
file="../../../devo/gdb/testsuite/gdb.mi/basics.c",line="13"@}
995
(@value{GDBP})
996
-exec-continue
997
^running
998
^done,reason="watchpoint-scope",wpnum="5",
999
frame=@{func="callee3",args=[@{name="strarg",
1000
value="0x11940 \"A string argument.\""@}],
1001
file="../../../devo/gdb/testsuite/gdb.mi/basics.c",line="18"@}
1002
(@value{GDBP})
1003
@end smallexample
1004
 
1005
Listing breakpoints and watchpoints, at different points in the program
1006
execution.  Note that once the watchpoint goes out of scope, it is
1007
deleted.
1008
 
1009
@smallexample
1010
(@value{GDBP})
1011
-break-watch C
1012
^done,wpt=@{number="2",exp="C"@}
1013
(@value{GDBP})
1014
-break-list
1015
^done,BreakpointTable=@{nr_rows="2",nr_cols="6",
1016
hdr=[@{width="3",alignment="-1",col_name="number",colhdr="Num"@},
1017
@{width="14",alignment="-1",col_name="type",colhdr="Type"@},
1018
@{width="4",alignment="-1",col_name="disp",colhdr="Disp"@},
1019
@{width="3",alignment="-1",col_name="enabled",colhdr="Enb"@},
1020
@{width="10",alignment="-1",col_name="addr",colhdr="Address"@},
1021
@{width="40",alignment="2",col_name="what",colhdr="What"@}],
1022
body=[bkpt=@{number="1",type="breakpoint",disp="keep",enabled="y",
1023
addr="0x00010734",func="callee4",
1024
file="../../../devo/gdb/testsuite/gdb.mi/basics.c",line="8",times="1"@},
1025
bkpt=@{number="2",type="watchpoint",disp="keep",
1026
enabled="y",addr="",what="C",times="0"@}]@}
1027
(@value{GDBP})
1028
-exec-continue
1029
^running
1030
^done,reason="watchpoint-trigger",wpt=@{number="2",exp="C"@},
1031
value=@{old="-276895068",new="3"@},
1032
frame=@{func="callee4",args=[],
1033
file="../../../devo/gdb/testsuite/gdb.mi/basics.c",line="13"@}
1034
(@value{GDBP})
1035
-break-list
1036
^done,BreakpointTable=@{nr_rows="2",nr_cols="6",
1037
hdr=[@{width="3",alignment="-1",col_name="number",colhdr="Num"@},
1038
@{width="14",alignment="-1",col_name="type",colhdr="Type"@},
1039
@{width="4",alignment="-1",col_name="disp",colhdr="Disp"@},
1040
@{width="3",alignment="-1",col_name="enabled",colhdr="Enb"@},
1041
@{width="10",alignment="-1",col_name="addr",colhdr="Address"@},
1042
@{width="40",alignment="2",col_name="what",colhdr="What"@}],
1043
body=[bkpt=@{number="1",type="breakpoint",disp="keep",enabled="y",
1044
addr="0x00010734",func="callee4",
1045
file="../../../devo/gdb/testsuite/gdb.mi/basics.c",line="8",times="1"@},
1046
bkpt=@{number="2",type="watchpoint",disp="keep",
1047
enabled="y",addr="",what="C",times="-5"@}]@}
1048
(@value{GDBP})
1049
-exec-continue
1050
^running
1051
^done,reason="watchpoint-scope",wpnum="2",
1052
frame=@{func="callee3",args=[@{name="strarg",
1053
value="0x11940 \"A string argument.\""@}],
1054
file="../../../devo/gdb/testsuite/gdb.mi/basics.c",line="18"@}
1055
(@value{GDBP})
1056
-break-list
1057
^done,BreakpointTable=@{nr_rows="1",nr_cols="6",
1058
hdr=[@{width="3",alignment="-1",col_name="number",colhdr="Num"@},
1059
@{width="14",alignment="-1",col_name="type",colhdr="Type"@},
1060
@{width="4",alignment="-1",col_name="disp",colhdr="Disp"@},
1061
@{width="3",alignment="-1",col_name="enabled",colhdr="Enb"@},
1062
@{width="10",alignment="-1",col_name="addr",colhdr="Address"@},
1063
@{width="40",alignment="2",col_name="what",colhdr="What"@}],
1064
body=[bkpt=@{number="1",type="breakpoint",disp="keep",enabled="y",
1065
addr="0x00010734",func="callee4",
1066
file="../../../devo/gdb/testsuite/gdb.mi/basics.c",line="8",times="1"@}]@}
1067
(@value{GDBP})
1068
@end smallexample
1069
 
1070
@c %%%%%%%%%%%%%%%%%%%%%%%%%%%% SECTION %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1071
@node GDB/MI Data Manipulation
1072
@section @sc{gdb/mi} Data Manipulation
1073
 
1074
@cindex data manipulation, in @sc{gdb/mi}
1075
@cindex @sc{gdb/mi}, data manipulation
1076
This section describes the @sc{gdb/mi} commands that manipulate data:
1077
examine memory and registers, evaluate expressions, etc.
1078
 
1079
@c REMOVED FROM THE INTERFACE.
1080
@c @subheading -data-assign
1081
@c Change the value of a program variable. Plenty of side effects.
1082
@c @subsubheading GDB command
1083
@c set variable
1084
@c @subsubheading Example
1085
@c N.A.
1086
 
1087
@subheading The @code{-data-disassemble} Command
1088
@findex -data-disassemble
1089
 
1090
@subsubheading Synopsis
1091
 
1092
@example
1093
 -data-disassemble
1094
    [ -s @var{start-addr} -e @var{end-addr} ]
1095
  | [ -f @var{filename} -l @var{linenum} [ -n @var{lines} ] ]
1096
  -- @var{mode}
1097
@end example
1098
 
1099
@noindent
1100
Where:
1101
 
1102
@table @samp
1103
@item @var{start-addr}
1104
is the beginning address (or @code{$pc})
1105
@item @var{end-addr}
1106
is the end address
1107
@item @var{filename}
1108
is the name of the file to disassemble
1109
@item @var{linenum}
1110
is the line number to disassemble around
1111
@item @var{lines}
1112
is the the number of disassembly lines to be produced.  If it is -1,
1113
the whole function will be disassembled, in case no @var{end-addr} is
1114
specified.  If @var{end-addr} is specified as a non-zero value, and
1115
@var{lines} is lower than the number of disassembly lines between
1116
@var{start-addr} and @var{end-addr}, only @var{lines} lines are
1117
displayed; if @var{lines} is higher than the number of lines between
1118
@var{start-addr} and @var{end-addr}, only the lines up to @var{end-addr}
1119
are displayed.
1120
@item @var{mode}
1121
is either 0 (meaning only disassembly) or 1 (meaning mixed source and
1122
disassembly).
1123
@end table
1124
 
1125
@subsubheading Result
1126
 
1127
The output for each instruction is composed of four fields:
1128
 
1129
@itemize @bullet
1130
@item Address
1131
@item Func-name
1132
@item Offset
1133
@item Instruction
1134
@end itemize
1135
 
1136
Note that whatever included in the instruction field, is not manipulated
1137
directely by @sc{gdb/mi}, i.e. it is not possible to adjust its format.
1138
 
1139
@subsubheading @value{GDBN} Command
1140
 
1141
There's no direct mapping from this command to the CLI.
1142
 
1143
@subsubheading Example
1144
 
1145
Disassemble from the current value of @code{$pc} to @code{$pc + 20}:
1146
 
1147
@smallexample
1148
(@value{GDBP})
1149
-data-disassemble -s $pc -e "$pc + 20" -- 0
1150
^done,
1151
asm_insns=[
1152
@{address="0x000107c0",func-name="main",offset="4",
1153
inst="mov  2, %o0"@},
1154
@{address="0x000107c4",func-name="main",offset="8",
1155
inst="sethi  %hi(0x11800), %o2"@},
1156
@{address="0x000107c8",func-name="main",offset="12",
1157
inst="or  %o2, 0x140, %o1\t! 0x11940 <_lib_version+8>"@},
1158
@{address="0x000107cc",func-name="main",offset="16",
1159
inst="sethi  %hi(0x11800), %o2"@},
1160
@{address="0x000107d0",func-name="main",offset="20",
1161
inst="or  %o2, 0x168, %o4\t! 0x11968 <_lib_version+48>"@}]
1162
(@value{GDBP})
1163
@end smallexample
1164
 
1165
Disassemble the whole @code{main} function.  Line 32 is part of
1166
@code{main}.
1167
 
1168
@smallexample
1169
-data-disassemble -f basics.c -l 32 -- 0
1170
^done,asm_insns=[
1171
@{address="0x000107bc",func-name="main",offset="0",
1172
inst="save  %sp, -112, %sp"@},
1173
@{address="0x000107c0",func-name="main",offset="4",
1174
inst="mov   2, %o0"@},
1175
@{address="0x000107c4",func-name="main",offset="8",
1176
inst="sethi %hi(0x11800), %o2"@},
1177
[@dots{}]
1178
@{address="0x0001081c",func-name="main",offset="96",inst="ret "@},
1179
@{address="0x00010820",func-name="main",offset="100",inst="restore "@}]
1180
(@value{GDBP})
1181
@end smallexample
1182
 
1183
Disassemble 3 instructions from the start of @code{main}:
1184
 
1185
@smallexample
1186
(@value{GDBP})
1187
-data-disassemble -f basics.c -l 32 -n 3 -- 0
1188
^done,asm_insns=[
1189
@{address="0x000107bc",func-name="main",offset="0",
1190
inst="save  %sp, -112, %sp"@},
1191
@{address="0x000107c0",func-name="main",offset="4",
1192
inst="mov  2, %o0"@},
1193
@{address="0x000107c4",func-name="main",offset="8",
1194
inst="sethi  %hi(0x11800), %o2"@}]
1195
(@value{GDBP})
1196
@end smallexample
1197
 
1198
Disassemble 3 instructions from the start of @code{main} in mixed mode:
1199
 
1200
@smallexample
1201
(@value{GDBP})
1202
-data-disassemble -f basics.c -l 32 -n 3 -- 1
1203
^done,asm_insns=[
1204
src_and_asm_line=@{line="31",
1205
file="/kwikemart/marge/ezannoni/flathead-dev/devo/gdb/ \
1206
  testsuite/gdb.mi/basics.c",line_asm_insn=[
1207
@{address="0x000107bc",func-name="main",offset="0",
1208
inst="save  %sp, -112, %sp"@}]@},
1209
src_and_asm_line=@{line="32",
1210
file="/kwikemart/marge/ezannoni/flathead-dev/devo/gdb/ \
1211
  testsuite/gdb.mi/basics.c",line_asm_insn=[
1212
@{address="0x000107c0",func-name="main",offset="4",
1213
inst="mov  2, %o0"@},
1214
@{address="0x000107c4",func-name="main",offset="8",
1215
inst="sethi  %hi(0x11800), %o2"@}]@}]
1216
(@value{GDBP})
1217
@end smallexample
1218
 
1219
 
1220
@subheading The @code{-data-evaluate-expression} Command
1221
@findex -data-evaluate-expression
1222
 
1223
@subsubheading Synopsis
1224
 
1225
@example
1226
 -data-evaluate-expression @var{expr}
1227
@end example
1228
 
1229
Evaluate @var{expr} as an expression.  The expression could contain an
1230
inferior function call.  The function call will execute synchronously.
1231
If the expression contains spaces, it must be enclosed in double quotes.
1232
 
1233
@subsubheading @value{GDBN} Command
1234
 
1235
The corresponding @value{GDBN} commands are @samp{print}, @samp{output}, and
1236
@samp{call}.  In @code{gdbtk} only, there's a corresponding
1237
@samp{gdb_eval} command.
1238
 
1239
@subsubheading Example
1240
 
1241
In the following example, the numbers that precede the commands are the
1242
@dfn{tokens} described in @ref{GDB/MI Command Syntax, ,@sc{gdb/mi}
1243
Command Syntax}.  Notice how @sc{gdb/mi} returns the same tokens in its
1244
output.
1245
 
1246
@smallexample
1247
211-data-evaluate-expression A
1248
211^done,value="1"
1249
(@value{GDBP})
1250
311-data-evaluate-expression &A
1251
311^done,value="0xefffeb7c"
1252
(@value{GDBP})
1253
411-data-evaluate-expression A+3
1254
411^done,value="4"
1255
(@value{GDBP})
1256
511-data-evaluate-expression "A + 3"
1257
511^done,value="4"
1258
(@value{GDBP})
1259
@end smallexample
1260
 
1261
 
1262
@subheading The @code{-data-list-changed-registers} Command
1263
@findex -data-list-changed-registers
1264
 
1265
@subsubheading Synopsis
1266
 
1267
@example
1268
 -data-list-changed-registers
1269
@end example
1270
 
1271
Display a list of the registers that have changed.
1272
 
1273
@subsubheading @value{GDBN} Command
1274
 
1275
@value{GDBN} doesn't have a direct analog for this command; @code{gdbtk}
1276
has the corresponding command @samp{gdb_changed_register_list}.
1277
 
1278
@subsubheading Example
1279
 
1280
On a PPC MBX board:
1281
 
1282
@smallexample
1283
(@value{GDBP})
1284
-exec-continue
1285
^running
1286
 
1287
(@value{GDBP})
1288
*stopped,reason="breakpoint-hit",bkptno="1",frame=@{func="main",
1289
args=[],file="try.c",line="5"@}
1290
(@value{GDBP})
1291
-data-list-changed-registers
1292
^done,changed-registers=["0","1","2","4","5","6","7","8","9",
1293
"10","11","13","14","15","16","17","18","19","20","21","22","23",
1294
"24","25","26","27","28","30","31","64","65","66","67","69"]
1295
(@value{GDBP})
1296
@end smallexample
1297
 
1298
 
1299
@subheading The @code{-data-list-register-names} Command
1300
@findex -data-list-register-names
1301
 
1302
@subsubheading Synopsis
1303
 
1304
@example
1305
 -data-list-register-names [ ( @var{regno} )+ ]
1306
@end example
1307
 
1308
Show a list of register names for the current target.  If no arguments
1309
are given, it shows a list of the names of all the registers.  If
1310
integer numbers are given as arguments, it will print a list of the
1311
names of the registers corresponding to the arguments.  To ensure
1312
consistency between a register name and its number, the output list may
1313
include empty register names.
1314
 
1315
@subsubheading @value{GDBN} Command
1316
 
1317
@value{GDBN} does not have a command which corresponds to
1318
@samp{-data-list-register-names}.  In @code{gdbtk} there is a
1319
corresponding command @samp{gdb_regnames}.
1320
 
1321
@subsubheading Example
1322
 
1323
For the PPC MBX board:
1324
@smallexample
1325
(@value{GDBP})
1326
-data-list-register-names
1327
^done,register-names=["r0","r1","r2","r3","r4","r5","r6","r7",
1328
"r8","r9","r10","r11","r12","r13","r14","r15","r16","r17","r18",
1329
"r19","r20","r21","r22","r23","r24","r25","r26","r27","r28","r29",
1330
"r30","r31","f0","f1","f2","f3","f4","f5","f6","f7","f8","f9",
1331
"f10","f11","f12","f13","f14","f15","f16","f17","f18","f19","f20",
1332
"f21","f22","f23","f24","f25","f26","f27","f28","f29","f30","f31",
1333
"", "pc","ps","cr","lr","ctr","xer"]
1334
(@value{GDBP})
1335
-data-list-register-names 1 2 3
1336
^done,register-names=["r1","r2","r3"]
1337
(@value{GDBP})
1338
@end smallexample
1339
 
1340
@subheading The @code{-data-list-register-values} Command
1341
@findex -data-list-register-values
1342
 
1343
@subsubheading Synopsis
1344
 
1345
@example
1346
 -data-list-register-values @var{fmt} [ ( @var{regno} )*]
1347
@end example
1348
 
1349
Display the registers' contents.  @var{fmt} is the format according to
1350
which the registers' contents are to be returned, followed by an optional
1351
list of numbers specifying the registers to display.  A missing list of
1352
numbers indicates that the contents of all the registers must be returned.
1353
 
1354
Allowed formats for @var{fmt} are:
1355
 
1356
@table @code
1357
@item x
1358
Hexadecimal
1359
@item o
1360
Octal
1361
@item t
1362
Binary
1363
@item d
1364
Decimal
1365
@item r
1366
Raw
1367
@item N
1368
Natural
1369
@end table
1370
 
1371
@subsubheading @value{GDBN} Command
1372
 
1373
The corresponding @value{GDBN} commands are @samp{info reg}, @samp{info
1374
all-reg}, and (in @code{gdbtk}) @samp{gdb_fetch_registers}.
1375
 
1376
@subsubheading Example
1377
 
1378
For a PPC MBX board (note: line breaks are for readability only, they
1379
don't appear in the actual output):
1380
 
1381
@smallexample
1382
(@value{GDBP})
1383
-data-list-register-values r 64 65
1384
^done,register-values=[@{number="64",value="0xfe00a300"@},
1385
@{number="65",value="0x00029002"@}]
1386
(@value{GDBP})
1387
-data-list-register-values x
1388
^done,register-values=[@{number="0",value="0xfe0043c8"@},
1389
@{number="1",value="0x3fff88"@},@{number="2",value="0xfffffffe"@},
1390
@{number="3",value="0x0"@},@{number="4",value="0xa"@},
1391
@{number="5",value="0x3fff68"@},@{number="6",value="0x3fff58"@},
1392
@{number="7",value="0xfe011e98"@},@{number="8",value="0x2"@},
1393
@{number="9",value="0xfa202820"@},@{number="10",value="0xfa202808"@},
1394
@{number="11",value="0x1"@},@{number="12",value="0x0"@},
1395
@{number="13",value="0x4544"@},@{number="14",value="0xffdfffff"@},
1396
@{number="15",value="0xffffffff"@},@{number="16",value="0xfffffeff"@},
1397
@{number="17",value="0xefffffed"@},@{number="18",value="0xfffffffe"@},
1398
@{number="19",value="0xffffffff"@},@{number="20",value="0xffffffff"@},
1399
@{number="21",value="0xffffffff"@},@{number="22",value="0xfffffff7"@},
1400
@{number="23",value="0xffffffff"@},@{number="24",value="0xffffffff"@},
1401
@{number="25",value="0xffffffff"@},@{number="26",value="0xfffffffb"@},
1402
@{number="27",value="0xffffffff"@},@{number="28",value="0xf7bfffff"@},
1403
@{number="29",value="0x0"@},@{number="30",value="0xfe010000"@},
1404
@{number="31",value="0x0"@},@{number="32",value="0x0"@},
1405
@{number="33",value="0x0"@},@{number="34",value="0x0"@},
1406
@{number="35",value="0x0"@},@{number="36",value="0x0"@},
1407
@{number="37",value="0x0"@},@{number="38",value="0x0"@},
1408
@{number="39",value="0x0"@},@{number="40",value="0x0"@},
1409
@{number="41",value="0x0"@},@{number="42",value="0x0"@},
1410
@{number="43",value="0x0"@},@{number="44",value="0x0"@},
1411
@{number="45",value="0x0"@},@{number="46",value="0x0"@},
1412
@{number="47",value="0x0"@},@{number="48",value="0x0"@},
1413
@{number="49",value="0x0"@},@{number="50",value="0x0"@},
1414
@{number="51",value="0x0"@},@{number="52",value="0x0"@},
1415
@{number="53",value="0x0"@},@{number="54",value="0x0"@},
1416
@{number="55",value="0x0"@},@{number="56",value="0x0"@},
1417
@{number="57",value="0x0"@},@{number="58",value="0x0"@},
1418
@{number="59",value="0x0"@},@{number="60",value="0x0"@},
1419
@{number="61",value="0x0"@},@{number="62",value="0x0"@},
1420
@{number="63",value="0x0"@},@{number="64",value="0xfe00a300"@},
1421
@{number="65",value="0x29002"@},@{number="66",value="0x202f04b5"@},
1422
@{number="67",value="0xfe0043b0"@},@{number="68",value="0xfe00b3e4"@},
1423
@{number="69",value="0x20002b03"@}]
1424
(@value{GDBP})
1425
@end smallexample
1426
 
1427
 
1428
@subheading The @code{-data-read-memory} Command
1429
@findex -data-read-memory
1430
 
1431
@subsubheading Synopsis
1432
 
1433
@example
1434
 -data-read-memory [ -o @var{byte-offset} ]
1435
   @var{address} @var{word-format} @var{word-size}
1436
   @var{nr-rows} @var{nr-cols} [ @var{aschar} ]
1437
@end example
1438
 
1439
@noindent
1440
where:
1441
 
1442
@table @samp
1443
@item @var{address}
1444
An expression specifying the address of the first memory word to be
1445
read.  Complex expressions containing embedded white space should be
1446
quoted using the C convention.
1447
 
1448
@item @var{word-format}
1449
The format to be used to print the memory words.  The notation is the
1450
same as for @value{GDBN}'s @code{print} command (@pxref{Output Formats,
1451
,Output formats}).
1452
 
1453
@item @var{word-size}
1454
The size of each memory word in bytes.
1455
 
1456
@item @var{nr-rows}
1457
The number of rows in the output table.
1458
 
1459
@item @var{nr-cols}
1460
The number of columns in the output table.
1461
 
1462
@item @var{aschar}
1463
If present, indicates that each row should include an @sc{ascii} dump.  The
1464
value of @var{aschar} is used as a padding character when a byte is not a
1465
member of the printable @sc{ascii} character set (printable @sc{ascii}
1466
characters are those whose code is between 32 and 126, inclusively).
1467
 
1468
@item @var{byte-offset}
1469
An offset to add to the @var{address} before fetching memory.
1470
@end table
1471
 
1472
This command displays memory contents as a table of @var{nr-rows} by
1473
@var{nr-cols} words, each word being @var{word-size} bytes.  In total,
1474
@code{@var{nr-rows} * @var{nr-cols} * @var{word-size}} bytes are read
1475
(returned as @samp{total-bytes}).  Should less than the requested number
1476
of bytes be returned by the target, the missing words are identified
1477
using @samp{N/A}.  The number of bytes read from the target is returned
1478
in @samp{nr-bytes} and the starting address used to read memory in
1479
@samp{addr}.
1480
 
1481
The address of the next/previous row or page is available in
1482
@samp{next-row} and @samp{prev-row}, @samp{next-page} and
1483
@samp{prev-page}.
1484
 
1485
@subsubheading @value{GDBN} Command
1486
 
1487
The corresponding @value{GDBN} command is @samp{x}.  @code{gdbtk} has
1488
@samp{gdb_get_mem} memory read command.
1489
 
1490
@subsubheading Example
1491
 
1492
Read six bytes of memory starting at @code{bytes+6} but then offset by
1493
@code{-6} bytes.  Format as three rows of two columns.  One byte per
1494
word.  Display each word in hex.
1495
 
1496
@smallexample
1497
(@value{GDBP})
1498
9-data-read-memory -o -6 -- bytes+6 x 1 3 2
1499
9^done,addr="0x00001390",nr-bytes="6",total-bytes="6",
1500
next-row="0x00001396",prev-row="0x0000138e",next-page="0x00001396",
1501
prev-page="0x0000138a",memory=[
1502
@{addr="0x00001390",data=["0x00","0x01"]@},
1503
@{addr="0x00001392",data=["0x02","0x03"]@},
1504
@{addr="0x00001394",data=["0x04","0x05"]@}]
1505
(@value{GDBP})
1506
@end smallexample
1507
 
1508
Read two bytes of memory starting at address @code{shorts + 64} and
1509
display as a single word formatted in decimal.
1510
 
1511
@smallexample
1512
(@value{GDBP})
1513
5-data-read-memory shorts+64 d 2 1 1
1514
5^done,addr="0x00001510",nr-bytes="2",total-bytes="2",
1515
next-row="0x00001512",prev-row="0x0000150e",
1516
next-page="0x00001512",prev-page="0x0000150e",memory=[
1517
@{addr="0x00001510",data=["128"]@}]
1518
(@value{GDBP})
1519
@end smallexample
1520
 
1521
Read thirty two bytes of memory starting at @code{bytes+16} and format
1522
as eight rows of four columns.  Include a string encoding with @samp{x}
1523
used as the non-printable character.
1524
 
1525
@smallexample
1526
(@value{GDBP})
1527
4-data-read-memory bytes+16 x 1 8 4 x
1528
4^done,addr="0x000013a0",nr-bytes="32",total-bytes="32",
1529
next-row="0x000013c0",prev-row="0x0000139c",
1530
next-page="0x000013c0",prev-page="0x00001380",memory=[
1531
@{addr="0x000013a0",data=["0x10","0x11","0x12","0x13"],ascii="xxxx"@},
1532
@{addr="0x000013a4",data=["0x14","0x15","0x16","0x17"],ascii="xxxx"@},
1533
@{addr="0x000013a8",data=["0x18","0x19","0x1a","0x1b"],ascii="xxxx"@},
1534
@{addr="0x000013ac",data=["0x1c","0x1d","0x1e","0x1f"],ascii="xxxx"@},
1535
@{addr="0x000013b0",data=["0x20","0x21","0x22","0x23"],ascii=" !\"#"@},
1536
@{addr="0x000013b4",data=["0x24","0x25","0x26","0x27"],ascii="$%&'"@},
1537
@{addr="0x000013b8",data=["0x28","0x29","0x2a","0x2b"],ascii="()*+"@},
1538
@{addr="0x000013bc",data=["0x2c","0x2d","0x2e","0x2f"],ascii=",-./"@}]
1539
(@value{GDBP})
1540
@end smallexample
1541
 
1542
@subheading The @code{-display-delete} Command
1543
@findex -display-delete
1544
 
1545
@subsubheading Synopsis
1546
 
1547
@example
1548
 -display-delete @var{number}
1549
@end example
1550
 
1551
Delete the display @var{number}.
1552
 
1553
@subsubheading @value{GDBN} Command
1554
 
1555
The corresponding @value{GDBN} command is @samp{delete display}.
1556
 
1557
@subsubheading Example
1558
N.A.
1559
 
1560
 
1561
@subheading The @code{-display-disable} Command
1562
@findex -display-disable
1563
 
1564
@subsubheading Synopsis
1565
 
1566
@example
1567
 -display-disable @var{number}
1568
@end example
1569
 
1570
Disable display @var{number}.
1571
 
1572
@subsubheading @value{GDBN} Command
1573
 
1574
The corresponding @value{GDBN} command is @samp{disable display}.
1575
 
1576
@subsubheading Example
1577
N.A.
1578
 
1579
 
1580
@subheading The @code{-display-enable} Command
1581
@findex -display-enable
1582
 
1583
@subsubheading Synopsis
1584
 
1585
@example
1586
 -display-enable @var{number}
1587
@end example
1588
 
1589
Enable display @var{number}.
1590
 
1591
@subsubheading @value{GDBN} Command
1592
 
1593
The corresponding @value{GDBN} command is @samp{enable display}.
1594
 
1595
@subsubheading Example
1596
N.A.
1597
 
1598
 
1599
@subheading The @code{-display-insert} Command
1600
@findex -display-insert
1601
 
1602
@subsubheading Synopsis
1603
 
1604
@example
1605
 -display-insert @var{expression}
1606
@end example
1607
 
1608
Display @var{expression} every time the program stops.
1609
 
1610
@subsubheading @value{GDBN} Command
1611
 
1612
The corresponding @value{GDBN} command is @samp{display}.
1613
 
1614
@subsubheading Example
1615
N.A.
1616
 
1617
 
1618
@subheading The @code{-display-list} Command
1619
@findex -display-list
1620
 
1621
@subsubheading Synopsis
1622
 
1623
@example
1624
 -display-list
1625
@end example
1626
 
1627
List the displays.  Do not show the current values.
1628
 
1629
@subsubheading @value{GDBN} Command
1630
 
1631
The corresponding @value{GDBN} command is @samp{info display}.
1632
 
1633
@subsubheading Example
1634
N.A.
1635
 
1636
 
1637
@subheading The @code{-environment-cd} Command
1638
@findex -environment-cd
1639
 
1640
@subsubheading Synopsis
1641
 
1642
@example
1643
 -environment-cd @var{pathdir}
1644
@end example
1645
 
1646
Set @value{GDBN}'s working directory.
1647
 
1648
@subsubheading @value{GDBN} Command
1649
 
1650
The corresponding @value{GDBN} command is @samp{cd}.
1651
 
1652
@subsubheading Example
1653
 
1654
@smallexample
1655
(@value{GDBP})
1656
-environment-cd /kwikemart/marge/ezannoni/flathead-dev/devo/gdb
1657
^done
1658
(@value{GDBP})
1659
@end smallexample
1660
 
1661
 
1662
@subheading The @code{-environment-directory} Command
1663
@findex -environment-directory
1664
 
1665
@subsubheading Synopsis
1666
 
1667
@example
1668
 -environment-directory @var{pathdir}
1669
@end example
1670
 
1671
Add directory @var{pathdir} to beginning of search path for source files.
1672
 
1673
@subsubheading @value{GDBN} Command
1674
 
1675
The corresponding @value{GDBN} command is @samp{dir}.
1676
 
1677
@subsubheading Example
1678
 
1679
@smallexample
1680
(@value{GDBP})
1681
-environment-directory /kwikemart/marge/ezannoni/flathead-dev/devo/gdb
1682
^done
1683
(@value{GDBP})
1684
@end smallexample
1685
 
1686
 
1687
@subheading The @code{-environment-path} Command
1688
@findex -environment-path
1689
 
1690
@subsubheading Synopsis
1691
 
1692
@example
1693
 -environment-path ( @var{pathdir} )+
1694
@end example
1695
 
1696
Add directories @var{pathdir} to beginning of search path for object files.
1697
 
1698
@subsubheading @value{GDBN} Command
1699
 
1700
The corresponding @value{GDBN} command is @samp{path}.
1701
 
1702
@subsubheading Example
1703
 
1704
@smallexample
1705
(@value{GDBP})
1706
-environment-path /kwikemart/marge/ezannoni/flathead-dev/ppc-eabi/gdb
1707
^done
1708
(@value{GDBP})
1709
@end smallexample
1710
 
1711
 
1712
@subheading The @code{-environment-pwd} Command
1713
@findex -environment-pwd
1714
 
1715
@subsubheading Synopsis
1716
 
1717
@example
1718
 -environment-pwd
1719
@end example
1720
 
1721
Show the current working directory.
1722
 
1723
@subsubheading @value{GDBN} command
1724
 
1725
The corresponding @value{GDBN} command is @samp{pwd}.
1726
 
1727
@subsubheading Example
1728
 
1729
@smallexample
1730
(@value{GDBP})
1731
-environment-pwd
1732
~Working directory /kwikemart/marge/ezannoni/flathead-dev/devo/gdb.
1733
^done
1734
(@value{GDBP})
1735
@end smallexample
1736
 
1737
@c %%%%%%%%%%%%%%%%%%%%%%%%%%%% SECTION %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1738
@node GDB/MI Program Control
1739
@section @sc{gdb/mi} Program control
1740
 
1741
@subsubheading Program termination
1742
 
1743
As a result of execution, the inferior program can run to completion, if
1744
it doesn't encounter any breakpoints.  In this case the output will
1745
include an exit code, if the program has exited exceptionally.
1746
 
1747
@subsubheading Examples
1748
 
1749
@noindent
1750
Program exited normally:
1751
 
1752
@smallexample
1753
(@value{GDBP})
1754
-exec-run
1755
^running
1756
(@value{GDBP})
1757
x = 55
1758
*stopped,reason="exited-normally"
1759
(@value{GDBP})
1760
@end smallexample
1761
 
1762
@noindent
1763
Program exited exceptionally:
1764
 
1765
@smallexample
1766
(@value{GDBP})
1767
-exec-run
1768
^running
1769
(@value{GDBP})
1770
x = 55
1771
*stopped,reason="exited",exit-code="01"
1772
(@value{GDBP})
1773
@end smallexample
1774
 
1775
Another way the program can terminate is if it receives a signal such as
1776
@code{SIGINT}.  In this case, @sc{gdb/mi} displays this:
1777
 
1778
@smallexample
1779
(@value{GDBP})
1780
*stopped,reason="exited-signalled",signal-name="SIGINT",
1781
signal-meaning="Interrupt"
1782
@end smallexample
1783
 
1784
 
1785
@subheading The @code{-exec-abort} Command
1786
@findex -exec-abort
1787
 
1788
@subsubheading Synopsis
1789
 
1790
@example
1791
 -exec-abort
1792
@end example
1793
 
1794
Kill the inferior running program.
1795
 
1796
@subsubheading @value{GDBN} Command
1797
 
1798
The corresponding @value{GDBN} command is @samp{kill}.
1799
 
1800
@subsubheading Example
1801
N.A.
1802
 
1803
 
1804
@subheading The @code{-exec-arguments} Command
1805
@findex -exec-arguments
1806
 
1807
@subsubheading Synopsis
1808
 
1809
@example
1810
 -exec-arguments @var{args}
1811
@end example
1812
 
1813
Set the inferior program arguments, to be used in the next
1814
@samp{-exec-run}.
1815
 
1816
@subsubheading @value{GDBN} Command
1817
 
1818
The corresponding @value{GDBN} command is @samp{set args}.
1819
 
1820
@subsubheading Example
1821
 
1822
@c FIXME!
1823
Don't have one around.
1824
 
1825
 
1826
@subheading The @code{-exec-continue} Command
1827
@findex -exec-continue
1828
 
1829
@subsubheading Synopsis
1830
 
1831
@example
1832
 -exec-continue
1833
@end example
1834
 
1835
Asynchronous command.  Resumes the execution of the inferior program
1836
until a breakpoint is encountered, or until the inferior exits.
1837
 
1838
@subsubheading @value{GDBN} Command
1839
 
1840
The corresponding @value{GDBN} corresponding is @samp{continue}.
1841
 
1842
@subsubheading Example
1843
 
1844
@smallexample
1845
-exec-continue
1846
^running
1847
(@value{GDBP})
1848
@@Hello world
1849
*stopped,reason="breakpoint-hit",bkptno="2",frame=@{func="foo",args=[],
1850
file="hello.c",line="13"@}
1851
(@value{GDBP})
1852
@end smallexample
1853
 
1854
 
1855
@subheading The @code{-exec-finish} Command
1856
@findex -exec-finish
1857
 
1858
@subsubheading Synopsis
1859
 
1860
@example
1861
 -exec-finish
1862
@end example
1863
 
1864
Asynchronous command.  Resumes the execution of the inferior program
1865
until the current function is exited.  Displays the results returned by
1866
the function.
1867
 
1868
@subsubheading @value{GDBN} Command
1869
 
1870
The corresponding @value{GDBN} command is @samp{finish}.
1871
 
1872
@subsubheading Example
1873
 
1874
Function returning @code{void}.
1875
 
1876
@smallexample
1877
-exec-finish
1878
^running
1879
(@value{GDBP})
1880
@@hello from foo
1881
*stopped,reason="function-finished",frame=@{func="main",args=[],
1882
file="hello.c",line="7"@}
1883
(@value{GDBP})
1884
@end smallexample
1885
 
1886
Function returning other than @code{void}.  The name of the internal
1887
@value{GDBN} variable storing the result is printed, together with the
1888
value itself.
1889
 
1890
@smallexample
1891
-exec-finish
1892
^running
1893
(@value{GDBP})
1894
*stopped,reason="function-finished",frame=@{addr="0x000107b0",func="foo",
1895
args=[@{name="a",value="1"],@{name="b",value="9"@}@},
1896
file="recursive2.c",line="14"@},
1897
gdb-result-var="$1",return-value="0"
1898
(@value{GDBP})
1899
@end smallexample
1900
 
1901
 
1902
@subheading The @code{-exec-interrupt} Command
1903
@findex -exec-interrupt
1904
 
1905
@subsubheading Synopsis
1906
 
1907
@example
1908
 -exec-interrupt
1909
@end example
1910
 
1911
Asynchronous command.  Interrupts the background execution of the target.
1912
Note how the token associated with the stop message is the one for the
1913
execution command that has been interrupted.  The token for the interrupt
1914
itself only appears in the @samp{^done} output.  If the user is trying to
1915
interrupt a non-running program, an error message will be printed.
1916
 
1917
@subsubheading @value{GDBN} Command
1918
 
1919
The corresponding @value{GDBN} command is @samp{interrupt}.
1920
 
1921
@subsubheading Example
1922
 
1923
@smallexample
1924
(@value{GDBP})
1925
111-exec-continue
1926
111^running
1927
 
1928
(@value{GDBP})
1929
222-exec-interrupt
1930
222^done
1931
(@value{GDBP})
1932
111*stopped,signal-name="SIGINT",signal-meaning="Interrupt",
1933
frame=@{addr="0x00010140",func="foo",args=[],file="try.c",line="13"@}
1934
(@value{GDBP})
1935
 
1936
(@value{GDBP})
1937
-exec-interrupt
1938
^error,msg="mi_cmd_exec_interrupt: Inferior not executing."
1939
(@value{GDBP})
1940
@end smallexample
1941
 
1942
 
1943
@subheading The @code{-exec-next} Command
1944
@findex -exec-next
1945
 
1946
@subsubheading Synopsis
1947
 
1948
@example
1949
 -exec-next
1950
@end example
1951
 
1952
Asynchronous command.  Resumes execution of the inferior program, stopping
1953
when the beginning of the next source line is reached.
1954
 
1955
@subsubheading @value{GDBN} Command
1956
 
1957
The corresponding @value{GDBN} command is @samp{next}.
1958
 
1959
@subsubheading Example
1960
 
1961
@smallexample
1962
-exec-next
1963
^running
1964
(@value{GDBP})
1965
*stopped,reason="end-stepping-range",line="8",file="hello.c"
1966
(@value{GDBP})
1967
@end smallexample
1968
 
1969
 
1970
@subheading The @code{-exec-next-instruction} Command
1971
@findex -exec-next-instruction
1972
 
1973
@subsubheading Synopsis
1974
 
1975
@example
1976
 -exec-next-instruction
1977
@end example
1978
 
1979
Asynchronous command.  Executes one machine instruction.  If the
1980
instruction is a function call continues until the function returns.  If
1981
the program stops at an instruction in the middle of a source line, the
1982
address will be printed as well.
1983
 
1984
@subsubheading @value{GDBN} Command
1985
 
1986
The corresponding @value{GDBN} command is @samp{nexti}.
1987
 
1988
@subsubheading Example
1989
 
1990
@smallexample
1991
(@value{GDBP})
1992
-exec-next-instruction
1993
^running
1994
 
1995
(@value{GDBP})
1996
*stopped,reason="end-stepping-range",
1997
addr="0x000100d4",line="5",file="hello.c"
1998
(@value{GDBP})
1999
@end smallexample
2000
 
2001
 
2002
@subheading The @code{-exec-return} Command
2003
@findex -exec-return
2004
 
2005
@subsubheading Synopsis
2006
 
2007
@example
2008
 -exec-return
2009
@end example
2010
 
2011
Makes current function return immediately.  Doesn't execute the inferior.
2012
Displays the new current frame.
2013
 
2014
@subsubheading @value{GDBN} Command
2015
 
2016
The corresponding @value{GDBN} command is @samp{return}.
2017
 
2018
@subsubheading Example
2019
 
2020
@smallexample
2021
(@value{GDBP})
2022
200-break-insert callee4
2023
200^done,bkpt=@{number="1",addr="0x00010734",
2024
file="../../../devo/gdb/testsuite/gdb.mi/basics.c",line="8"@}
2025
(@value{GDBP})
2026
000-exec-run
2027
000^running
2028
(@value{GDBP})
2029
000*stopped,reason="breakpoint-hit",bkptno="1",
2030
frame=@{func="callee4",args=[],
2031
file="../../../devo/gdb/testsuite/gdb.mi/basics.c",line="8"@}
2032
(@value{GDBP})
2033
205-break-delete
2034
205^done
2035
(@value{GDBP})
2036
111-exec-return
2037
111^done,frame=@{level="0 ",func="callee3",
2038
args=[@{name="strarg",
2039
value="0x11940 \"A string argument.\""@}],
2040
file="../../../devo/gdb/testsuite/gdb.mi/basics.c",line="18"@}
2041
(@value{GDBP})
2042
@end smallexample
2043
 
2044
 
2045
@subheading The @code{-exec-run} Command
2046
@findex -exec-run
2047
 
2048
@subsubheading Synopsis
2049
 
2050
@example
2051
 -exec-run
2052
@end example
2053
 
2054
Asynchronous command.  Starts execution of the inferior from the
2055
beginning.  The inferior executes until either a breakpoint is
2056
encountered or the program exits.
2057
 
2058
@subsubheading @value{GDBN} Command
2059
 
2060
The corresponding @value{GDBN} command is @samp{run}.
2061
 
2062
@subsubheading Example
2063
 
2064
@smallexample
2065
(@value{GDBP})
2066
-break-insert main
2067
^done,bkpt=@{number="1",addr="0x0001072c",file="recursive2.c",line="4"@}
2068
(@value{GDBP})
2069
-exec-run
2070
^running
2071
(@value{GDBP})
2072
*stopped,reason="breakpoint-hit",bkptno="1",
2073
frame=@{func="main",args=[],file="recursive2.c",line="4"@}
2074
(@value{GDBP})
2075
@end smallexample
2076
 
2077
 
2078
@subheading The @code{-exec-show-arguments} Command
2079
@findex -exec-show-arguments
2080
 
2081
@subsubheading Synopsis
2082
 
2083
@example
2084
 -exec-show-arguments
2085
@end example
2086
 
2087
Print the arguments of the program.
2088
 
2089
@subsubheading @value{GDBN} Command
2090
 
2091
The corresponding @value{GDBN} command is @samp{show args}.
2092
 
2093
@subsubheading Example
2094
N.A.
2095
 
2096
@c @subheading -exec-signal
2097
 
2098
@subheading The @code{-exec-step} Command
2099
@findex -exec-step
2100
 
2101
@subsubheading Synopsis
2102
 
2103
@example
2104
 -exec-step
2105
@end example
2106
 
2107
Asynchronous command.  Resumes execution of the inferior program, stopping
2108
when the beginning of the next source line is reached, if the next
2109
source line is not a function call.  If it is, stop at the first
2110
instruction of the called function.
2111
 
2112
@subsubheading @value{GDBN} Command
2113
 
2114
The corresponding @value{GDBN} command is @samp{step}.
2115
 
2116
@subsubheading Example
2117
 
2118
Stepping into a function:
2119
 
2120
@smallexample
2121
-exec-step
2122
^running
2123
(@value{GDBP})
2124
*stopped,reason="end-stepping-range",
2125
frame=@{func="foo",args=[@{name="a",value="10"@},
2126
@{name="b",value="0"@}],file="recursive2.c",line="11"@}
2127
(@value{GDBP})
2128
@end smallexample
2129
 
2130
Regular stepping:
2131
 
2132
@smallexample
2133
-exec-step
2134
^running
2135
(@value{GDBP})
2136
*stopped,reason="end-stepping-range",line="14",file="recursive2.c"
2137
(@value{GDBP})
2138
@end smallexample
2139
 
2140
 
2141
@subheading The @code{-exec-step-instruction} Command
2142
@findex -exec-step-instruction
2143
 
2144
@subsubheading Synopsis
2145
 
2146
@example
2147
 -exec-step-instruction
2148
@end example
2149
 
2150
Asynchronous command.  Resumes the inferior which executes one machine
2151
instruction.  The output, once @value{GDBN} has stopped, will vary depending on
2152
whether we have stopped in the middle of a source line or not.  In the
2153
former case, the address at which the program stopped will be printed as
2154
well.
2155
 
2156
@subsubheading @value{GDBN} Command
2157
 
2158
The corresponding @value{GDBN} command is @samp{stepi}.
2159
 
2160
@subsubheading Example
2161
 
2162
@smallexample
2163
(@value{GDBP})
2164
-exec-step-instruction
2165
^running
2166
 
2167
(@value{GDBP})
2168
*stopped,reason="end-stepping-range",
2169
frame=@{func="foo",args=[],file="try.c",line="10"@}
2170
(@value{GDBP})
2171
-exec-step-instruction
2172
^running
2173
 
2174
(@value{GDBP})
2175
*stopped,reason="end-stepping-range",
2176
frame=@{addr="0x000100f4",func="foo",args=[],file="try.c",line="10"@}
2177
(@value{GDBP})
2178
@end smallexample
2179
 
2180
 
2181
@subheading The @code{-exec-until} Command
2182
@findex -exec-until
2183
 
2184
@subsubheading Synopsis
2185
 
2186
@example
2187
 -exec-until [ @var{location} ]
2188
@end example
2189
 
2190
Asynchronous command.  Executes the inferior until the @var{location}
2191
specified in the argument is reached.  If there is no argument, the inferior
2192
executes until a source line greater than the current one is reached.
2193
The reason for stopping in this case will be @samp{location-reached}.
2194
 
2195
@subsubheading @value{GDBN} Command
2196
 
2197
The corresponding @value{GDBN} command is @samp{until}.
2198
 
2199
@subsubheading Example
2200
 
2201
@smallexample
2202
(@value{GDBP})
2203
-exec-until recursive2.c:6
2204
^running
2205
(@value{GDBP})
2206
x = 55
2207
*stopped,reason="location-reached",frame=@{func="main",args=[],
2208
file="recursive2.c",line="6"@}
2209
(@value{GDBP})
2210
@end smallexample
2211
 
2212
@ignore
2213
@subheading -file-clear
2214
Is this going away????
2215
@end ignore
2216
 
2217
 
2218
@subheading The @code{-file-exec-and-symbols} Command
2219
@findex -file-exec-and-symbols
2220
 
2221
@subsubheading Synopsis
2222
 
2223
@example
2224
 -file-exec-and-symbols @var{file}
2225
@end example
2226
 
2227
Specify the executable file to be debugged.  This file is the one from
2228
which the symbol table is also read.  If no file is specified, the
2229
command clears the executable and symbol information.  If breakpoints
2230
are set when using this command with no arguments, @value{GDBN} will produce
2231
error messages.  Otherwise, no output is produced, except a completion
2232
notification.
2233
 
2234
@subsubheading @value{GDBN} Command
2235
 
2236
The corresponding @value{GDBN} command is @samp{file}.
2237
 
2238
@subsubheading Example
2239
 
2240
@smallexample
2241
(@value{GDBP})
2242
-file-exec-and-symbols /kwikemart/marge/ezannoni/TRUNK/mbx/hello.mbx
2243
^done
2244
(@value{GDBP})
2245
@end smallexample
2246
 
2247
 
2248
@subheading The @code{-file-exec-file} Command
2249
@findex -file-exec-file
2250
 
2251
@subsubheading Synopsis
2252
 
2253
@example
2254
 -file-exec-file @var{file}
2255
@end example
2256
 
2257
Specify the executable file to be debugged.  Unlike
2258
@samp{-file-exec-and-symbols}, the symbol table is @emph{not} read
2259
from this file.  If used without argument, @value{GDBN} clears the information
2260
about the executable file.  No output is produced, except a completion
2261
notification.
2262
 
2263
@subsubheading @value{GDBN} Command
2264
 
2265
The corresponding @value{GDBN} command is @samp{exec-file}.
2266
 
2267
@subsubheading Example
2268
 
2269
@smallexample
2270
(@value{GDBP})
2271
-file-exec-file /kwikemart/marge/ezannoni/TRUNK/mbx/hello.mbx
2272
^done
2273
(@value{GDBP})
2274
@end smallexample
2275
 
2276
 
2277
@subheading The @code{-file-list-exec-sections} Command
2278
@findex -file-list-exec-sections
2279
 
2280
@subsubheading Synopsis
2281
 
2282
@example
2283
 -file-list-exec-sections
2284
@end example
2285
 
2286
List the sections of the current executable file.
2287
 
2288
@subsubheading @value{GDBN} Command
2289
 
2290
The @value{GDBN} command @samp{info file} shows, among the rest, the same
2291
information as this command.  @code{gdbtk} has a corresponding command
2292
@samp{gdb_load_info}.
2293
 
2294
@subsubheading Example
2295
N.A.
2296
 
2297
 
2298
@subheading The @code{-file-list-exec-source-files} Command
2299
@findex -file-list-exec-source-files
2300
 
2301
@subsubheading Synopsis
2302
 
2303
@example
2304
 -file-list-exec-source-files
2305
@end example
2306
 
2307
List the source files for the current executable.
2308
 
2309
@subsubheading @value{GDBN} Command
2310
 
2311
There's no @value{GDBN} command which directly corresponds to this one.
2312
@code{gdbtk} has an analogous command @samp{gdb_listfiles}.
2313
 
2314
@subsubheading Example
2315
N.A.
2316
 
2317
 
2318
@subheading The @code{-file-list-shared-libraries} Command
2319
@findex -file-list-shared-libraries
2320
 
2321
@subsubheading Synopsis
2322
 
2323
@example
2324
 -file-list-shared-libraries
2325
@end example
2326
 
2327
List the shared libraries in the program.
2328
 
2329
@subsubheading @value{GDBN} Command
2330
 
2331
The corresponding @value{GDBN} command is @samp{info shared}.
2332
 
2333
@subsubheading Example
2334
N.A.
2335
 
2336
 
2337
@subheading The @code{-file-list-symbol-files} Command
2338
@findex -file-list-symbol-files
2339
 
2340
@subsubheading Synopsis
2341
 
2342
@example
2343
 -file-list-symbol-files
2344
@end example
2345
 
2346
List symbol files.
2347
 
2348
@subsubheading @value{GDBN} Command
2349
 
2350
The corresponding @value{GDBN} command is @samp{info file} (part of it).
2351
 
2352
@subsubheading Example
2353
N.A.
2354
 
2355
 
2356
@subheading The @code{-file-symbol-file} Command
2357
@findex -file-symbol-file
2358
 
2359
@subsubheading Synopsis
2360
 
2361
@example
2362
 -file-symbol-file @var{file}
2363
@end example
2364
 
2365
Read symbol table info from the specified @var{file} argument.  When
2366
used without arguments, clears @value{GDBN}'s symbol table info.  No output is
2367
produced, except for a completion notification.
2368
 
2369
@subsubheading @value{GDBN} Command
2370
 
2371
The corresponding @value{GDBN} command is @samp{symbol-file}.
2372
 
2373
@subsubheading Example
2374
 
2375
@smallexample
2376
(@value{GDBP})
2377
-file-symbol-file /kwikemart/marge/ezannoni/TRUNK/mbx/hello.mbx
2378
^done
2379
(@value{GDBP})
2380
@end smallexample
2381
 
2382
@c %%%%%%%%%%%%%%%%%%%%%%%%%%%% SECTION %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2383
@node GDB/MI Miscellaneous Commands
2384
@section Miscellaneous @value{GDBN} commands in @sc{gdb/mi}
2385
 
2386
@c @subheading -gdb-complete
2387
 
2388
@subheading The @code{-gdb-exit} Command
2389
@findex -gdb-exit
2390
 
2391
@subsubheading Synopsis
2392
 
2393
@example
2394
 -gdb-exit
2395
@end example
2396
 
2397
Exit @value{GDBN} immediately.
2398
 
2399
@subsubheading @value{GDBN} Command
2400
 
2401
Approximately corresponds to @samp{quit}.
2402
 
2403
@subsubheading Example
2404
 
2405
@smallexample
2406
(@value{GDBP})
2407
-gdb-exit
2408
@end smallexample
2409
 
2410
@subheading The @code{-gdb-set} Command
2411
@findex -gdb-set
2412
 
2413
@subsubheading Synopsis
2414
 
2415
@example
2416
 -gdb-set
2417
@end example
2418
 
2419
Set an internal @value{GDBN} variable.
2420
@c IS THIS A DOLLAR VARIABLE? OR SOMETHING LIKE ANNOTATE ?????
2421
 
2422
@subsubheading @value{GDBN} Command
2423
 
2424
The corresponding @value{GDBN} command is @samp{set}.
2425
 
2426
@subsubheading Example
2427
 
2428
@smallexample
2429
(@value{GDBP})
2430
-gdb-set $foo=3
2431
^done
2432
(@value{GDBP})
2433
@end smallexample
2434
 
2435
 
2436
@subheading The @code{-gdb-show} Command
2437
@findex -gdb-show
2438
 
2439
@subsubheading Synopsis
2440
 
2441
@example
2442
 -gdb-show
2443
@end example
2444
 
2445
Show the current value of a @value{GDBN} variable.
2446
 
2447
@subsubheading @value{GDBN} command
2448
 
2449
The corresponding @value{GDBN} command is @samp{show}.
2450
 
2451
@subsubheading Example
2452
 
2453
@smallexample
2454
(@value{GDBP})
2455
-gdb-show annotate
2456
^done,value="0"
2457
(@value{GDBP})
2458
@end smallexample
2459
 
2460
@c @subheading -gdb-source
2461
 
2462
 
2463
@subheading The @code{-gdb-version} Command
2464
@findex -gdb-version
2465
 
2466
@subsubheading Synopsis
2467
 
2468
@example
2469
 -gdb-version
2470
@end example
2471
 
2472
Show version information for @value{GDBN}.  Used mostly in testing.
2473
 
2474
@subsubheading @value{GDBN} Command
2475
 
2476
There's no equivalent @value{GDBN} command.  @value{GDBN} by default shows this
2477
information when you start an interactive session.
2478
 
2479
@subsubheading Example
2480
 
2481
@c This example modifies the actual output from GDB to avoid overfull
2482
@c box in TeX.
2483
@smallexample
2484
(@value{GDBP})
2485
-gdb-version
2486
~GNU gdb 5.2.1
2487
~Copyright 2000 Free Software Foundation, Inc.
2488
~GDB is free software, covered by the GNU General Public License, and
2489
~you are welcome to change it and/or distribute copies of it under
2490
~ certain conditions.
2491
~Type "show copying" to see the conditions.
2492
~There is absolutely no warranty for GDB.  Type "show warranty" for
2493
~ details.
2494
~This GDB was configured as
2495
 "--host=sparc-sun-solaris2.5.1 --target=ppc-eabi".
2496
^done
2497
(@value{GDBP})
2498
@end smallexample
2499
 
2500
@ignore
2501
@c %%%%%%%%%%%%%%%%%%%%%%%%%%%% SECTION %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2502
@node GDB/MI Kod Commands
2503
@section @sc{gdb/mi} Kod Commands
2504
 
2505
The Kod commands are not implemented.
2506
 
2507
@c @subheading -kod-info
2508
 
2509
@c @subheading -kod-list
2510
 
2511
@c @subheading -kod-list-object-types
2512
 
2513
@c @subheading -kod-show
2514
 
2515
@c %%%%%%%%%%%%%%%%%%%%%%%%%%%% SECTION %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2516
@node GDB/MI Memory Overlay Commands
2517
@section @sc{gdb/mi} Memory Overlay Commands
2518
 
2519
The memory overlay commands are not implemented.
2520
 
2521
@c @subheading -overlay-auto
2522
 
2523
@c @subheading -overlay-list-mapping-state
2524
 
2525
@c @subheading -overlay-list-overlays
2526
 
2527
@c @subheading -overlay-map
2528
 
2529
@c @subheading -overlay-off
2530
 
2531
@c @subheading -overlay-on
2532
 
2533
@c @subheading -overlay-unmap
2534
 
2535
@c %%%%%%%%%%%%%%%%%%%%%%%%%%%% SECTION %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2536
@node GDB/MI Signal Handling Commands
2537
@section @sc{gdb/mi} Signal Handling Commands
2538
 
2539
Signal handling commands are not implemented.
2540
 
2541
@c @subheading -signal-handle
2542
 
2543
@c @subheading -signal-list-handle-actions
2544
 
2545
@c @subheading -signal-list-signal-types
2546
@end ignore
2547
 
2548
 
2549
@c %%%%%%%%%%%%%%%%%%%%%%%%%%%% SECTION %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2550
@node GDB/MI Stack Manipulation
2551
@section @sc{gdb/mi} Stack Manipulation Commands
2552
 
2553
 
2554
@subheading The @code{-stack-info-frame} Command
2555
@findex -stack-info-frame
2556
 
2557
@subsubheading Synopsis
2558
 
2559
@example
2560
 -stack-info-frame
2561
@end example
2562
 
2563
Get info on the current frame.
2564
 
2565
@subsubheading @value{GDBN} Command
2566
 
2567
The corresponding @value{GDBN} command is @samp{info frame} or @samp{frame}
2568
(without arguments).
2569
 
2570
@subsubheading Example
2571
N.A.
2572
 
2573
@subheading The @code{-stack-info-depth} Command
2574
@findex -stack-info-depth
2575
 
2576
@subsubheading Synopsis
2577
 
2578
@example
2579
 -stack-info-depth [ @var{max-depth} ]
2580
@end example
2581
 
2582
Return the depth of the stack.  If the integer argument @var{max-depth}
2583
is specified, do not count beyond @var{max-depth} frames.
2584
 
2585
@subsubheading @value{GDBN} Command
2586
 
2587
There's no equivalent @value{GDBN} command.
2588
 
2589
@subsubheading Example
2590
 
2591
For a stack with frame levels 0 through 11:
2592
 
2593
@smallexample
2594
(@value{GDBP})
2595
-stack-info-depth
2596
^done,depth="12"
2597
(@value{GDBP})
2598
-stack-info-depth 4
2599
^done,depth="4"
2600
(@value{GDBP})
2601
-stack-info-depth 12
2602
^done,depth="12"
2603
(@value{GDBP})
2604
-stack-info-depth 11
2605
^done,depth="11"
2606
(@value{GDBP})
2607
-stack-info-depth 13
2608
^done,depth="12"
2609
(@value{GDBP})
2610
@end smallexample
2611
 
2612
@subheading The @code{-stack-list-arguments} Command
2613
@findex -stack-list-arguments
2614
 
2615
@subsubheading Synopsis
2616
 
2617
@example
2618
 -stack-list-arguments @var{show-values}
2619
    [ @var{low-frame} @var{high-frame} ]
2620
@end example
2621
 
2622
Display a list of the arguments for the frames between @var{low-frame}
2623
and @var{high-frame} (inclusive).  If @var{low-frame} and
2624
@var{high-frame} are not provided, list the arguments for the whole call
2625
stack.
2626
 
2627
The @var{show-values} argument must have a value of 0 or 1.  A value of
2628
 
2629
means that both names and values of the arguments are printed.
2630
 
2631
@subsubheading @value{GDBN} Command
2632
 
2633
@value{GDBN} does not have an equivalent command.  @code{gdbtk} has a
2634
@samp{gdb_get_args} command which partially overlaps with the
2635
functionality of @samp{-stack-list-arguments}.
2636
 
2637
@subsubheading Example
2638
 
2639
@smallexample
2640
(@value{GDBP})
2641
-stack-list-frames
2642
^done,
2643
stack=[
2644
frame=@{level="0 ",addr="0x00010734",func="callee4",
2645
file="../../../devo/gdb/testsuite/gdb.mi/basics.c",line="8"@},
2646
frame=@{level="1 ",addr="0x0001076c",func="callee3",
2647
file="../../../devo/gdb/testsuite/gdb.mi/basics.c",line="17"@},
2648
frame=@{level="2 ",addr="0x0001078c",func="callee2",
2649
file="../../../devo/gdb/testsuite/gdb.mi/basics.c",line="22"@},
2650
frame=@{level="3 ",addr="0x000107b4",func="callee1",
2651
file="../../../devo/gdb/testsuite/gdb.mi/basics.c",line="27"@},
2652
frame=@{level="4 ",addr="0x000107e0",func="main",
2653
file="../../../devo/gdb/testsuite/gdb.mi/basics.c",line="32"@}]
2654
(@value{GDBP})
2655
-stack-list-arguments 0
2656
^done,
2657
stack-args=[
2658
frame=@{level="0",args=[]@},
2659
frame=@{level="1",args=[name="strarg"]@},
2660
frame=@{level="2",args=[name="intarg",name="strarg"]@},
2661
frame=@{level="3",args=[name="intarg",name="strarg",name="fltarg"]@},
2662
frame=@{level="4",args=[]@}]
2663
(@value{GDBP})
2664
-stack-list-arguments 1
2665
^done,
2666
stack-args=[
2667
frame=@{level="0",args=[]@},
2668
frame=@{level="1",
2669
 args=[@{name="strarg",value="0x11940 \"A string argument.\""@}]@},
2670
frame=@{level="2",args=[
2671
@{name="intarg",value="2"@},
2672
@{name="strarg",value="0x11940 \"A string argument.\""@}]@},
2673
@{frame=@{level="3",args=[
2674
@{name="intarg",value="2"@},
2675
@{name="strarg",value="0x11940 \"A string argument.\""@},
2676
@{name="fltarg",value="3.5"@}]@},
2677
frame=@{level="4",args=[]@}]
2678
(@value{GDBP})
2679
-stack-list-arguments 0 2 2
2680
^done,stack-args=[frame=@{level="2",args=[name="intarg",name="strarg"]@}]
2681
(@value{GDBP})
2682
-stack-list-arguments 1 2 2
2683
^done,stack-args=[frame=@{level="2",
2684
args=[@{name="intarg",value="2"@},
2685
@{name="strarg",value="0x11940 \"A string argument.\""@}]@}]
2686
(@value{GDBP})
2687
@end smallexample
2688
 
2689
@c @subheading -stack-list-exception-handlers
2690
 
2691
 
2692
@subheading The @code{-stack-list-frames} Command
2693
@findex -stack-list-frames
2694
 
2695
@subsubheading Synopsis
2696
 
2697
@example
2698
 -stack-list-frames [ @var{low-frame} @var{high-frame} ]
2699
@end example
2700
 
2701
List the frames currently on the stack.  For each frame it displays the
2702
following info:
2703
 
2704
@table @samp
2705
@item @var{level}
2706
The frame number, 0 being the topmost frame, i.e. the innermost function.
2707
@item @var{addr}
2708
The @code{$pc} value for that frame.
2709
@item @var{func}
2710
Function name.
2711
@item @var{file}
2712
File name of the source file where the function lives.
2713
@item @var{line}
2714
Line number corresponding to the @code{$pc}.
2715
@end table
2716
 
2717
If invoked without arguments, this command prints a backtrace for the
2718
whole stack.  If given two integer arguments, it shows the frames whose
2719
levels are between the two arguments (inclusive).  If the two arguments
2720
are equal, it shows the single frame at the corresponding level.
2721
 
2722
@subsubheading @value{GDBN} Command
2723
 
2724
The corresponding @value{GDBN} commands are @samp{backtrace} and @samp{where}.
2725
 
2726
@subsubheading Example
2727
 
2728
Full stack backtrace:
2729
 
2730
@smallexample
2731
(@value{GDBP})
2732
-stack-list-frames
2733
^done,stack=
2734
[frame=@{level="0 ",addr="0x0001076c",func="foo",
2735
  file="recursive2.c",line="11"@},
2736
frame=@{level="1 ",addr="0x000107a4",func="foo",
2737
  file="recursive2.c",line="14"@},
2738
frame=@{level="2 ",addr="0x000107a4",func="foo",
2739
  file="recursive2.c",line="14"@},
2740
frame=@{level="3 ",addr="0x000107a4",func="foo",
2741
  file="recursive2.c",line="14"@},
2742
frame=@{level="4 ",addr="0x000107a4",func="foo",
2743
  file="recursive2.c",line="14"@},
2744
frame=@{level="5 ",addr="0x000107a4",func="foo",
2745
  file="recursive2.c",line="14"@},
2746
frame=@{level="6 ",addr="0x000107a4",func="foo",
2747
  file="recursive2.c",line="14"@},
2748
frame=@{level="7 ",addr="0x000107a4",func="foo",
2749
  file="recursive2.c",line="14"@},
2750
frame=@{level="8 ",addr="0x000107a4",func="foo",
2751
  file="recursive2.c",line="14"@},
2752
frame=@{level="9 ",addr="0x000107a4",func="foo",
2753
  file="recursive2.c",line="14"@},
2754
frame=@{level="10",addr="0x000107a4",func="foo",
2755
  file="recursive2.c",line="14"@},
2756
frame=@{level="11",addr="0x00010738",func="main",
2757
  file="recursive2.c",line="4"@}]
2758
(@value{GDBP})
2759
@end smallexample
2760
 
2761
Show frames between @var{low_frame} and @var{high_frame}:
2762
 
2763
@smallexample
2764
(@value{GDBP})
2765
-stack-list-frames 3 5
2766
^done,stack=
2767
[frame=@{level="3 ",addr="0x000107a4",func="foo",
2768
  file="recursive2.c",line="14"@},
2769
frame=@{level="4 ",addr="0x000107a4",func="foo",
2770
  file="recursive2.c",line="14"@},
2771
frame=@{level="5 ",addr="0x000107a4",func="foo",
2772
  file="recursive2.c",line="14"@}]
2773
(@value{GDBP})
2774
@end smallexample
2775
 
2776
Show a single frame:
2777
 
2778
@smallexample
2779
(@value{GDBP})
2780
-stack-list-frames 3 3
2781
^done,stack=
2782
[frame=@{level="3 ",addr="0x000107a4",func="foo",
2783
  file="recursive2.c",line="14"@}]
2784
(@value{GDBP})
2785
@end smallexample
2786
 
2787
 
2788
@subheading The @code{-stack-list-locals} Command
2789
@findex -stack-list-locals
2790
 
2791
@subsubheading Synopsis
2792
 
2793
@example
2794
 -stack-list-locals @var{print-values}
2795
@end example
2796
 
2797
Display the local variable names for the current frame.  With an
2798
argument of 0 prints only the names of the variables, with argument of 1
2799
prints also their values.
2800
 
2801
@subsubheading @value{GDBN} Command
2802
 
2803
@samp{info locals} in @value{GDBN}, @samp{gdb_get_locals} in @code{gdbtk}.
2804
 
2805
@subsubheading Example
2806
 
2807
@smallexample
2808
(@value{GDBP})
2809
-stack-list-locals 0
2810
^done,locals=[name="A",name="B",name="C"]
2811
(@value{GDBP})
2812
-stack-list-locals 1
2813
^done,locals=[@{name="A",value="1"@},@{name="B",value="2"@},
2814
  @{name="C",value="3"@}]
2815
(@value{GDBP})
2816
@end smallexample
2817
 
2818
 
2819
@subheading The @code{-stack-select-frame} Command
2820
@findex -stack-select-frame
2821
 
2822
@subsubheading Synopsis
2823
 
2824
@example
2825
 -stack-select-frame @var{framenum}
2826
@end example
2827
 
2828
Change the current frame.  Select a different frame @var{framenum} on
2829
the stack.
2830
 
2831
@subsubheading @value{GDBN} Command
2832
 
2833
The corresponding @value{GDBN} commands are @samp{frame}, @samp{up},
2834
@samp{down}, @samp{select-frame}, @samp{up-silent}, and @samp{down-silent}.
2835
 
2836
@subsubheading Example
2837
 
2838
@smallexample
2839
(@value{GDBP})
2840
-stack-select-frame 2
2841
^done
2842
(@value{GDBP})
2843
@end smallexample
2844
 
2845
@c %%%%%%%%%%%%%%%%%%%%%%%%%%%% SECTION %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2846
@node GDB/MI Symbol Query
2847
@section @sc{gdb/mi} Symbol Query Commands
2848
 
2849
 
2850
@subheading The @code{-symbol-info-address} Command
2851
@findex -symbol-info-address
2852
 
2853
@subsubheading Synopsis
2854
 
2855
@example
2856
 -symbol-info-address @var{symbol}
2857
@end example
2858
 
2859
Describe where @var{symbol} is stored.
2860
 
2861
@subsubheading @value{GDBN} Command
2862
 
2863
The corresponding @value{GDBN} command is @samp{info address}.
2864
 
2865
@subsubheading Example
2866
N.A.
2867
 
2868
 
2869
@subheading The @code{-symbol-info-file} Command
2870
@findex -symbol-info-file
2871
 
2872
@subsubheading Synopsis
2873
 
2874
@example
2875
 -symbol-info-file
2876
@end example
2877
 
2878
Show the file for the symbol.
2879
 
2880
@subsubheading @value{GDBN} Command
2881
 
2882
There's no equivalent @value{GDBN} command.  @code{gdbtk} has
2883
@samp{gdb_find_file}.
2884
 
2885
@subsubheading Example
2886
N.A.
2887
 
2888
 
2889
@subheading The @code{-symbol-info-function} Command
2890
@findex -symbol-info-function
2891
 
2892
@subsubheading Synopsis
2893
 
2894
@example
2895
 -symbol-info-function
2896
@end example
2897
 
2898
Show which function the symbol lives in.
2899
 
2900
@subsubheading @value{GDBN} Command
2901
 
2902
@samp{gdb_get_function} in @code{gdbtk}.
2903
 
2904
@subsubheading Example
2905
N.A.
2906
 
2907
 
2908
@subheading The @code{-symbol-info-line} Command
2909
@findex -symbol-info-line
2910
 
2911
@subsubheading Synopsis
2912
 
2913
@example
2914
 -symbol-info-line
2915
@end example
2916
 
2917
Show the core addresses of the code for a source line.
2918
 
2919
@subsubheading @value{GDBN} Command
2920
 
2921
The corresponding @value{GDBN} comamnd is @samp{info line}.
2922
@code{gdbtk} has the @samp{gdb_get_line} and @samp{gdb_get_file} commands.
2923
 
2924
@subsubheading Example
2925
N.A.
2926
 
2927
 
2928
@subheading The @code{-symbol-info-symbol} Command
2929
@findex -symbol-info-symbol
2930
 
2931
@subsubheading Synopsis
2932
 
2933
@example
2934
 -symbol-info-symbol @var{addr}
2935
@end example
2936
 
2937
Describe what symbol is at location @var{addr}.
2938
 
2939
@subsubheading @value{GDBN} Command
2940
 
2941
The corresponding @value{GDBN} command is @samp{info symbol}.
2942
 
2943
@subsubheading Example
2944
N.A.
2945
 
2946
 
2947
@subheading The @code{-symbol-list-functions} Command
2948
@findex -symbol-list-functions
2949
 
2950
@subsubheading Synopsis
2951
 
2952
@example
2953
 -symbol-list-functions
2954
@end example
2955
 
2956
List the functions in the executable.
2957
 
2958
@subsubheading @value{GDBN} Command
2959
 
2960
@samp{info functions} in @value{GDBN}, @samp{gdb_listfunc} and
2961
@samp{gdb_search} in @code{gdbtk}.
2962
 
2963
@subsubheading Example
2964
N.A.
2965
 
2966
 
2967
@subheading The @code{-symbol-list-types} Command
2968
@findex -symbol-list-types
2969
 
2970
@subsubheading Synopsis
2971
 
2972
@example
2973
 -symbol-list-types
2974
@end example
2975
 
2976
List all the type names.
2977
 
2978
@subsubheading @value{GDBN} Command
2979
 
2980
The corresponding commands are @samp{info types} in @value{GDBN},
2981
@samp{gdb_search} in @code{gdbtk}.
2982
 
2983
@subsubheading Example
2984
N.A.
2985
 
2986
 
2987
@subheading The @code{-symbol-list-variables} Command
2988
@findex -symbol-list-variables
2989
 
2990
@subsubheading Synopsis
2991
 
2992
@example
2993
 -symbol-list-variables
2994
@end example
2995
 
2996
List all the global and static variable names.
2997
 
2998
@subsubheading @value{GDBN} Command
2999
 
3000
@samp{info variables} in @value{GDBN}, @samp{gdb_search} in @code{gdbtk}.
3001
 
3002
@subsubheading Example
3003
N.A.
3004
 
3005
 
3006
@subheading The @code{-symbol-locate} Command
3007
@findex -symbol-locate
3008
 
3009
@subsubheading Synopsis
3010
 
3011
@example
3012
 -symbol-locate
3013
@end example
3014
 
3015
@subsubheading @value{GDBN} Command
3016
 
3017
@samp{gdb_loc} in @code{gdbtk}.
3018
 
3019
@subsubheading Example
3020
N.A.
3021
 
3022
 
3023
@subheading The @code{-symbol-type} Command
3024
@findex -symbol-type
3025
 
3026
@subsubheading Synopsis
3027
 
3028
@example
3029
 -symbol-type @var{variable}
3030
@end example
3031
 
3032
Show type of @var{variable}.
3033
 
3034
@subsubheading @value{GDBN} Command
3035
 
3036
The corresponding @value{GDBN} command is @samp{ptype}, @code{gdbtk} has
3037
@samp{gdb_obj_variable}.
3038
 
3039
@subsubheading Example
3040
N.A.
3041
 
3042
 
3043
@c %%%%%%%%%%%%%%%%%%%%%%%%%%%% SECTION %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3044
@node GDB/MI Target Manipulation
3045
@section @sc{gdb/mi} Target Manipulation Commands
3046
 
3047
 
3048
@subheading The @code{-target-attach} Command
3049
@findex -target-attach
3050
 
3051
@subsubheading Synopsis
3052
 
3053
@example
3054
 -target-attach @var{pid} | @var{file}
3055
@end example
3056
 
3057
Attach to a process @var{pid} or a file @var{file} outside of @value{GDBN}.
3058
 
3059
@subsubheading @value{GDBN} command
3060
 
3061
The corresponding @value{GDBN} command is @samp{attach}.
3062
 
3063
@subsubheading Example
3064
N.A.
3065
 
3066
 
3067
@subheading The @code{-target-compare-sections} Command
3068
@findex -target-compare-sections
3069
 
3070
@subsubheading Synopsis
3071
 
3072
@example
3073
 -target-compare-sections [ @var{section} ]
3074
@end example
3075
 
3076
Compare data of section @var{section} on target to the exec file.
3077
Without the argument, all sections are compared.
3078
 
3079
@subsubheading @value{GDBN} Command
3080
 
3081
The @value{GDBN} equivalent is @samp{compare-sections}.
3082
 
3083
@subsubheading Example
3084
N.A.
3085
 
3086
 
3087
@subheading The @code{-target-detach} Command
3088
@findex -target-detach
3089
 
3090
@subsubheading Synopsis
3091
 
3092
@example
3093
 -target-detach
3094
@end example
3095
 
3096
Disconnect from the remote target.  There's no output.
3097
 
3098
@subsubheading @value{GDBN} command
3099
 
3100
The corresponding @value{GDBN} command is @samp{detach}.
3101
 
3102
@subsubheading Example
3103
 
3104
@smallexample
3105
(@value{GDBP})
3106
-target-detach
3107
^done
3108
(@value{GDBP})
3109
@end smallexample
3110
 
3111
 
3112
@subheading The @code{-target-download} Command
3113
@findex -target-download
3114
 
3115
@subsubheading Synopsis
3116
 
3117
@example
3118
 -target-download
3119
@end example
3120
 
3121
Loads the executable onto the remote target.
3122
It prints out an update message every half second, which includes the fields:
3123
 
3124
@table @samp
3125
@item section
3126
The name of the section.
3127
@item section-sent
3128
The size of what has been sent so far for that section.
3129
@item section-size
3130
The size of the section.
3131
@item total-sent
3132
The total size of what was sent so far (the current and the previous sections).
3133
@item total-size
3134
The size of the overall executable to download.
3135
@end table
3136
 
3137
@noindent
3138
Each message is sent as status record (@pxref{GDB/MI Output Syntax, ,
3139
@sc{gdb/mi} Output Syntax}).
3140
 
3141
In addition, it prints the name and size of the sections, as they are
3142
downloaded.  These messages include the following fields:
3143
 
3144
@table @samp
3145
@item section
3146
The name of the section.
3147
@item section-size
3148
The size of the section.
3149
@item total-size
3150
The size of the overall executable to download.
3151
@end table
3152
 
3153
@noindent
3154
At the end, a summary is printed.
3155
 
3156
@subsubheading @value{GDBN} Command
3157
 
3158
The corresponding @value{GDBN} command is @samp{load}.
3159
 
3160
@subsubheading Example
3161
 
3162
Note: each status message appears on a single line.  Here the messages
3163
have been broken down so that they can fit onto a page.
3164
 
3165
@smallexample
3166
(@value{GDBP})
3167
-target-download
3168
+download,@{section=".text",section-size="6668",total-size="9880"@}
3169
+download,@{section=".text",section-sent="512",section-size="6668",
3170
total-sent="512",total-size="9880"@}
3171
+download,@{section=".text",section-sent="1024",section-size="6668",
3172
total-sent="1024",total-size="9880"@}
3173
+download,@{section=".text",section-sent="1536",section-size="6668",
3174
total-sent="1536",total-size="9880"@}
3175
+download,@{section=".text",section-sent="2048",section-size="6668",
3176
total-sent="2048",total-size="9880"@}
3177
+download,@{section=".text",section-sent="2560",section-size="6668",
3178
total-sent="2560",total-size="9880"@}
3179
+download,@{section=".text",section-sent="3072",section-size="6668",
3180
total-sent="3072",total-size="9880"@}
3181
+download,@{section=".text",section-sent="3584",section-size="6668",
3182
total-sent="3584",total-size="9880"@}
3183
+download,@{section=".text",section-sent="4096",section-size="6668",
3184
total-sent="4096",total-size="9880"@}
3185
+download,@{section=".text",section-sent="4608",section-size="6668",
3186
total-sent="4608",total-size="9880"@}
3187
+download,@{section=".text",section-sent="5120",section-size="6668",
3188
total-sent="5120",total-size="9880"@}
3189
+download,@{section=".text",section-sent="5632",section-size="6668",
3190
total-sent="5632",total-size="9880"@}
3191
+download,@{section=".text",section-sent="6144",section-size="6668",
3192
total-sent="6144",total-size="9880"@}
3193
+download,@{section=".text",section-sent="6656",section-size="6668",
3194
total-sent="6656",total-size="9880"@}
3195
+download,@{section=".init",section-size="28",total-size="9880"@}
3196
+download,@{section=".fini",section-size="28",total-size="9880"@}
3197
+download,@{section=".data",section-size="3156",total-size="9880"@}
3198
+download,@{section=".data",section-sent="512",section-size="3156",
3199
total-sent="7236",total-size="9880"@}
3200
+download,@{section=".data",section-sent="1024",section-size="3156",
3201
total-sent="7748",total-size="9880"@}
3202
+download,@{section=".data",section-sent="1536",section-size="3156",
3203
total-sent="8260",total-size="9880"@}
3204
+download,@{section=".data",section-sent="2048",section-size="3156",
3205
total-sent="8772",total-size="9880"@}
3206
+download,@{section=".data",section-sent="2560",section-size="3156",
3207
total-sent="9284",total-size="9880"@}
3208
+download,@{section=".data",section-sent="3072",section-size="3156",
3209
total-sent="9796",total-size="9880"@}
3210
^done,address="0x10004",load-size="9880",transfer-rate="6586",
3211
write-rate="429"
3212
(@value{GDBP})
3213
@end smallexample
3214
 
3215
 
3216
@subheading The @code{-target-exec-status} Command
3217
@findex -target-exec-status
3218
 
3219
@subsubheading Synopsis
3220
 
3221
@example
3222
 -target-exec-status
3223
@end example
3224
 
3225
Provide information on the state of the target (whether it is running or
3226
not, for instance).
3227
 
3228
@subsubheading @value{GDBN} Command
3229
 
3230
There's no equivalent @value{GDBN} command.
3231
 
3232
@subsubheading Example
3233
N.A.
3234
 
3235
 
3236
@subheading The @code{-target-list-available-targets} Command
3237
@findex -target-list-available-targets
3238
 
3239
@subsubheading Synopsis
3240
 
3241
@example
3242
 -target-list-available-targets
3243
@end example
3244
 
3245
List the possible targets to connect to.
3246
 
3247
@subsubheading @value{GDBN} Command
3248
 
3249
The corresponding @value{GDBN} command is @samp{help target}.
3250
 
3251
@subsubheading Example
3252
N.A.
3253
 
3254
 
3255
@subheading The @code{-target-list-current-targets} Command
3256
@findex -target-list-current-targets
3257
 
3258
@subsubheading Synopsis
3259
 
3260
@example
3261
 -target-list-current-targets
3262
@end example
3263
 
3264
Describe the current target.
3265
 
3266
@subsubheading @value{GDBN} Command
3267
 
3268
The corresponding information is printed by @samp{info file} (among
3269
other things).
3270
 
3271
@subsubheading Example
3272
N.A.
3273
 
3274
 
3275
@subheading The @code{-target-list-parameters} Command
3276
@findex -target-list-parameters
3277
 
3278
@subsubheading Synopsis
3279
 
3280
@example
3281
 -target-list-parameters
3282
@end example
3283
 
3284
@c ????
3285
 
3286
@subsubheading @value{GDBN} Command
3287
 
3288
No equivalent.
3289
 
3290
@subsubheading Example
3291
N.A.
3292
 
3293
 
3294
@subheading The @code{-target-select} Command
3295
@findex -target-select
3296
 
3297
@subsubheading Synopsis
3298
 
3299
@example
3300
 -target-select @var{type} @var{parameters @dots{}}
3301
@end example
3302
 
3303
Connect @value{GDBN} to the remote target.  This command takes two args:
3304
 
3305
@table @samp
3306
@item @var{type}
3307
The type of target, for instance @samp{async}, @samp{remote}, etc.
3308
@item @var{parameters}
3309
Device names, host names and the like.  @xref{Target Commands, ,
3310
Commands for managing targets}, for more details.
3311
@end table
3312
 
3313
The output is a connection notification, followed by the address at
3314
which the target program is, in the following form:
3315
 
3316
@smallexample
3317
^connected,addr="@var{address}",func="@var{function name}",
3318
  args=[@var{arg list}]
3319
@end smallexample
3320
 
3321
@subsubheading @value{GDBN} Command
3322
 
3323
The corresponding @value{GDBN} command is @samp{target}.
3324
 
3325
@subsubheading Example
3326
 
3327
@smallexample
3328
(@value{GDBP})
3329
-target-select async /dev/ttya
3330
^connected,addr="0xfe00a300",func="??",args=[]
3331
(@value{GDBP})
3332
@end smallexample
3333
 
3334
@c %%%%%%%%%%%%%%%%%%%%%%%%%%%% SECTION %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3335
@node GDB/MI Thread Commands
3336
@section @sc{gdb/mi} Thread Commands
3337
 
3338
 
3339
@subheading The @code{-thread-info} Command
3340
@findex -thread-info
3341
 
3342
@subsubheading Synopsis
3343
 
3344
@example
3345
 -thread-info
3346
@end example
3347
 
3348
@subsubheading @value{GDBN} command
3349
 
3350
No equivalent.
3351
 
3352
@subsubheading Example
3353
N.A.
3354
 
3355
 
3356
@subheading The @code{-thread-list-all-threads} Command
3357
@findex -thread-list-all-threads
3358
 
3359
@subsubheading Synopsis
3360
 
3361
@example
3362
 -thread-list-all-threads
3363
@end example
3364
 
3365
@subsubheading @value{GDBN} Command
3366
 
3367
The equivalent @value{GDBN} command is @samp{info threads}.
3368
 
3369
@subsubheading Example
3370
N.A.
3371
 
3372
 
3373
@subheading The @code{-thread-list-ids} Command
3374
@findex -thread-list-ids
3375
 
3376
@subsubheading Synopsis
3377
 
3378
@example
3379
 -thread-list-ids
3380
@end example
3381
 
3382
Produces a list of the currently known @value{GDBN} thread ids.  At the
3383
end of the list it also prints the total number of such threads.
3384
 
3385
@subsubheading @value{GDBN} Command
3386
 
3387
Part of @samp{info threads} supplies the same information.
3388
 
3389
@subsubheading Example
3390
 
3391
No threads present, besides the main process:
3392
 
3393
@smallexample
3394
(@value{GDBP})
3395
-thread-list-ids
3396
^done,thread-ids=@{@},number-of-threads="0"
3397
(@value{GDBP})
3398
@end smallexample
3399
 
3400
 
3401
Several threads:
3402
 
3403
@smallexample
3404
(@value{GDBP})
3405
-thread-list-ids
3406
^done,thread-ids=@{thread-id="3",thread-id="2",thread-id="1"@},
3407
number-of-threads="3"
3408
(@value{GDBP})
3409
@end smallexample
3410
 
3411
 
3412
@subheading The @code{-thread-select} Command
3413
@findex -thread-select
3414
 
3415
@subsubheading Synopsis
3416
 
3417
@example
3418
 -thread-select @var{threadnum}
3419
@end example
3420
 
3421
Make @var{threadnum} the current thread.  It prints the number of the new
3422
current thread, and the topmost frame for that thread.
3423
 
3424
@subsubheading @value{GDBN} Command
3425
 
3426
The corresponding @value{GDBN} command is @samp{thread}.
3427
 
3428
@subsubheading Example
3429
 
3430
@smallexample
3431
(@value{GDBP})
3432
-exec-next
3433
^running
3434
(@value{GDBP})
3435
*stopped,reason="end-stepping-range",thread-id="2",line="187",
3436
file="../../../devo/gdb/testsuite/gdb.threads/linux-dp.c"
3437
(@value{GDBP})
3438
-thread-list-ids
3439
^done,
3440
thread-ids=@{thread-id="3",thread-id="2",thread-id="1"@},
3441
number-of-threads="3"
3442
(@value{GDBP})
3443
-thread-select 3
3444
^done,new-thread-id="3",
3445
frame=@{level="0 ",func="vprintf",
3446
args=[@{name="format",value="0x8048e9c \"%*s%c %d %c\\n\""@},
3447
@{name="arg",value="0x2"@}],file="vprintf.c",line="31"@}
3448
(@value{GDBP})
3449
@end smallexample
3450
 
3451
@c %%%%%%%%%%%%%%%%%%%%%%%%%%%% SECTION %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3452
@node GDB/MI Tracepoint Commands
3453
@section @sc{gdb/mi} Tracepoint Commands
3454
 
3455
The tracepoint commands are not yet implemented.
3456
 
3457
@c @subheading -trace-actions
3458
 
3459
@c @subheading -trace-delete
3460
 
3461
@c @subheading -trace-disable
3462
 
3463
@c @subheading -trace-dump
3464
 
3465
@c @subheading -trace-enable
3466
 
3467
@c @subheading -trace-exists
3468
 
3469
@c @subheading -trace-find
3470
 
3471
@c @subheading -trace-frame-number
3472
 
3473
@c @subheading -trace-info
3474
 
3475
@c @subheading -trace-insert
3476
 
3477
@c @subheading -trace-list
3478
 
3479
@c @subheading -trace-pass-count
3480
 
3481
@c @subheading -trace-save
3482
 
3483
@c @subheading -trace-start
3484
 
3485
@c @subheading -trace-stop
3486
 
3487
 
3488
@c %%%%%%%%%%%%%%%%%%%%%%%%%%%% SECTION %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3489
@node GDB/MI Variable Objects
3490
@section @sc{gdb/mi} Variable Objects
3491
 
3492
 
3493
@subheading Motivation for Variable Objects in @sc{gdb/mi}
3494
 
3495
For the implementation of a variable debugger window (locals, watched
3496
expressions, etc.), we are proposing the adaptation of the existing code
3497
used by @code{Insight}.
3498
 
3499
The two main reasons for that are:
3500
 
3501
@enumerate 1
3502
@item
3503
It has been proven in practice (it is already on its second generation).
3504
 
3505
@item
3506
It will shorten development time (needless to say how important it is
3507
now).
3508
@end enumerate
3509
 
3510
The original interface was designed to be used by Tcl code, so it was
3511
slightly changed so it could be used through @sc{gdb/mi}.  This section
3512
describes the @sc{gdb/mi} operations that will be available and gives some
3513
hints about their use.
3514
 
3515
@emph{Note}: In addition to the set of operations described here, we
3516
expect the @sc{gui} implementation of a variable window to require, at
3517
least, the following operations:
3518
 
3519
@itemize @bullet
3520
@item @code{-gdb-show} @code{output-radix}
3521
@item @code{-stack-list-arguments}
3522
@item @code{-stack-list-locals}
3523
@item @code{-stack-select-frame}
3524
@end itemize
3525
 
3526
@subheading Introduction to Variable Objects in @sc{gdb/mi}
3527
 
3528
@cindex variable objects in @sc{gdb/mi}
3529
The basic idea behind variable objects is the creation of a named object
3530
to represent a variable, an expression, a memory location or even a CPU
3531
register.  For each object created, a set of operations is available for
3532
examining or changing its properties.
3533
 
3534
Furthermore, complex data types, such as C structures, are represented
3535
in a tree format.  For instance, the @code{struct} type variable is the
3536
root and the children will represent the struct members.  If a child
3537
is itself of a complex type, it will also have children of its own.
3538
Appropriate language differences are handled for C, C@t{++} and Java.
3539
 
3540
When returning the actual values of the objects, this facility allows
3541
for the individual selection of the display format used in the result
3542
creation.  It can be chosen among: binary, decimal, hexadecimal, octal
3543
and natural.  Natural refers to a default format automatically
3544
chosen based on the variable type (like decimal for an @code{int}, hex
3545
for pointers, etc.).
3546
 
3547
The following is the complete set of @sc{gdb/mi} operations defined to
3548
access this functionality:
3549
 
3550
@multitable @columnfractions .4 .6
3551
@item @strong{Operation}
3552
@tab @strong{Description}
3553
 
3554
@item @code{-var-create}
3555
@tab create a variable object
3556
@item @code{-var-delete}
3557
@tab delete the variable object and its children
3558
@item @code{-var-set-format}
3559
@tab set the display format of this variable
3560
@item @code{-var-show-format}
3561
@tab show the display format of this variable
3562
@item @code{-var-info-num-children}
3563
@tab tells how many children this object has
3564
@item @code{-var-list-children}
3565
@tab return a list of the object's children
3566
@item @code{-var-info-type}
3567
@tab show the type of this variable object
3568
@item @code{-var-info-expression}
3569
@tab print what this variable object represents
3570
@item @code{-var-show-attributes}
3571
@tab is this variable editable? does it exist here?
3572
@item @code{-var-evaluate-expression}
3573
@tab get the value of this variable
3574
@item @code{-var-assign}
3575
@tab set the value of this variable
3576
@item @code{-var-update}
3577
@tab update the variable and its children
3578
@end multitable
3579
 
3580
In the next subsection we describe each operation in detail and suggest
3581
how it can be used.
3582
 
3583
@subheading Description And Use of Operations on Variable Objects
3584
 
3585
@subheading The @code{-var-create} Command
3586
@findex -var-create
3587
 
3588
@subsubheading Synopsis
3589
 
3590
@example
3591
 -var-create @{@var{name} | "-"@}
3592
    @{@var{frame-addr} | "*"@} @var{expression}
3593
@end example
3594
 
3595
This operation creates a variable object, which allows the monitoring of
3596
a variable, the result of an expression, a memory cell or a CPU
3597
register.
3598
 
3599
The @var{name} parameter is the string by which the object can be
3600
referenced.  It must be unique.  If @samp{-} is specified, the varobj
3601
system will generate a string ``varNNNNNN'' automatically.  It will be
3602
unique provided that one does not specify @var{name} on that format.
3603
The command fails if a duplicate name is found.
3604
 
3605
The frame under which the expression should be evaluated can be
3606
specified by @var{frame-addr}.  A @samp{*} indicates that the current
3607
frame should be used.
3608
 
3609
@var{expression} is any expression valid on the current language set (must not
3610
begin with a @samp{*}), or one of the following:
3611
 
3612
@itemize @bullet
3613
@item
3614
@samp{*@var{addr}}, where @var{addr} is the address of a memory cell
3615
 
3616
@item
3617
@samp{*@var{addr}-@var{addr}} --- a memory address range (TBD)
3618
 
3619
@item
3620
@samp{$@var{regname}} --- a CPU register name
3621
@end itemize
3622
 
3623
@subsubheading Result
3624
 
3625
This operation returns the name, number of children and the type of the
3626
object created.  Type is returned as a string as the ones generated by
3627
the @value{GDBN} CLI:
3628
 
3629
@example
3630
 name="@var{name}",numchild="N",type="@var{type}"
3631
@end example
3632
 
3633
 
3634
@subheading The @code{-var-delete} Command
3635
@findex -var-delete
3636
 
3637
@subsubheading Synopsis
3638
 
3639
@example
3640
 -var-delete @var{name}
3641
@end example
3642
 
3643
Deletes a previously created variable object and all of its children.
3644
 
3645
Returns an error if the object @var{name} is not found.
3646
 
3647
 
3648
@subheading The @code{-var-set-format} Command
3649
@findex -var-set-format
3650
 
3651
@subsubheading Synopsis
3652
 
3653
@example
3654
 -var-set-format @var{name} @var{format-spec}
3655
@end example
3656
 
3657
Sets the output format for the value of the object @var{name} to be
3658
@var{format-spec}.
3659
 
3660
The syntax for the @var{format-spec} is as follows:
3661
 
3662
@example
3663
 @var{format-spec} @expansion{}
3664
 @{binary | decimal | hexadecimal | octal | natural@}
3665
@end example
3666
 
3667
 
3668
@subheading The @code{-var-show-format} Command
3669
@findex -var-show-format
3670
 
3671
@subsubheading Synopsis
3672
 
3673
@example
3674
 -var-show-format @var{name}
3675
@end example
3676
 
3677
Returns the format used to display the value of the object @var{name}.
3678
 
3679
@example
3680
 @var{format} @expansion{}
3681
 @var{format-spec}
3682
@end example
3683
 
3684
 
3685
@subheading The @code{-var-info-num-children} Command
3686
@findex -var-info-num-children
3687
 
3688
@subsubheading Synopsis
3689
 
3690
@example
3691
 -var-info-num-children @var{name}
3692
@end example
3693
 
3694
Returns the number of children of a variable object @var{name}:
3695
 
3696
@example
3697
 numchild=@var{n}
3698
@end example
3699
 
3700
 
3701
@subheading The @code{-var-list-children} Command
3702
@findex -var-list-children
3703
 
3704
@subsubheading Synopsis
3705
 
3706
@example
3707
 -var-list-children @var{name}
3708
@end example
3709
 
3710
Returns a list of the children of the specified variable object:
3711
 
3712
@example
3713
 numchild=@var{n},children=@{@{name=@var{name},
3714
 numchild=@var{n},type=@var{type}@},@r{(repeats N times)}@}
3715
@end example
3716
 
3717
 
3718
@subheading The @code{-var-info-type} Command
3719
@findex -var-info-type
3720
 
3721
@subsubheading Synopsis
3722
 
3723
@example
3724
 -var-info-type @var{name}
3725
@end example
3726
 
3727
Returns the type of the specified variable @var{name}.  The type is
3728
returned as a string in the same format as it is output by the
3729
@value{GDBN} CLI:
3730
 
3731
@example
3732
 type=@var{typename}
3733
@end example
3734
 
3735
 
3736
@subheading The @code{-var-info-expression} Command
3737
@findex -var-info-expression
3738
 
3739
@subsubheading Synopsis
3740
 
3741
@example
3742
 -var-info-expression @var{name}
3743
@end example
3744
 
3745
Returns what is represented by the variable object @var{name}:
3746
 
3747
@example
3748
 lang=@var{lang-spec},exp=@var{expression}
3749
@end example
3750
 
3751
@noindent
3752
where @var{lang-spec} is @code{@{"C" | "C++" | "Java"@}}.
3753
 
3754
@subheading The @code{-var-show-attributes} Command
3755
@findex -var-show-attributes
3756
 
3757
@subsubheading Synopsis
3758
 
3759
@example
3760
 -var-show-attributes @var{name}
3761
@end example
3762
 
3763
List attributes of the specified variable object @var{name}:
3764
 
3765
@example
3766
 status=@var{attr} [ ( ,@var{attr} )* ]
3767
@end example
3768
 
3769
@noindent
3770
where @var{attr} is @code{@{ @{ editable | noneditable @} | TBD @}}.
3771
 
3772
@subheading The @code{-var-evaluate-expression} Command
3773
@findex -var-evaluate-expression
3774
 
3775
@subsubheading Synopsis
3776
 
3777
@example
3778
 -var-evaluate-expression @var{name}
3779
@end example
3780
 
3781
Evaluates the expression that is represented by the specified variable
3782
object and returns its value as a string in the current format specified
3783
for the object:
3784
 
3785
@example
3786
 value=@var{value}
3787
@end example
3788
 
3789
@subheading The @code{-var-assign} Command
3790
@findex -var-assign
3791
 
3792
@subsubheading Synopsis
3793
 
3794
@example
3795
 -var-assign @var{name} @var{expression}
3796
@end example
3797
 
3798
Assigns the value of @var{expression} to the variable object specified
3799
by @var{name}.  The object must be @samp{editable}.
3800
 
3801
@subheading The @code{-var-update} Command
3802
@findex -var-update
3803
 
3804
@subsubheading Synopsis
3805
 
3806
@example
3807
 -var-update @{@var{name} | "*"@}
3808
@end example
3809
 
3810
Update the value of the variable object @var{name} by evaluating its
3811
expression after fetching all the new values from memory or registers.
3812
A @samp{*} causes all existing variable objects to be updated.

powered by: WebSVN 2.1.0

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