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