453f0ad1f1cae11874a4f3c4aa7b8d53686b0b15
[gdbmicli.git] / doc / reference.html
1 <html>
2 <head>
3 <title>GDB/MI library</title>
4 </head>
5 <body>
6 <H1>GDB/MI library</H1>
7
8 This document describes the functions of libmigdb library
9
10 <p>
11
12 This document applies to version 0.8.10 of the GDB/Machine interface
13 library.
14
15 <p>
16
17 Most of the C++ interface is fully documented. But not all the C
18 interface is docummented.
19
20 <p>
21
22 The name of the high level C functions are derived from the corresponding
23 GDB/MI command. For this reason I recommend using the chapter 'GDB/MI' of
24 gdb documentation as main reference. As an example: The gdb command
25 '-thread-list-ids' is implemented in the gmi_thread_list_ids function. This
26 function uses the lowlevel function mi_thread_list_ids.
27
28 <p>
29
30 The mi_gdb.h header contains a lot of comments about what does each
31 function. And the examples show how to them together.
32
33 <p>
34
35
36
37 <Menu>
38 <li><a href="#Alphabetical List">Alphabetical list of functions</a>
39 <li><a href="#Classes">List by classes</a>
40 <li><a href="#Modules">List by modules</a>
41 <li><a href="#Files">List by files</a>
42 <li><a href="#Command">List by GDB/MI command</a>
43 </Menu>
44
45
46
47 <p><hr></p>
48 <a name="Alphabetical List"></a>
49 <H1>Alphabetical List</H1>
50
51 <Menu>
52 <li><a href="#BreakDelete (MIDebugger)">BreakDelete (MIDebugger)</a>
53 <li><a href="#Breakpoint (MIDebugger)">Breakpoint (MIDebugger)</a>
54 <li><a href="#Breakpoint (MIDebugger) <1>">Breakpoint (MIDebugger) <1></a>
55 <li><a href="#BreakpointFull (MIDebugger)">BreakpointFull (MIDebugger)</a>
56 <li><a href="#CallStack (MIDebugger)">CallStack (MIDebugger)</a>
57 <li><a href="#Connect (MIDebugger)">Connect (MIDebugger)</a>
58 <li><a href="#Continue (MIDebugger)">Continue (MIDebugger)</a>
59 <li><a href="#Disconnect (MIDebugger)">Disconnect (MIDebugger)</a>
60 <li><a href="#EvalExpression (MIDebugger)">EvalExpression (MIDebugger)</a>
61 <li><a href="#FillTypeVal (MIDebugger)">FillTypeVal (MIDebugger)</a>
62 <li><a href="#FinishFun (MIDebugger)">FinishFun (MIDebugger)</a>
63 <li><a href="#gmi_break_delete">gmi_break_delete</a>
64 <li><a href="#gmi_break_insert">gmi_break_insert</a>
65 <li><a href="#gmi_break_insert_full">gmi_break_insert_full</a>
66 <li><a href="#gmi_break_insert_full_fl">gmi_break_insert_full_fl</a>
67 <li><a href="#gmi_break_set_condition">gmi_break_set_condition</a>
68 <li><a href="#gmi_break_set_times">gmi_break_set_times</a>
69 <li><a href="#gmi_break_state">gmi_break_state</a>
70 <li><a href="#gmi_break_watch">gmi_break_watch</a>
71 <li><a href="#gmi_data_evaluate_expression">gmi_data_evaluate_expression</a>
72 <li><a href="#gmi_dir">gmi_dir</a>
73 <li><a href="#gmi_end_aux_term">gmi_end_aux_term</a>
74 <li><a href="#gmi_end_pty">gmi_end_pty</a>
75 <li><a href="#gmi_exec_continue">gmi_exec_continue</a>
76 <li><a href="#gmi_exec_finish">gmi_exec_finish</a>
77 <li><a href="#gmi_exec_interrupt">gmi_exec_interrupt</a>
78 <li><a href="#gmi_exec_kill">gmi_exec_kill</a>
79 <li><a href="#gmi_exec_next">gmi_exec_next</a>
80 <li><a href="#gmi_exec_next_cnt">gmi_exec_next_cnt</a>
81 <li><a href="#gmi_exec_next_instruction">gmi_exec_next_instruction</a>
82 <li><a href="#gmi_exec_return">gmi_exec_return</a>
83 <li><a href="#gmi_exec_run">gmi_exec_run</a>
84 <li><a href="#gmi_exec_step">gmi_exec_step</a>
85 <li><a href="#gmi_exec_step_cnt">gmi_exec_step_cnt</a>
86 <li><a href="#gmi_exec_step_instruction">gmi_exec_step_instruction</a>
87 <li><a href="#gmi_exec_until">gmi_exec_until</a>
88 <li><a href="#gmi_exec_until_addr">gmi_exec_until_addr</a>
89 <li><a href="#gmi_file_symbol_file">gmi_file_symbol_file</a>
90 <li><a href="#gmi_full_var_create">gmi_full_var_create</a>
91 <li><a href="#gmi_gdb_exit">gmi_gdb_exit</a>
92 <li><a href="#gmi_gdb_set">gmi_gdb_set</a>
93 <li><a href="#gmi_gdb_show">gmi_gdb_show</a>
94 <li><a href="#gmi_gdb_version">gmi_gdb_version</a>
95 <li><a href="#gmi_look_for_free_pty">gmi_look_for_free_pty</a>
96 <li><a href="#gmi_look_for_free_vt">gmi_look_for_free_vt</a>
97 <li><a href="#gmi_set_exec">gmi_set_exec</a>
98 <li><a href="#gmi_stack_info_depth">gmi_stack_info_depth</a>
99 <li><a href="#gmi_stack_info_depth_get">gmi_stack_info_depth_get</a>
100 <li><a href="#gmi_stack_info_frame">gmi_stack_info_frame</a>
101 <li><a href="#gmi_stack_list_arguments">gmi_stack_list_arguments</a>
102 <li><a href="#gmi_stack_list_arguments_r">gmi_stack_list_arguments_r</a>
103 <li><a href="#gmi_stack_list_frames">gmi_stack_list_frames</a>
104 <li><a href="#gmi_stack_list_frames_r">gmi_stack_list_frames_r</a>
105 <li><a href="#gmi_stack_list_locals">gmi_stack_list_locals</a>
106 <li><a href="#gmi_stack_select_frame">gmi_stack_select_frame</a>
107 <li><a href="#gmi_start_xterm">gmi_start_xterm</a>
108 <li><a href="#gmi_target_attach">gmi_target_attach</a>
109 <li><a href="#gmi_target_detach">gmi_target_detach</a>
110 <li><a href="#gmi_target_select">gmi_target_select</a>
111 <li><a href="#gmi_target_terminal">gmi_target_terminal</a>
112 <li><a href="#gmi_thread_list_all_threads">gmi_thread_list_all_threads</a>
113 <li><a href="#gmi_thread_list_ids">gmi_thread_list_ids</a>
114 <li><a href="#gmi_thread_select">gmi_thread_select</a>
115 <li><a href="#gmi_var_assign">gmi_var_assign</a>
116 <li><a href="#gmi_var_create">gmi_var_create</a>
117 <li><a href="#gmi_var_create_nm">gmi_var_create_nm</a>
118 <li><a href="#gmi_var_delete">gmi_var_delete</a>
119 <li><a href="#gmi_var_evaluate_expression">gmi_var_evaluate_expression</a>
120 <li><a href="#gmi_var_info_expression">gmi_var_info_expression</a>
121 <li><a href="#gmi_var_info_num_children">gmi_var_info_num_children</a>
122 <li><a href="#gmi_var_info_type">gmi_var_info_type</a>
123 <li><a href="#gmi_var_list_children">gmi_var_list_children</a>
124 <li><a href="#gmi_var_set_format">gmi_var_set_format</a>
125 <li><a href="#gmi_var_show_attributes">gmi_var_show_attributes</a>
126 <li><a href="#gmi_var_show_format">gmi_var_show_format</a>
127 <li><a href="#gmi_var_update">gmi_var_update</a>
128 <li><a href="#GoTo (MIDebugger)">GoTo (MIDebugger)</a>
129 <li><a href="#GoTo (MIDebugger) <1>">GoTo (MIDebugger) <1></a>
130 <li><a href="#Kill (MIDebugger)">Kill (MIDebugger)</a>
131 <li><a href="#mi_connect_local">mi_connect_local</a>
132 <li><a href="#mi_disconnect">mi_disconnect</a>
133 <li><a href="#mi_force_version">mi_force_version</a>
134 <li><a href="#mi_get_error_str">mi_get_error_str</a>
135 <li><a href="#mi_get_workaround">mi_get_workaround</a>
136 <li><a href="#mi_look_for_free_pty">mi_look_for_free_pty</a>
137 <li><a href="#mi_look_for_free_vt">mi_look_for_free_vt</a>
138 <li><a href="#mi_set_workaround">mi_set_workaround</a>
139 <li><a href="#MIDebugger (MIDebugger)">MIDebugger (MIDebugger)</a>
140 <li><a href="#ModifyExpression (MIDebugger)">ModifyExpression (MIDebugger)</a>
141 <li><a href="#Poll (MIDebugger)">Poll (MIDebugger)</a>
142 <li><a href="#ReturnNow (MIDebugger)">ReturnNow (MIDebugger)</a>
143 <li><a href="#Run (MIDebugger)">Run (MIDebugger)</a>
144 <li><a href="#RunOrContinue (MIDebugger)">RunOrContinue (MIDebugger)</a>
145 <li><a href="#RunToMain (MIDebugger)">RunToMain (MIDebugger)</a>
146 <li><a href="#SelectTargetLinux (MIDebugger)">SelectTargetLinux (MIDebugger)</a>
147 <li><a href="#SelectTargetPID (MIDebugger)">SelectTargetPID (MIDebugger)</a>
148 <li><a href="#SelectTargetRemote (MIDebugger)">SelectTargetRemote (MIDebugger)</a>
149 <li><a href="#SelectTargetTTY (MIDebugger)">SelectTargetTTY (MIDebugger)</a>
150 <li><a href="#SelectTargetX11 (MIDebugger)">SelectTargetX11 (MIDebugger)</a>
151 <li><a href="#Send (MIDebugger)">Send (MIDebugger)</a>
152 <li><a href="#StepOver (MIDebugger)">StepOver (MIDebugger)</a>
153 <li><a href="#Stop (MIDebugger)">Stop (MIDebugger)</a>
154 <li><a href="#TargetUnselect (MIDebugger)">TargetUnselect (MIDebugger)</a>
155 <li><a href="#TraceInto (MIDebugger)">TraceInto (MIDebugger)</a>
156 <li><a href="#WatchDelete (MIDebugger)">WatchDelete (MIDebugger)</a>
157 <li><a href="#Watchpoint (MIDebugger)">Watchpoint (MIDebugger)</a>
158 <li><a href="#~MIDebugger (MIDebugger)">~MIDebugger (MIDebugger)</a>
159 </Menu>
160
161
162
163 <p><hr></p>
164 <a name="Classes"></a>
165 <H1>Classes</H1>
166
167 <Menu>
168 <li><a href="#MIDebugger (class)">MIDebugger</a>
169 </Menu>
170
171
172 <p><hr></p>
173 <a name="MIDebugger (class)"></a>
174 <H1>MIDebugger</H1>
175
176
177
178 <Menu>
179 <li><a href="#BreakDelete (MIDebugger)">BreakDelete (MIDebugger)</a>
180 <li><a href="#Breakpoint (MIDebugger)">Breakpoint (MIDebugger)</a>
181 <li><a href="#Breakpoint (MIDebugger) <1>">Breakpoint (MIDebugger) <1></a>
182 <li><a href="#BreakpointFull (MIDebugger)">BreakpointFull (MIDebugger)</a>
183 <li><a href="#CallStack (MIDebugger)">CallStack (MIDebugger)</a>
184 <li><a href="#Connect (MIDebugger)">Connect (MIDebugger)</a>
185 <li><a href="#Continue (MIDebugger)">Continue (MIDebugger)</a>
186 <li><a href="#Disconnect (MIDebugger)">Disconnect (MIDebugger)</a>
187 <li><a href="#EvalExpression (MIDebugger)">EvalExpression (MIDebugger)</a>
188 <li><a href="#FillTypeVal (MIDebugger)">FillTypeVal (MIDebugger)</a>
189 <li><a href="#FinishFun (MIDebugger)">FinishFun (MIDebugger)</a>
190 <li><a href="#GoTo (MIDebugger)">GoTo (MIDebugger)</a>
191 <li><a href="#GoTo (MIDebugger) <1>">GoTo (MIDebugger) <1></a>
192 <li><a href="#Kill (MIDebugger)">Kill (MIDebugger)</a>
193 <li><a href="#MIDebugger (MIDebugger)">MIDebugger (MIDebugger)</a>
194 <li><a href="#ModifyExpression (MIDebugger)">ModifyExpression (MIDebugger)</a>
195 <li><a href="#Poll (MIDebugger)">Poll (MIDebugger)</a>
196 <li><a href="#ReturnNow (MIDebugger)">ReturnNow (MIDebugger)</a>
197 <li><a href="#Run (MIDebugger)">Run (MIDebugger)</a>
198 <li><a href="#RunOrContinue (MIDebugger)">RunOrContinue (MIDebugger)</a>
199 <li><a href="#RunToMain (MIDebugger)">RunToMain (MIDebugger)</a>
200 <li><a href="#SelectTargetLinux (MIDebugger)">SelectTargetLinux (MIDebugger)</a>
201 <li><a href="#SelectTargetPID (MIDebugger)">SelectTargetPID (MIDebugger)</a>
202 <li><a href="#SelectTargetRemote (MIDebugger)">SelectTargetRemote (MIDebugger)</a>
203 <li><a href="#SelectTargetTTY (MIDebugger)">SelectTargetTTY (MIDebugger)</a>
204 <li><a href="#SelectTargetX11 (MIDebugger)">SelectTargetX11 (MIDebugger)</a>
205 <li><a href="#Send (MIDebugger)">Send (MIDebugger)</a>
206 <li><a href="#StepOver (MIDebugger)">StepOver (MIDebugger)</a>
207 <li><a href="#Stop (MIDebugger)">Stop (MIDebugger)</a>
208 <li><a href="#TargetUnselect (MIDebugger)">TargetUnselect (MIDebugger)</a>
209 <li><a href="#TraceInto (MIDebugger)">TraceInto (MIDebugger)</a>
210 <li><a href="#WatchDelete (MIDebugger)">WatchDelete (MIDebugger)</a>
211 <li><a href="#Watchpoint (MIDebugger)">Watchpoint (MIDebugger)</a>
212 <li><a href="#~MIDebugger (MIDebugger)">~MIDebugger (MIDebugger)</a>
213 </Menu>
214
215
216
217 <p><hr></p>
218 <a name="Modules"></a>
219 <H1>Modules</H1>
220
221 <Menu>
222 <li><a href="#Allocator.">Allocator.</a>
223 <li><a href="#Breakpoint table commands.">Breakpoint table commands.</a>
224 <li><a href="#C++ Interface.">C++ Interface.</a>
225 <li><a href="#Connect.">Connect.</a>
226 <li><a href="#Data manipulation.">Data manipulation.</a>
227 <li><a href="#Error.
228   Comment:
229   Translates error numbers into messages.">Error.
230   Comment:
231   Translates error numbers into messages.</a>
232 <li><a href="#Linux VT.">Linux VT.</a>
233 <li><a href="#Miscellaneous commands.">Miscellaneous commands.</a>
234 <li><a href="#Parser.">Parser.</a>
235 <li><a href="#Program control.">Program control.</a>
236 <li><a href="#pseudo terminal">pseudo terminal</a>
237 <li><a href="#Stack manipulation.">Stack manipulation.</a>
238 <li><a href="#Symbol query.">Symbol query.</a>
239 <li><a href="#Target manipulation.">Target manipulation.</a>
240 <li><a href="#Thread commands.">Thread commands.</a>
241 <li><a href="#Variable objects.">Variable objects.</a>
242 </Menu>
243
244
245 <p><hr></p>
246 <a name="Allocator."></a>
247 <H1>Allocator.</H1>
248
249 Most alloc/free routines are here. Free routines must accept NULL
250 pointers. Alloc functions must set mi_error.
251 <p>
252
253
254 <Menu>
255 </Menu>
256
257
258
259 <p><hr></p>
260 <a name="Breakpoint table commands."></a>
261 <H1>Breakpoint table commands.</H1>
262
263 GDB/MI commands for the "Breakpoint Table Commands" section.
264 <p>
265
266
267 <pre>
268 gdb command:          Implemented?
269
270 -break-after          Yes
271 -break-condition      Yes
272 -break-delete         Yes
273 -break-disable        Yes
274 -break-enable         Yes
275 -break-info           N.A. (info break NUMBER) (*)
276 -break-insert         Yes
277 -break-list           No (*)
278 -break-watch          Yes
279 </pre>
280
281 (*) I think the program should keep track of the breakpoints, so it will
282 be implemented when I have more time.
283 <p>
284
285
286 <Menu>
287 <li><a href="#gmi_break_delete">gmi_break_delete</a>
288 <li><a href="#gmi_break_insert">gmi_break_insert</a>
289 <li><a href="#gmi_break_insert_full">gmi_break_insert_full</a>
290 <li><a href="#gmi_break_insert_full_fl">gmi_break_insert_full_fl</a>
291 <li><a href="#gmi_break_set_condition">gmi_break_set_condition</a>
292 <li><a href="#gmi_break_set_times">gmi_break_set_times</a>
293 <li><a href="#gmi_break_state">gmi_break_state</a>
294 <li><a href="#gmi_break_watch">gmi_break_watch</a>
295 </Menu>
296
297
298
299 <p><hr></p>
300 <a name="C++ Interface."></a>
301 <H1>C++ Interface.</H1>
302
303 Implements a very simple (naive ;-) C++ wrapper.
304 <p>
305
306
307 <Menu>
308 <li><a href="#BreakDelete (MIDebugger)">BreakDelete (MIDebugger)</a>
309 <li><a href="#Breakpoint (MIDebugger)">Breakpoint (MIDebugger)</a>
310 <li><a href="#Breakpoint (MIDebugger) <1>">Breakpoint (MIDebugger) <1></a>
311 <li><a href="#BreakpointFull (MIDebugger)">BreakpointFull (MIDebugger)</a>
312 <li><a href="#CallStack (MIDebugger)">CallStack (MIDebugger)</a>
313 <li><a href="#Connect (MIDebugger)">Connect (MIDebugger)</a>
314 <li><a href="#Continue (MIDebugger)">Continue (MIDebugger)</a>
315 <li><a href="#Disconnect (MIDebugger)">Disconnect (MIDebugger)</a>
316 <li><a href="#EvalExpression (MIDebugger)">EvalExpression (MIDebugger)</a>
317 <li><a href="#FillTypeVal (MIDebugger)">FillTypeVal (MIDebugger)</a>
318 <li><a href="#FinishFun (MIDebugger)">FinishFun (MIDebugger)</a>
319 <li><a href="#GoTo (MIDebugger)">GoTo (MIDebugger)</a>
320 <li><a href="#GoTo (MIDebugger) <1>">GoTo (MIDebugger) <1></a>
321 <li><a href="#Kill (MIDebugger)">Kill (MIDebugger)</a>
322 <li><a href="#MIDebugger (MIDebugger)">MIDebugger (MIDebugger)</a>
323 <li><a href="#ModifyExpression (MIDebugger)">ModifyExpression (MIDebugger)</a>
324 <li><a href="#Poll (MIDebugger)">Poll (MIDebugger)</a>
325 <li><a href="#ReturnNow (MIDebugger)">ReturnNow (MIDebugger)</a>
326 <li><a href="#Run (MIDebugger)">Run (MIDebugger)</a>
327 <li><a href="#RunOrContinue (MIDebugger)">RunOrContinue (MIDebugger)</a>
328 <li><a href="#RunToMain (MIDebugger)">RunToMain (MIDebugger)</a>
329 <li><a href="#SelectTargetLinux (MIDebugger)">SelectTargetLinux (MIDebugger)</a>
330 <li><a href="#SelectTargetPID (MIDebugger)">SelectTargetPID (MIDebugger)</a>
331 <li><a href="#SelectTargetRemote (MIDebugger)">SelectTargetRemote (MIDebugger)</a>
332 <li><a href="#SelectTargetTTY (MIDebugger)">SelectTargetTTY (MIDebugger)</a>
333 <li><a href="#SelectTargetX11 (MIDebugger)">SelectTargetX11 (MIDebugger)</a>
334 <li><a href="#Send (MIDebugger)">Send (MIDebugger)</a>
335 <li><a href="#StepOver (MIDebugger)">StepOver (MIDebugger)</a>
336 <li><a href="#Stop (MIDebugger)">Stop (MIDebugger)</a>
337 <li><a href="#TargetUnselect (MIDebugger)">TargetUnselect (MIDebugger)</a>
338 <li><a href="#TraceInto (MIDebugger)">TraceInto (MIDebugger)</a>
339 <li><a href="#WatchDelete (MIDebugger)">WatchDelete (MIDebugger)</a>
340 <li><a href="#Watchpoint (MIDebugger)">Watchpoint (MIDebugger)</a>
341 <li><a href="#~MIDebugger (MIDebugger)">~MIDebugger (MIDebugger)</a>
342 </Menu>
343
344
345
346 <p><hr></p>
347 <a name="Connect."></a>
348 <H1>Connect.</H1>
349
350 This module handles the dialog with gdb, including starting and stopping
351 gdb.
352 <p>
353
354
355 GDB Bug workaround for "file -readnow": I tried to workaround a bug using
356 it but looks like this option also have bugs!!!! so I have to use the
357 command line option --readnow.
358 It also have a bug!!!! when the binary is changed and gdb must reload it
359 this option is ignored. So it looks like we have no solution but 3 gdb bugs
360 in a row.
361
362 <Menu>
363 <li><a href="#gmi_end_aux_term">gmi_end_aux_term</a>
364 <li><a href="#gmi_start_xterm">gmi_start_xterm</a>
365 <li><a href="#mi_connect_local">mi_connect_local</a>
366 <li><a href="#mi_disconnect">mi_disconnect</a>
367 <li><a href="#mi_force_version">mi_force_version</a>
368 <li><a href="#mi_get_workaround">mi_get_workaround</a>
369 <li><a href="#mi_set_workaround">mi_set_workaround</a>
370 </Menu>
371
372
373
374 <p><hr></p>
375 <a name="Data manipulation."></a>
376 <H1>Data manipulation.</H1>
377
378 GDB/MI commands for the "Data manipulation" section.
379 <p>
380
381
382 <pre>
383 gdb command:                       Implemented?
384
385 -data-disassemble                  Yes
386 -data-evaluate-expression          Yes
387 -data-list-changed-registers       No
388 -data-list-register-names          Yes
389 -data-list-register-values         No
390 -data-read-memory                  No
391 -display-delete                    N.A. (delete display)
392 -display-disable                   N.A. (disable display)
393 -display-enable                    N.A. (enable display)
394 -display-insert                    N.A. (display)
395 -display-list                      N.A. (info display)
396 -environment-cd                    No
397 -environment-directory             Yes, MI v1 implementation
398 -environment-path                  No
399 </pre>
400
401 Notes:
402 <p>
403
404
405 1) -display* aren't implemented. You can use CLI command display, but the
406 results are sent to the console. So it looks like the best is to manually
407 use -data-evaluate-expression to emulate it.
408 <p>
409
410
411 2) GDB bug mi/1770: Affects gdb&lt;=6.2, when you ask for the names of the
412 registers you get it plus the name of the "pseudo-registers", but if you
413 try to get the value of a pseudo-register you get an error saying the
414 register number is invalid. I reported to gdb-patches@sources.redhat.com
415 on 2004/08/25 and as I didn't get any answer I filled a bug report on
416 2004/09/02. The patch to fix this annoying bug is:
417
418 Index: gdb/mi/mi-main.c
419 ===================================================================
420 RCS file: /cvs/src/src/gdb/mi/mi-main.c,v
421 retrieving revision 1.64
422 diff -u -r1.64 mi-main.c
423 --- gdb/mi/mi-main.c    3 Aug 2004 00:57:27 -0000       1.64
424 +++ gdb/mi/mi-main.c    25 Aug 2004 14:12:50 -0000
425 @ -423,7 +423,7 @
426       case, some entries of REGISTER_NAME will change depending upon
427       the particular processor being debugged.
428
429 -  numregs = NUM_REGS;
430 +  numregs = NUM_REGS + NUM_PSEUDO_REGS;
431
432    if (argc == 0)
433      {
434 ----
435
436 Note I had to remove an end of comment in the patch to include it here.
437 This bug forced me to create another set of functions. The only way is to
438 first get the values and then the names.
439 Fixed by Changelog entry:
440
441 2004-09-12  Salvador E. Tropea  &lt;set@users.sf.net&gt;
442             Andrew Cagney  &lt;cagney@gnu.org&gt;
443
444         * mi/mi-main.c (mi_cmd_data_list_changed_registers)
445         (mi_cmd_data_list_register_values)
446         (mi_cmd_data_write_register_values): Include the PSEUDO_REGS in
447         the register number computation.
448
449 <Menu>
450 <li><a href="#gmi_data_evaluate_expression">gmi_data_evaluate_expression</a>
451 <li><a href="#gmi_dir">gmi_dir</a>
452 </Menu>
453
454
455
456 <p><hr></p>
457 <a name="Error.
458   Comment:
459   Translates error numbers into messages."></a>
460 <H1>Error.
461   Comment:
462   Translates error numbers into messages.</H1>
463
464
465
466 <Menu>
467 <li><a href="#mi_get_error_str">mi_get_error_str</a>
468 </Menu>
469
470
471
472 <p><hr></p>
473 <a name="Linux VT."></a>
474 <H1>Linux VT.</H1>
475
476 Helper to find a free VT. That's 100% Linux specific.
477 <p>
478
479   The code comes from "lconsole.c" from Allegro project and was originally
480 created by Marek Habersack and then modified by George Foot. I addapted it
481 to my needs and changed license from giftware to GPL.
482 <p>
483
484
485 <Menu>
486 <li><a href="#gmi_look_for_free_vt">gmi_look_for_free_vt</a>
487 <li><a href="#mi_look_for_free_vt">mi_look_for_free_vt</a>
488 </Menu>
489
490
491
492 <p><hr></p>
493 <a name="Miscellaneous commands."></a>
494 <H1>Miscellaneous commands.</H1>
495
496 GDB/MI commands for the "Miscellaneous Commands" section.
497 <p>
498
499
500 <pre>
501 gdb command:       Implemented?
502
503 -gdb-exit          Yes
504 -gdb-set           Yes
505 -gdb-show          Yes
506 -gdb-version       Yes
507 </pre>
508
509 <Menu>
510 <li><a href="#gmi_gdb_exit">gmi_gdb_exit</a>
511 <li><a href="#gmi_gdb_set">gmi_gdb_set</a>
512 <li><a href="#gmi_gdb_show">gmi_gdb_show</a>
513 <li><a href="#gmi_gdb_version">gmi_gdb_version</a>
514 </Menu>
515
516
517
518 <p><hr></p>
519 <a name="Parser."></a>
520 <H1>Parser.</H1>
521
522 Parses the output of gdb. It basically converts the text from gdb into a
523 tree (could be a complex one) that we can easily interpret using C code.
524
525 <Menu>
526 </Menu>
527
528
529
530 <p><hr></p>
531 <a name="Program control."></a>
532 <H1>Program control.</H1>
533
534 GDB/MI commands for the "Program Control" section.
535 <p>
536
537
538 <pre>
539 gdb command:                   Implemented?
540
541 -exec-abort                    N.A. (*) (kill, but with non-interactive options)
542 -exec-arguments                Yes
543 -exec-continue                 Yes  ASYNC
544 -exec-finish                   Yes  ASYNC
545 -exec-interrupt                Yes  ASYNC
546 -exec-next                     Yes  ASYNC
547 -exec-next-instruction         Yes  ASYNC
548 -exec-return                   Yes
549 -exec-run                      Yes  ASYNC
550 -exec-show-arguments           N.A. (show args) see gmi_stack_info_frame
551 -exec-step                     Yes  ASYNC
552 -exec-step-instruction         Yes  ASYNC
553 -exec-until                    Yes  ASYNC
554 -file-exec-and-symbols         Yes
555 -file-exec-file                No
556 -file-list-exec-sections       N.A. (info file)
557 -file-list-exec-source-files   N.A.
558 -file-list-shared-libraries    N.A.
559 -file-list-symbol-files        N.A.
560 -file-symbol-file              Yes
561 </pre>
562
563 (*)  gmi_exec_kill implements it, but you should ensure that
564 gmi_gdb_set("confirm","off") was called.
565 <p>
566
567
568 GDB Bug workaround for -file-exec-and-symbols and -file-symbol-file: This
569 is complex, but a real bug. When you set a breakpoint you never know the
570 name of the file as it appears in the debug info. So you can be specifying
571 an absolute file name or a relative file name. The reference point could be
572 different than the one used in the debug info. To solve all the combinations
573 gdb does a search trying various combinations. GDB isn't very smart so you
574 must at least specify the working directory and the directory where the
575 binary is located to get a good chance (+ user options to solve the rest).
576 Once you did it gdb can find the file by doing transformations to the
577 "canonical" filename. This search works OK for already loaded symtabs
578 (symbol tables), but it have a bug when the search is done for psymtabs
579 (partial symtabs). The bug is in the use of source_full_path_of (source.c).
580 This function calls openp indicating try_cwd_first. It makes the search file
581 if the psymtab file name have at least one dirseparator. It means that
582 psymtabs for files compiled with relative paths will fail. The search for
583 symtabs uses symtab_to_filename, it calls open_source_file which finally
584 calls openp without try_cwd_first.<br>
585 To workaround this bug we must ensure gdb loads *all* the symtabs to memory.
586 And here comes another problem -file-exec-and-symbols doesn't support it
587 according to docs. In real life that's a wrapper for "file", but as nobody
588 can say it won't change we must use the CLI command.
589
590 <Menu>
591 <li><a href="#gmi_exec_continue">gmi_exec_continue</a>
592 <li><a href="#gmi_exec_finish">gmi_exec_finish</a>
593 <li><a href="#gmi_exec_interrupt">gmi_exec_interrupt</a>
594 <li><a href="#gmi_exec_kill">gmi_exec_kill</a>
595 <li><a href="#gmi_exec_next">gmi_exec_next</a>
596 <li><a href="#gmi_exec_next_cnt">gmi_exec_next_cnt</a>
597 <li><a href="#gmi_exec_next_instruction">gmi_exec_next_instruction</a>
598 <li><a href="#gmi_exec_return">gmi_exec_return</a>
599 <li><a href="#gmi_exec_run">gmi_exec_run</a>
600 <li><a href="#gmi_exec_step">gmi_exec_step</a>
601 <li><a href="#gmi_exec_step_cnt">gmi_exec_step_cnt</a>
602 <li><a href="#gmi_exec_step_instruction">gmi_exec_step_instruction</a>
603 <li><a href="#gmi_exec_until">gmi_exec_until</a>
604 <li><a href="#gmi_exec_until_addr">gmi_exec_until_addr</a>
605 <li><a href="#gmi_file_symbol_file">gmi_file_symbol_file</a>
606 <li><a href="#gmi_set_exec">gmi_set_exec</a>
607 <li><a href="#gmi_target_terminal">gmi_target_terminal</a>
608 </Menu>
609
610
611
612 <p><hr></p>
613 <a name="pseudo terminal"></a>
614 <H1>pseudo terminal</H1>
615
616 Helper to find a free pseudo terminal. Use this if you need to manage
617   input *and* output to the target process. If you just need output then
618   define a handler for target output stream records (assuming that this
619   is working for your particular version of gdb).
620   Usage:
621
622         mi_pty *pty = gmi_look_for_free_pty();
623         if (pty) gmi_target_terminal(mih, pty-&gt;slave);
624         ...
625         * reading from pty-&gt;master will get stdout from target *
626         * writing to pty-&gt;master will send to target stdin *
627         
628   Note: Contributed by Greg Watson (gwatson lanl gov)
629
630 <Menu>
631 <li><a href="#gmi_end_pty">gmi_end_pty</a>
632 <li><a href="#gmi_look_for_free_pty">gmi_look_for_free_pty</a>
633 <li><a href="#mi_look_for_free_pty">mi_look_for_free_pty</a>
634 </Menu>
635
636
637
638 <p><hr></p>
639 <a name="Stack manipulation."></a>
640 <H1>Stack manipulation.</H1>
641
642 GDB/MI commands for the "Stack Manipulation" section.
643 <p>
644
645
646 <pre>
647 gdb command:              Implemented?
648
649 -stack-info-frame         Yes, implemented as "frame"
650 -stack-info-depth         Yes
651 -stack-list-arguments     Yes
652 -stack-list-frames        Yes
653 -stack-list-locals        Yes
654 -stack-select-frame       Yes
655 </pre>
656
657 <Menu>
658 <li><a href="#gmi_stack_info_depth">gmi_stack_info_depth</a>
659 <li><a href="#gmi_stack_info_depth_get">gmi_stack_info_depth_get</a>
660 <li><a href="#gmi_stack_info_frame">gmi_stack_info_frame</a>
661 <li><a href="#gmi_stack_list_arguments">gmi_stack_list_arguments</a>
662 <li><a href="#gmi_stack_list_arguments_r">gmi_stack_list_arguments_r</a>
663 <li><a href="#gmi_stack_list_frames">gmi_stack_list_frames</a>
664 <li><a href="#gmi_stack_list_frames_r">gmi_stack_list_frames_r</a>
665 <li><a href="#gmi_stack_list_locals">gmi_stack_list_locals</a>
666 <li><a href="#gmi_stack_select_frame">gmi_stack_select_frame</a>
667 </Menu>
668
669
670
671 <p><hr></p>
672 <a name="Symbol query."></a>
673 <H1>Symbol query.</H1>
674
675 GDB/MI commands for the "Symbol Query" section.
676 <p>
677
678
679 <pre>
680 gdb command:              Implemented?
681 -symbol-info-address      N.A. (info address, human readable)
682 -symbol-info-file         N.A.
683 -symbol-info-function     N.A.
684 -symbol-info-line         N.A. (info line, human readable)
685 -symbol-info-symbol       N.A. (info symbol, human readable)
686 -symbol-list-functions    N.A. (info functions, human readable)
687 -symbol-list-types        N.A. (info types, human readable)
688 -symbol-list-variables    N.A. (info variables, human readable)
689 -symbol-list-lines        No (gdb 6.x)
690 -symbol-locate            N.A.
691 -symbol-type              N.A. (ptype, human readable)
692 </pre>
693
694 Note:
695 <p>
696
697
698 Only one is implemented and not in gdb 5.x.
699 <p>
700
701
702 <Menu>
703 </Menu>
704
705
706
707 <p><hr></p>
708 <a name="Target manipulation."></a>
709 <H1>Target manipulation.</H1>
710
711 GDB/MI commands for the "Target Manipulation" section.
712 <p>
713
714
715 <pre>
716 -target-attach                  Yes (implemented using attach)
717 -target-compare-sections        N.A. (compare-sections)
718 -target-detach                  Yes
719 -target-download                No
720 -target-exec-status             N.A.
721 -target-list-available-targets  N.A. (help target)
722 -target-list-current-targets    N.A. (info file among other things)
723 -target-list-parameters         N.A.
724 -target-select                  Yes
725 </pre>
726
727 <Menu>
728 <li><a href="#gmi_target_attach">gmi_target_attach</a>
729 <li><a href="#gmi_target_detach">gmi_target_detach</a>
730 <li><a href="#gmi_target_select">gmi_target_select</a>
731 </Menu>
732
733
734
735 <p><hr></p>
736 <a name="Thread commands."></a>
737 <H1>Thread commands.</H1>
738
739 GDB/MI commands for the "Thread Commands" section.
740 <p>
741
742
743 <pre>
744 gdb command:              Implemented?
745 -thread-info              N.A.
746 -thread-list-all-threads  Yes, implemented as "info threads"
747 -thread-list-ids          Yes
748 -thread-select            Yes
749 </pre>
750
751 <Menu>
752 <li><a href="#gmi_thread_list_all_threads">gmi_thread_list_all_threads</a>
753 <li><a href="#gmi_thread_list_ids">gmi_thread_list_ids</a>
754 <li><a href="#gmi_thread_select">gmi_thread_select</a>
755 </Menu>
756
757
758
759 <p><hr></p>
760 <a name="Variable objects."></a>
761 <H1>Variable objects.</H1>
762
763 GDB/MI commands for the "Variable Objects" section.
764 <p>
765
766
767 <pre>
768 gdb command:              Imp? Description:
769 -var-create               Yes  create a variable object
770 -var-delete               Yes  delete the variable object and its children
771 -var-set-format           Yes  set the display format of this variable
772 -var-show-format          Yes  show the display format of this variable
773 -var-info-num-children    Yes  tells how many children this object has
774 -var-list-children        Yes* return a list of the object's children
775 -var-info-type            Yes  show the type of this variable object
776 -var-info-expression      Yes  print what this variable object represents
777 -var-show-attributes      Yes  is this variable editable?
778 -var-evaluate-expression  Yes  get the value of this variable
779 -var-assign               Yes  set the value of this variable
780 -var-update               Yes* update the variable and its children
781 </pre>
782
783 Notes:
784 <p>
785
786 1) I suggest letting gdb to choose the names for the variables.<br>
787 2) -var-list-children supports an optional "show values" argument in MI v2.
788 It isn't implemented.<br>
789
790 <p>
791
792
793 * MI v1 and v2 result formats supported.
794 <p>
795
796
797 <Menu>
798 <li><a href="#gmi_full_var_create">gmi_full_var_create</a>
799 <li><a href="#gmi_var_assign">gmi_var_assign</a>
800 <li><a href="#gmi_var_create">gmi_var_create</a>
801 <li><a href="#gmi_var_create_nm">gmi_var_create_nm</a>
802 <li><a href="#gmi_var_delete">gmi_var_delete</a>
803 <li><a href="#gmi_var_evaluate_expression">gmi_var_evaluate_expression</a>
804 <li><a href="#gmi_var_info_expression">gmi_var_info_expression</a>
805 <li><a href="#gmi_var_info_num_children">gmi_var_info_num_children</a>
806 <li><a href="#gmi_var_info_type">gmi_var_info_type</a>
807 <li><a href="#gmi_var_list_children">gmi_var_list_children</a>
808 <li><a href="#gmi_var_set_format">gmi_var_set_format</a>
809 <li><a href="#gmi_var_show_attributes">gmi_var_show_attributes</a>
810 <li><a href="#gmi_var_show_format">gmi_var_show_format</a>
811 <li><a href="#gmi_var_update">gmi_var_update</a>
812 </Menu>
813
814
815
816 <p><hr></p>
817 <a name="Files"></a>
818 <H1>Files</H1>
819
820 <Menu>
821 <li><a href="#breakpoint.c">breakpoint.c</a>
822 <li><a href="#connect.c">connect.c</a>
823 <li><a href="#cpp_int.cc">cpp_int.cc</a>
824 <li><a href="#data_man.c">data_man.c</a>
825 <li><a href="#error.c">error.c</a>
826 <li><a href="#get_free_pty.c">get_free_pty.c</a>
827 <li><a href="#get_free_vt.c">get_free_vt.c</a>
828 <li><a href="#misc.c">misc.c</a>
829 <li><a href="#prg_control.c">prg_control.c</a>
830 <li><a href="#stack_man.c">stack_man.c</a>
831 <li><a href="#target_man.c">target_man.c</a>
832 <li><a href="#thread.c">thread.c</a>
833 <li><a href="#var_obj.c">var_obj.c</a>
834 </Menu>
835
836
837 <p><hr></p>
838 <a name="breakpoint.c"></a>
839 <H1>breakpoint.c</H1>
840
841
842
843 <Menu>
844 <li><a href="#gmi_break_delete">gmi_break_delete</a>
845 <li><a href="#gmi_break_insert">gmi_break_insert</a>
846 <li><a href="#gmi_break_insert_full">gmi_break_insert_full</a>
847 <li><a href="#gmi_break_insert_full_fl">gmi_break_insert_full_fl</a>
848 <li><a href="#gmi_break_set_condition">gmi_break_set_condition</a>
849 <li><a href="#gmi_break_set_times">gmi_break_set_times</a>
850 <li><a href="#gmi_break_state">gmi_break_state</a>
851 <li><a href="#gmi_break_watch">gmi_break_watch</a>
852 </Menu>
853
854
855
856 <p><hr></p>
857 <a name="connect.c"></a>
858 <H1>connect.c</H1>
859
860
861
862 <Menu>
863 <li><a href="#gmi_end_aux_term">gmi_end_aux_term</a>
864 <li><a href="#gmi_start_xterm">gmi_start_xterm</a>
865 <li><a href="#mi_connect_local">mi_connect_local</a>
866 <li><a href="#mi_disconnect">mi_disconnect</a>
867 <li><a href="#mi_force_version">mi_force_version</a>
868 <li><a href="#mi_get_workaround">mi_get_workaround</a>
869 <li><a href="#mi_set_workaround">mi_set_workaround</a>
870 </Menu>
871
872
873
874 <p><hr></p>
875 <a name="cpp_int.cc"></a>
876 <H1>cpp_int.cc</H1>
877
878
879
880 <Menu>
881 <li><a href="#BreakDelete (MIDebugger)">BreakDelete (MIDebugger)</a>
882 <li><a href="#Breakpoint (MIDebugger)">Breakpoint (MIDebugger)</a>
883 <li><a href="#Breakpoint (MIDebugger) <1>">Breakpoint (MIDebugger) <1></a>
884 <li><a href="#BreakpointFull (MIDebugger)">BreakpointFull (MIDebugger)</a>
885 <li><a href="#CallStack (MIDebugger)">CallStack (MIDebugger)</a>
886 <li><a href="#Connect (MIDebugger)">Connect (MIDebugger)</a>
887 <li><a href="#Continue (MIDebugger)">Continue (MIDebugger)</a>
888 <li><a href="#Disconnect (MIDebugger)">Disconnect (MIDebugger)</a>
889 <li><a href="#EvalExpression (MIDebugger)">EvalExpression (MIDebugger)</a>
890 <li><a href="#FillTypeVal (MIDebugger)">FillTypeVal (MIDebugger)</a>
891 <li><a href="#FinishFun (MIDebugger)">FinishFun (MIDebugger)</a>
892 <li><a href="#GoTo (MIDebugger)">GoTo (MIDebugger)</a>
893 <li><a href="#GoTo (MIDebugger) <1>">GoTo (MIDebugger) <1></a>
894 <li><a href="#Kill (MIDebugger)">Kill (MIDebugger)</a>
895 <li><a href="#MIDebugger (MIDebugger)">MIDebugger (MIDebugger)</a>
896 <li><a href="#ModifyExpression (MIDebugger)">ModifyExpression (MIDebugger)</a>
897 <li><a href="#Poll (MIDebugger)">Poll (MIDebugger)</a>
898 <li><a href="#ReturnNow (MIDebugger)">ReturnNow (MIDebugger)</a>
899 <li><a href="#Run (MIDebugger)">Run (MIDebugger)</a>
900 <li><a href="#RunOrContinue (MIDebugger)">RunOrContinue (MIDebugger)</a>
901 <li><a href="#RunToMain (MIDebugger)">RunToMain (MIDebugger)</a>
902 <li><a href="#SelectTargetLinux (MIDebugger)">SelectTargetLinux (MIDebugger)</a>
903 <li><a href="#SelectTargetPID (MIDebugger)">SelectTargetPID (MIDebugger)</a>
904 <li><a href="#SelectTargetRemote (MIDebugger)">SelectTargetRemote (MIDebugger)</a>
905 <li><a href="#SelectTargetTTY (MIDebugger)">SelectTargetTTY (MIDebugger)</a>
906 <li><a href="#SelectTargetX11 (MIDebugger)">SelectTargetX11 (MIDebugger)</a>
907 <li><a href="#Send (MIDebugger)">Send (MIDebugger)</a>
908 <li><a href="#StepOver (MIDebugger)">StepOver (MIDebugger)</a>
909 <li><a href="#Stop (MIDebugger)">Stop (MIDebugger)</a>
910 <li><a href="#TargetUnselect (MIDebugger)">TargetUnselect (MIDebugger)</a>
911 <li><a href="#TraceInto (MIDebugger)">TraceInto (MIDebugger)</a>
912 <li><a href="#WatchDelete (MIDebugger)">WatchDelete (MIDebugger)</a>
913 <li><a href="#Watchpoint (MIDebugger)">Watchpoint (MIDebugger)</a>
914 <li><a href="#~MIDebugger (MIDebugger)">~MIDebugger (MIDebugger)</a>
915 </Menu>
916
917
918
919 <p><hr></p>
920 <a name="data_man.c"></a>
921 <H1>data_man.c</H1>
922
923
924
925 <Menu>
926 <li><a href="#gmi_data_evaluate_expression">gmi_data_evaluate_expression</a>
927 <li><a href="#gmi_dir">gmi_dir</a>
928 </Menu>
929
930
931
932 <p><hr></p>
933 <a name="error.c"></a>
934 <H1>error.c</H1>
935
936
937
938 <Menu>
939 <li><a href="#mi_get_error_str">mi_get_error_str</a>
940 </Menu>
941
942
943
944 <p><hr></p>
945 <a name="get_free_pty.c"></a>
946 <H1>get_free_pty.c</H1>
947
948
949
950 <Menu>
951 <li><a href="#gmi_end_pty">gmi_end_pty</a>
952 <li><a href="#gmi_look_for_free_pty">gmi_look_for_free_pty</a>
953 <li><a href="#mi_look_for_free_pty">mi_look_for_free_pty</a>
954 </Menu>
955
956
957
958 <p><hr></p>
959 <a name="get_free_vt.c"></a>
960 <H1>get_free_vt.c</H1>
961
962
963
964 <Menu>
965 <li><a href="#gmi_look_for_free_vt">gmi_look_for_free_vt</a>
966 <li><a href="#mi_look_for_free_vt">mi_look_for_free_vt</a>
967 </Menu>
968
969
970
971 <p><hr></p>
972 <a name="misc.c"></a>
973 <H1>misc.c</H1>
974
975
976
977 <Menu>
978 <li><a href="#gmi_gdb_exit">gmi_gdb_exit</a>
979 <li><a href="#gmi_gdb_set">gmi_gdb_set</a>
980 <li><a href="#gmi_gdb_show">gmi_gdb_show</a>
981 <li><a href="#gmi_gdb_version">gmi_gdb_version</a>
982 </Menu>
983
984
985
986 <p><hr></p>
987 <a name="prg_control.c"></a>
988 <H1>prg_control.c</H1>
989
990
991
992 <Menu>
993 <li><a href="#gmi_exec_continue">gmi_exec_continue</a>
994 <li><a href="#gmi_exec_finish">gmi_exec_finish</a>
995 <li><a href="#gmi_exec_interrupt">gmi_exec_interrupt</a>
996 <li><a href="#gmi_exec_kill">gmi_exec_kill</a>
997 <li><a href="#gmi_exec_next">gmi_exec_next</a>
998 <li><a href="#gmi_exec_next_cnt">gmi_exec_next_cnt</a>
999 <li><a href="#gmi_exec_next_instruction">gmi_exec_next_instruction</a>
1000 <li><a href="#gmi_exec_return">gmi_exec_return</a>
1001 <li><a href="#gmi_exec_run">gmi_exec_run</a>
1002 <li><a href="#gmi_exec_step">gmi_exec_step</a>
1003 <li><a href="#gmi_exec_step_cnt">gmi_exec_step_cnt</a>
1004 <li><a href="#gmi_exec_step_instruction">gmi_exec_step_instruction</a>
1005 <li><a href="#gmi_exec_until">gmi_exec_until</a>
1006 <li><a href="#gmi_exec_until_addr">gmi_exec_until_addr</a>
1007 <li><a href="#gmi_file_symbol_file">gmi_file_symbol_file</a>
1008 <li><a href="#gmi_set_exec">gmi_set_exec</a>
1009 <li><a href="#gmi_target_terminal">gmi_target_terminal</a>
1010 </Menu>
1011
1012
1013
1014 <p><hr></p>
1015 <a name="stack_man.c"></a>
1016 <H1>stack_man.c</H1>
1017
1018
1019
1020 <Menu>
1021 <li><a href="#gmi_stack_info_depth">gmi_stack_info_depth</a>
1022 <li><a href="#gmi_stack_info_depth_get">gmi_stack_info_depth_get</a>
1023 <li><a href="#gmi_stack_info_frame">gmi_stack_info_frame</a>
1024 <li><a href="#gmi_stack_list_arguments">gmi_stack_list_arguments</a>
1025 <li><a href="#gmi_stack_list_arguments_r">gmi_stack_list_arguments_r</a>
1026 <li><a href="#gmi_stack_list_frames">gmi_stack_list_frames</a>
1027 <li><a href="#gmi_stack_list_frames_r">gmi_stack_list_frames_r</a>
1028 <li><a href="#gmi_stack_list_locals">gmi_stack_list_locals</a>
1029 <li><a href="#gmi_stack_select_frame">gmi_stack_select_frame</a>
1030 </Menu>
1031
1032
1033
1034 <p><hr></p>
1035 <a name="target_man.c"></a>
1036 <H1>target_man.c</H1>
1037
1038
1039
1040 <Menu>
1041 <li><a href="#gmi_target_attach">gmi_target_attach</a>
1042 <li><a href="#gmi_target_detach">gmi_target_detach</a>
1043 <li><a href="#gmi_target_select">gmi_target_select</a>
1044 </Menu>
1045
1046
1047
1048 <p><hr></p>
1049 <a name="thread.c"></a>
1050 <H1>thread.c</H1>
1051
1052
1053
1054 <Menu>
1055 <li><a href="#gmi_thread_list_all_threads">gmi_thread_list_all_threads</a>
1056 <li><a href="#gmi_thread_list_ids">gmi_thread_list_ids</a>
1057 <li><a href="#gmi_thread_select">gmi_thread_select</a>
1058 </Menu>
1059
1060
1061
1062 <p><hr></p>
1063 <a name="var_obj.c"></a>
1064 <H1>var_obj.c</H1>
1065
1066
1067
1068 <Menu>
1069 <li><a href="#gmi_full_var_create">gmi_full_var_create</a>
1070 <li><a href="#gmi_var_assign">gmi_var_assign</a>
1071 <li><a href="#gmi_var_create">gmi_var_create</a>
1072 <li><a href="#gmi_var_create_nm">gmi_var_create_nm</a>
1073 <li><a href="#gmi_var_delete">gmi_var_delete</a>
1074 <li><a href="#gmi_var_evaluate_expression">gmi_var_evaluate_expression</a>
1075 <li><a href="#gmi_var_info_expression">gmi_var_info_expression</a>
1076 <li><a href="#gmi_var_info_num_children">gmi_var_info_num_children</a>
1077 <li><a href="#gmi_var_info_type">gmi_var_info_type</a>
1078 <li><a href="#gmi_var_list_children">gmi_var_list_children</a>
1079 <li><a href="#gmi_var_set_format">gmi_var_set_format</a>
1080 <li><a href="#gmi_var_show_attributes">gmi_var_show_attributes</a>
1081 <li><a href="#gmi_var_show_format">gmi_var_show_format</a>
1082 <li><a href="#gmi_var_update">gmi_var_update</a>
1083 </Menu>
1084
1085
1086
1087 <p><hr></p>
1088 <a name="Command"></a>
1089 <H1>Command</H1>
1090
1091 <Menu>
1092 <li><a href="#-break-after">-break-after</a>
1093 <li><a href="#-break-condition">-break-condition</a>
1094 <li><a href="#-break-delete">-break-delete</a>
1095 <li><a href="#-break-enable + -break-disable">-break-enable + -break-disable</a>
1096 <li><a href="#-break-insert">-break-insert</a>
1097 <li><a href="#-break-insert [ops] file:line">-break-insert [ops] file:line</a>
1098 <li><a href="#-break-insert file:line">-break-insert file:line</a>
1099 <li><a href="#-break-watch">-break-watch</a>
1100 <li><a href="#-data-evaluate-expression">-data-evaluate-expression</a>
1101 <li><a href="#-environment-directory">-environment-directory</a>
1102 <li><a href="#-exec-abort [using kill]">-exec-abort [using kill]</a>
1103 <li><a href="#-exec-continue">-exec-continue</a>
1104 <li><a href="#-exec-finish">-exec-finish</a>
1105 <li><a href="#-exec-interrupt [replacement]">-exec-interrupt [replacement]</a>
1106 <li><a href="#-exec-next">-exec-next</a>
1107 <li><a href="#-exec-next count">-exec-next count</a>
1108 <li><a href="#-exec-next-instruction">-exec-next-instruction</a>
1109 <li><a href="#-exec-return">-exec-return</a>
1110 <li><a href="#-exec-run">-exec-run</a>
1111 <li><a href="#-exec-step">-exec-step</a>
1112 <li><a href="#-exec-step count">-exec-step count</a>
1113 <li><a href="#-exec-step-instruction">-exec-step-instruction</a>
1114 <li><a href="#-exec-until">-exec-until</a>
1115 <li><a href="#-exec-until (using *address)">-exec-until (using *address)</a>
1116 <li><a href="#-file-exec-and-symbols + -exec-arguments">-file-exec-and-symbols + -exec-arguments</a>
1117 <li><a href="#-file-symbol-file">-file-symbol-file</a>
1118 <li><a href="#-gdb-exit">-gdb-exit</a>
1119 <li><a href="#-gdb-set">-gdb-set</a>
1120 <li><a href="#-gdb-show">-gdb-show</a>
1121 <li><a href="#-gdb-version">-gdb-version</a>
1122 <li><a href="#-stack-info-depth">-stack-info-depth</a>
1123 <li><a href="#-stack-info-depth [no args]">-stack-info-depth [no args]</a>
1124 <li><a href="#-stack-info-frame [using frame]">-stack-info-frame [using frame]</a>
1125 <li><a href="#-stack-list-arguments">-stack-list-arguments</a>
1126 <li><a href="#-stack-list-frames">-stack-list-frames</a>
1127 <li><a href="#-stack-list-locals">-stack-list-locals</a>
1128 <li><a href="#-stack-select-frame">-stack-select-frame</a>
1129 <li><a href="#-target-attach [using attach]">-target-attach [using attach]</a>
1130 <li><a href="#-target-detach">-target-detach</a>
1131 <li><a href="#-target-select">-target-select</a>
1132 <li><a href="#-thread-list-all-threads">-thread-list-all-threads</a>
1133 <li><a href="#-thread-list-ids">-thread-list-ids</a>
1134 <li><a href="#-thread-select">-thread-select</a>
1135 <li><a href="#-var-assign">-var-assign</a>
1136 <li><a href="#-var-create">-var-create</a>
1137 <li><a href="#-var-create + -var-info-expression + -var-show-attributes">-var-create + -var-info-expression + -var-show-attributes</a>
1138 <li><a href="#-var-create [auto name]">-var-create [auto name]</a>
1139 <li><a href="#-var-delete">-var-delete</a>
1140 <li><a href="#-var-evaluate-expression">-var-evaluate-expression</a>
1141 <li><a href="#-var-info-expression">-var-info-expression</a>
1142 <li><a href="#-var-info-num-children">-var-info-num-children</a>
1143 <li><a href="#-var-info-type">-var-info-type</a>
1144 <li><a href="#-var-list-children">-var-list-children</a>
1145 <li><a href="#-var-set-format">-var-set-format</a>
1146 <li><a href="#-var-show-attributes">-var-show-attributes</a>
1147 <li><a href="#-var-show-format">-var-show-format</a>
1148 <li><a href="#-var-update">-var-update</a>
1149 <li><a href="#tty">tty</a>
1150 </Menu>
1151
1152
1153 <p><hr></p>
1154 <a name="-break-after"></a>
1155 <H1>-break-after</H1>
1156
1157
1158
1159 <Menu>
1160 <li><a href="#gmi_break_set_times">gmi_break_set_times</a>
1161 </Menu>
1162
1163
1164
1165 <p><hr></p>
1166 <a name="-break-condition"></a>
1167 <H1>-break-condition</H1>
1168
1169
1170
1171 <Menu>
1172 <li><a href="#gmi_break_set_condition">gmi_break_set_condition</a>
1173 </Menu>
1174
1175
1176
1177 <p><hr></p>
1178 <a name="-break-delete"></a>
1179 <H1>-break-delete</H1>
1180
1181
1182
1183 <Menu>
1184 <li><a href="#gmi_break_delete">gmi_break_delete</a>
1185 </Menu>
1186
1187
1188
1189 <p><hr></p>
1190 <a name="-break-enable + -break-disable"></a>
1191 <H1>-break-enable + -break-disable</H1>
1192
1193
1194
1195 <Menu>
1196 <li><a href="#gmi_break_state">gmi_break_state</a>
1197 </Menu>
1198
1199
1200
1201 <p><hr></p>
1202 <a name="-break-insert"></a>
1203 <H1>-break-insert</H1>
1204
1205
1206
1207 <Menu>
1208 <li><a href="#gmi_break_insert_full">gmi_break_insert_full</a>
1209 </Menu>
1210
1211
1212
1213 <p><hr></p>
1214 <a name="-break-insert [ops] file:line"></a>
1215 <H1>-break-insert [ops] file:line</H1>
1216
1217
1218
1219 <Menu>
1220 <li><a href="#gmi_break_insert_full_fl">gmi_break_insert_full_fl</a>
1221 </Menu>
1222
1223
1224
1225 <p><hr></p>
1226 <a name="-break-insert file:line"></a>
1227 <H1>-break-insert file:line</H1>
1228
1229
1230
1231 <Menu>
1232 <li><a href="#gmi_break_insert">gmi_break_insert</a>
1233 </Menu>
1234
1235
1236
1237 <p><hr></p>
1238 <a name="-break-watch"></a>
1239 <H1>-break-watch</H1>
1240
1241
1242
1243 <Menu>
1244 <li><a href="#gmi_break_watch">gmi_break_watch</a>
1245 </Menu>
1246
1247
1248
1249 <p><hr></p>
1250 <a name="-data-evaluate-expression"></a>
1251 <H1>-data-evaluate-expression</H1>
1252
1253
1254
1255 <Menu>
1256 <li><a href="#gmi_data_evaluate_expression">gmi_data_evaluate_expression</a>
1257 </Menu>
1258
1259
1260
1261 <p><hr></p>
1262 <a name="-environment-directory"></a>
1263 <H1>-environment-directory</H1>
1264
1265
1266
1267 <Menu>
1268 <li><a href="#gmi_dir">gmi_dir</a>
1269 </Menu>
1270
1271
1272
1273 <p><hr></p>
1274 <a name="-exec-abort [using kill]"></a>
1275 <H1>-exec-abort [using kill]</H1>
1276
1277
1278
1279 <Menu>
1280 <li><a href="#gmi_exec_kill">gmi_exec_kill</a>
1281 </Menu>
1282
1283
1284
1285 <p><hr></p>
1286 <a name="-exec-continue"></a>
1287 <H1>-exec-continue</H1>
1288
1289
1290
1291 <Menu>
1292 <li><a href="#gmi_exec_continue">gmi_exec_continue</a>
1293 </Menu>
1294
1295
1296
1297 <p><hr></p>
1298 <a name="-exec-finish"></a>
1299 <H1>-exec-finish</H1>
1300
1301
1302
1303 <Menu>
1304 <li><a href="#gmi_exec_finish">gmi_exec_finish</a>
1305 </Menu>
1306
1307
1308
1309 <p><hr></p>
1310 <a name="-exec-interrupt [replacement]"></a>
1311 <H1>-exec-interrupt [replacement]</H1>
1312
1313
1314
1315 <Menu>
1316 <li><a href="#gmi_exec_interrupt">gmi_exec_interrupt</a>
1317 </Menu>
1318
1319
1320
1321 <p><hr></p>
1322 <a name="-exec-next"></a>
1323 <H1>-exec-next</H1>
1324
1325
1326
1327 <Menu>
1328 <li><a href="#gmi_exec_next">gmi_exec_next</a>
1329 </Menu>
1330
1331
1332
1333 <p><hr></p>
1334 <a name="-exec-next count"></a>
1335 <H1>-exec-next count</H1>
1336
1337
1338
1339 <Menu>
1340 <li><a href="#gmi_exec_next_cnt">gmi_exec_next_cnt</a>
1341 </Menu>
1342
1343
1344
1345 <p><hr></p>
1346 <a name="-exec-next-instruction"></a>
1347 <H1>-exec-next-instruction</H1>
1348
1349
1350
1351 <Menu>
1352 <li><a href="#gmi_exec_next_instruction">gmi_exec_next_instruction</a>
1353 </Menu>
1354
1355
1356
1357 <p><hr></p>
1358 <a name="-exec-return"></a>
1359 <H1>-exec-return</H1>
1360
1361
1362
1363 <Menu>
1364 <li><a href="#gmi_exec_return">gmi_exec_return</a>
1365 </Menu>
1366
1367
1368
1369 <p><hr></p>
1370 <a name="-exec-run"></a>
1371 <H1>-exec-run</H1>
1372
1373
1374
1375 <Menu>
1376 <li><a href="#gmi_exec_run">gmi_exec_run</a>
1377 </Menu>
1378
1379
1380
1381 <p><hr></p>
1382 <a name="-exec-step"></a>
1383 <H1>-exec-step</H1>
1384
1385
1386
1387 <Menu>
1388 <li><a href="#gmi_exec_step">gmi_exec_step</a>
1389 </Menu>
1390
1391
1392
1393 <p><hr></p>
1394 <a name="-exec-step count"></a>
1395 <H1>-exec-step count</H1>
1396
1397
1398
1399 <Menu>
1400 <li><a href="#gmi_exec_step_cnt">gmi_exec_step_cnt</a>
1401 </Menu>
1402
1403
1404
1405 <p><hr></p>
1406 <a name="-exec-step-instruction"></a>
1407 <H1>-exec-step-instruction</H1>
1408
1409
1410
1411 <Menu>
1412 <li><a href="#gmi_exec_step_instruction">gmi_exec_step_instruction</a>
1413 </Menu>
1414
1415
1416
1417 <p><hr></p>
1418 <a name="-exec-until"></a>
1419 <H1>-exec-until</H1>
1420
1421
1422
1423 <Menu>
1424 <li><a href="#gmi_exec_until">gmi_exec_until</a>
1425 </Menu>
1426
1427
1428
1429 <p><hr></p>
1430 <a name="-exec-until (using *address)"></a>
1431 <H1>-exec-until (using *address)</H1>
1432
1433
1434
1435 <Menu>
1436 <li><a href="#gmi_exec_until_addr">gmi_exec_until_addr</a>
1437 </Menu>
1438
1439
1440
1441 <p><hr></p>
1442 <a name="-file-exec-and-symbols + -exec-arguments"></a>
1443 <H1>-file-exec-and-symbols + -exec-arguments</H1>
1444
1445
1446
1447 <Menu>
1448 <li><a href="#gmi_set_exec">gmi_set_exec</a>
1449 </Menu>
1450
1451
1452
1453 <p><hr></p>
1454 <a name="-file-symbol-file"></a>
1455 <H1>-file-symbol-file</H1>
1456
1457
1458
1459 <Menu>
1460 <li><a href="#gmi_file_symbol_file">gmi_file_symbol_file</a>
1461 </Menu>
1462
1463
1464
1465 <p><hr></p>
1466 <a name="-gdb-exit"></a>
1467 <H1>-gdb-exit</H1>
1468
1469
1470
1471 <Menu>
1472 <li><a href="#gmi_gdb_exit">gmi_gdb_exit</a>
1473 </Menu>
1474
1475
1476
1477 <p><hr></p>
1478 <a name="-gdb-set"></a>
1479 <H1>-gdb-set</H1>
1480
1481
1482
1483 <Menu>
1484 <li><a href="#gmi_gdb_set">gmi_gdb_set</a>
1485 </Menu>
1486
1487
1488
1489 <p><hr></p>
1490 <a name="-gdb-show"></a>
1491 <H1>-gdb-show</H1>
1492
1493
1494
1495 <Menu>
1496 <li><a href="#gmi_gdb_show">gmi_gdb_show</a>
1497 </Menu>
1498
1499
1500
1501 <p><hr></p>
1502 <a name="-gdb-version"></a>
1503 <H1>-gdb-version</H1>
1504
1505
1506
1507 <Menu>
1508 <li><a href="#gmi_gdb_version">gmi_gdb_version</a>
1509 </Menu>
1510
1511
1512
1513 <p><hr></p>
1514 <a name="-stack-info-depth"></a>
1515 <H1>-stack-info-depth</H1>
1516
1517
1518
1519 <Menu>
1520 <li><a href="#gmi_stack_info_depth">gmi_stack_info_depth</a>
1521 </Menu>
1522
1523
1524
1525 <p><hr></p>
1526 <a name="-stack-info-depth [no args]"></a>
1527 <H1>-stack-info-depth [no args]</H1>
1528
1529
1530
1531 <Menu>
1532 <li><a href="#gmi_stack_info_depth_get">gmi_stack_info_depth_get</a>
1533 </Menu>
1534
1535
1536
1537 <p><hr></p>
1538 <a name="-stack-info-frame [using frame]"></a>
1539 <H1>-stack-info-frame [using frame]</H1>
1540
1541
1542
1543 <Menu>
1544 <li><a href="#gmi_stack_info_frame">gmi_stack_info_frame</a>
1545 </Menu>
1546
1547
1548
1549 <p><hr></p>
1550 <a name="-stack-list-arguments"></a>
1551 <H1>-stack-list-arguments</H1>
1552
1553
1554
1555 <Menu>
1556 <li><a href="#gmi_stack_list_arguments">gmi_stack_list_arguments</a>
1557 <li><a href="#gmi_stack_list_arguments_r">gmi_stack_list_arguments_r</a>
1558 </Menu>
1559
1560
1561
1562 <p><hr></p>
1563 <a name="-stack-list-frames"></a>
1564 <H1>-stack-list-frames</H1>
1565
1566
1567
1568 <Menu>
1569 <li><a href="#gmi_stack_list_frames">gmi_stack_list_frames</a>
1570 <li><a href="#gmi_stack_list_frames_r">gmi_stack_list_frames_r</a>
1571 </Menu>
1572
1573
1574
1575 <p><hr></p>
1576 <a name="-stack-list-locals"></a>
1577 <H1>-stack-list-locals</H1>
1578
1579
1580
1581 <Menu>
1582 <li><a href="#gmi_stack_list_locals">gmi_stack_list_locals</a>
1583 </Menu>
1584
1585
1586
1587 <p><hr></p>
1588 <a name="-stack-select-frame"></a>
1589 <H1>-stack-select-frame</H1>
1590
1591
1592
1593 <Menu>
1594 <li><a href="#gmi_stack_select_frame">gmi_stack_select_frame</a>
1595 </Menu>
1596
1597
1598
1599 <p><hr></p>
1600 <a name="-target-attach [using attach]"></a>
1601 <H1>-target-attach [using attach]</H1>
1602
1603
1604
1605 <Menu>
1606 <li><a href="#gmi_target_attach">gmi_target_attach</a>
1607 </Menu>
1608
1609
1610
1611 <p><hr></p>
1612 <a name="-target-detach"></a>
1613 <H1>-target-detach</H1>
1614
1615
1616
1617 <Menu>
1618 <li><a href="#gmi_target_detach">gmi_target_detach</a>
1619 </Menu>
1620
1621
1622
1623 <p><hr></p>
1624 <a name="-target-select"></a>
1625 <H1>-target-select</H1>
1626
1627
1628
1629 <Menu>
1630 <li><a href="#gmi_target_select">gmi_target_select</a>
1631 </Menu>
1632
1633
1634
1635 <p><hr></p>
1636 <a name="-thread-list-all-threads"></a>
1637 <H1>-thread-list-all-threads</H1>
1638
1639
1640
1641 <Menu>
1642 <li><a href="#gmi_thread_list_all_threads">gmi_thread_list_all_threads</a>
1643 </Menu>
1644
1645
1646
1647 <p><hr></p>
1648 <a name="-thread-list-ids"></a>
1649 <H1>-thread-list-ids</H1>
1650
1651
1652
1653 <Menu>
1654 <li><a href="#gmi_thread_list_ids">gmi_thread_list_ids</a>
1655 </Menu>
1656
1657
1658
1659 <p><hr></p>
1660 <a name="-thread-select"></a>
1661 <H1>-thread-select</H1>
1662
1663
1664
1665 <Menu>
1666 <li><a href="#gmi_thread_select">gmi_thread_select</a>
1667 </Menu>
1668
1669
1670
1671 <p><hr></p>
1672 <a name="-var-assign"></a>
1673 <H1>-var-assign</H1>
1674
1675
1676
1677 <Menu>
1678 <li><a href="#gmi_var_assign">gmi_var_assign</a>
1679 </Menu>
1680
1681
1682
1683 <p><hr></p>
1684 <a name="-var-create"></a>
1685 <H1>-var-create</H1>
1686
1687
1688
1689 <Menu>
1690 <li><a href="#gmi_var_create_nm">gmi_var_create_nm</a>
1691 </Menu>
1692
1693
1694
1695 <p><hr></p>
1696 <a name="-var-create + -var-info-expression + -var-show-attributes"></a>
1697 <H1>-var-create + -var-info-expression + -var-show-attributes</H1>
1698
1699
1700
1701 <Menu>
1702 <li><a href="#gmi_full_var_create">gmi_full_var_create</a>
1703 </Menu>
1704
1705
1706
1707 <p><hr></p>
1708 <a name="-var-create [auto name]"></a>
1709 <H1>-var-create [auto name]</H1>
1710
1711
1712
1713 <Menu>
1714 <li><a href="#gmi_var_create">gmi_var_create</a>
1715 </Menu>
1716
1717
1718
1719 <p><hr></p>
1720 <a name="-var-delete"></a>
1721 <H1>-var-delete</H1>
1722
1723
1724
1725 <Menu>
1726 <li><a href="#gmi_var_delete">gmi_var_delete</a>
1727 </Menu>
1728
1729
1730
1731 <p><hr></p>
1732 <a name="-var-evaluate-expression"></a>
1733 <H1>-var-evaluate-expression</H1>
1734
1735
1736
1737 <Menu>
1738 <li><a href="#gmi_var_evaluate_expression">gmi_var_evaluate_expression</a>
1739 </Menu>
1740
1741
1742
1743 <p><hr></p>
1744 <a name="-var-info-expression"></a>
1745 <H1>-var-info-expression</H1>
1746
1747
1748
1749 <Menu>
1750 <li><a href="#gmi_var_info_expression">gmi_var_info_expression</a>
1751 </Menu>
1752
1753
1754
1755 <p><hr></p>
1756 <a name="-var-info-num-children"></a>
1757 <H1>-var-info-num-children</H1>
1758
1759
1760
1761 <Menu>
1762 <li><a href="#gmi_var_info_num_children">gmi_var_info_num_children</a>
1763 </Menu>
1764
1765
1766
1767 <p><hr></p>
1768 <a name="-var-info-type"></a>
1769 <H1>-var-info-type</H1>
1770
1771
1772
1773 <Menu>
1774 <li><a href="#gmi_var_info_type">gmi_var_info_type</a>
1775 </Menu>
1776
1777
1778
1779 <p><hr></p>
1780 <a name="-var-list-children"></a>
1781 <H1>-var-list-children</H1>
1782
1783
1784
1785 <Menu>
1786 <li><a href="#gmi_var_list_children">gmi_var_list_children</a>
1787 </Menu>
1788
1789
1790
1791 <p><hr></p>
1792 <a name="-var-set-format"></a>
1793 <H1>-var-set-format</H1>
1794
1795
1796
1797 <Menu>
1798 <li><a href="#gmi_var_set_format">gmi_var_set_format</a>
1799 </Menu>
1800
1801
1802
1803 <p><hr></p>
1804 <a name="-var-show-attributes"></a>
1805 <H1>-var-show-attributes</H1>
1806
1807
1808
1809 <Menu>
1810 <li><a href="#gmi_var_show_attributes">gmi_var_show_attributes</a>
1811 </Menu>
1812
1813
1814
1815 <p><hr></p>
1816 <a name="-var-show-format"></a>
1817 <H1>-var-show-format</H1>
1818
1819
1820
1821 <Menu>
1822 <li><a href="#gmi_var_show_format">gmi_var_show_format</a>
1823 </Menu>
1824
1825
1826
1827 <p><hr></p>
1828 <a name="-var-update"></a>
1829 <H1>-var-update</H1>
1830
1831
1832
1833 <Menu>
1834 <li><a href="#gmi_var_update">gmi_var_update</a>
1835 </Menu>
1836
1837
1838
1839 <p><hr></p>
1840 <a name="tty"></a>
1841 <H1>tty</H1>
1842
1843
1844
1845 <Menu>
1846 <li><a href="#gmi_target_terminal">gmi_target_terminal</a>
1847 </Menu>
1848
1849
1850
1851
1852
1853 <p><hr></p>
1854 <a name="gmi_break_insert"></a>
1855 <center><Font Size=+2>gmi_break_insert</Font> (breakpoint.c 133)</center>
1856
1857 <Font Size=+1><u>Syntax</u></Font><p>
1858
1859
1860
1861 <pre>
1862  gmi_break_insert(mi_h *h, const char *file, int line);
1863 </pre>
1864
1865
1866
1867
1868 <Font Size=+1><u>Description</u></Font><p>
1869
1870 Insert a breakpoint at file:line.
1871 <p>
1872
1873
1874 <Font Size=+1><u>Return Value</u></Font><p>
1875
1876 A new mi_bkpt structure with info about the breakpoint. NULL on
1877 error.
1878 <p>
1879
1880
1881
1882 <p><hr></p>
1883 <a name="gmi_break_insert_full"></a>
1884 <center><Font Size=+2>gmi_break_insert_full</Font> (breakpoint.c 150)</center>
1885
1886 <Font Size=+1><u>Syntax</u></Font><p>
1887
1888
1889
1890 <pre>
1891  gmi_break_insert_full(mi_h *h, int temporary, int hard_assist, const char *cond, int count, int thread, const char *where);
1892 </pre>
1893
1894
1895
1896
1897 <Font Size=+1><u>Description</u></Font><p>
1898
1899 Insert a breakpoint, all available options.
1900 <p>
1901
1902
1903 <Font Size=+1><u>Return Value</u></Font><p>
1904
1905 A new mi_bkpt structure with info about the breakpoint. NULL on
1906 error.
1907 <p>
1908
1909
1910
1911 <p><hr></p>
1912 <a name="gmi_break_insert_full_fl"></a>
1913 <center><Font Size=+2>gmi_break_insert_full_fl</Font> (breakpoint.c 169)</center>
1914
1915 <Font Size=+1><u>Syntax</u></Font><p>
1916
1917
1918
1919 <pre>
1920  gmi_break_insert_full_fl(mi_h *h, const char *file, int line, int temporary, int hard_assist, const char *cond, int count, int thread);
1921 </pre>
1922
1923
1924
1925
1926 <Font Size=+1><u>Description</u></Font><p>
1927
1928 Insert a breakpoint, all available options.
1929 <p>
1930
1931
1932 <Font Size=+1><u>Return Value</u></Font><p>
1933
1934 A new mi_bkpt structure with info about the breakpoint. NULL on
1935 error.
1936 <p>
1937
1938
1939
1940 <p><hr></p>
1941 <a name="gmi_break_delete"></a>
1942 <center><Font Size=+2>gmi_break_delete</Font> (breakpoint.c 188)</center>
1943
1944 <Font Size=+1><u>Syntax</u></Font><p>
1945
1946
1947
1948 <pre>
1949  gmi_break_delete(mi_h *h, int number);
1950 </pre>
1951
1952
1953
1954
1955 <Font Size=+1><u>Description</u></Font><p>
1956
1957 Remove a breakpoint.
1958 <p>
1959
1960
1961 <Font Size=+1><u>Return Value</u></Font><p>
1962
1963 !=0 OK. Note that gdb always says OK, but errors can be sent to the
1964 console.
1965 <p>
1966
1967
1968
1969 <p><hr></p>
1970 <a name="gmi_break_set_times"></a>
1971 <center><Font Size=+2>gmi_break_set_times</Font> (breakpoint.c 205)</center>
1972
1973 <Font Size=+1><u>Syntax</u></Font><p>
1974
1975
1976
1977 <pre>
1978  gmi_break_set_times(mi_h *h, int number, int count);
1979 </pre>
1980
1981
1982
1983
1984 <Font Size=+1><u>Description</u></Font><p>
1985
1986 Modify the "ignore" count for a breakpoint.
1987 <p>
1988
1989
1990 <Font Size=+1><u>Return Value</u></Font><p>
1991
1992 !=0 OK. Note that gdb always says OK, but errors can be sent to the
1993 console.
1994 <p>
1995
1996
1997
1998 <p><hr></p>
1999 <a name="gmi_break_set_condition"></a>
2000 <center><Font Size=+2>gmi_break_set_condition</Font> (breakpoint.c 221)</center>
2001
2002 <Font Size=+1><u>Syntax</u></Font><p>
2003
2004
2005
2006 <pre>
2007  gmi_break_set_condition(mi_h *h, int number, const char *condition);
2008 </pre>
2009
2010
2011
2012
2013 <Font Size=+1><u>Description</u></Font><p>
2014
2015 Associate a condition with the breakpoint.
2016 <p>
2017
2018
2019 <Font Size=+1><u>Return Value</u></Font><p>
2020
2021 !=0 OK
2022 <p>
2023
2024
2025
2026 <p><hr></p>
2027 <a name="gmi_break_state"></a>
2028 <center><Font Size=+2>gmi_break_state</Font> (breakpoint.c 238)</center>
2029
2030 <Font Size=+1><u>Syntax</u></Font><p>
2031
2032
2033
2034 <pre>
2035  gmi_break_state(mi_h *h, int number, int enable);
2036 </pre>
2037
2038
2039
2040
2041 <Font Size=+1><u>Description</u></Font><p>
2042
2043 Enable or disable a breakpoint.
2044 <p>
2045
2046
2047 <Font Size=+1><u>Return Value</u></Font><p>
2048
2049 !=0 OK. Note that gdb always says OK, but errors can be sent to the
2050 console.
2051 <p>
2052
2053
2054
2055 <p><hr></p>
2056 <a name="gmi_break_watch"></a>
2057 <center><Font Size=+2>gmi_break_watch</Font> (breakpoint.c 258)</center>
2058
2059 <Font Size=+1><u>Syntax</u></Font><p>
2060
2061
2062
2063 <pre>
2064  gmi_break_watch(mi_h *h, enum mi_wp_mode mode, const char *exp);
2065 </pre>
2066
2067
2068
2069
2070 <Font Size=+1><u>Description</u></Font><p>
2071
2072 Set a watchpoint. It doesn't work for remote targets!
2073 <p>
2074
2075
2076 <Font Size=+1><u>Return Value</u></Font><p>
2077
2078 A new mi_wp structure with info about the watchpoint. NULL on
2079 error.
2080 <p>
2081
2082
2083
2084 <p><hr></p>
2085 <a name="mi_connect_local"></a>
2086 <center><Font Size=+2>mi_connect_local</Font> (connect.c 330)</center>
2087
2088 <Font Size=+1><u>Syntax</u></Font><p>
2089
2090
2091
2092 <pre>
2093  mi_connect_local();
2094 </pre>
2095
2096
2097
2098
2099 <Font Size=+1><u>Description</u></Font><p>
2100
2101 Connect to a local copy of gdb. Note that the mi_h structure is something
2102 similar to a "FILE *" for stdio.
2103 <p>
2104
2105
2106 <Font Size=+1><u>Return Value</u></Font><p>
2107
2108 A new mi_h structure or NULL on error.
2109 <p>
2110
2111
2112
2113 <p><hr></p>
2114 <a name="mi_disconnect"></a>
2115 <center><Font Size=+2>mi_disconnect</Font> (connect.c 410)</center>
2116
2117 <Font Size=+1><u>Syntax</u></Font><p>
2118
2119
2120
2121 <pre>
2122  mi_disconnect(mi_h *h);
2123 </pre>
2124
2125
2126
2127
2128 <Font Size=+1><u>Description</u></Font><p>
2129
2130 Close connection. You should ask gdb to quit first <a href="#gmi_gdb_exit">gmi_gdb_exit</a>.
2131 <p>
2132
2133
2134
2135
2136 <p><hr></p>
2137 <a name="gmi_start_xterm"></a>
2138 <center><Font Size=+2>gmi_start_xterm</Font> (connect.c 647)</center>
2139
2140 <Font Size=+1><u>Syntax</u></Font><p>
2141
2142
2143
2144 <pre>
2145  gmi_start_xterm();
2146 </pre>
2147
2148
2149
2150
2151 <Font Size=+1><u>Description</u></Font><p>
2152
2153 Opens a new xterm to be used by the child process to debug.
2154 <p>
2155
2156
2157 <Font Size=+1><u>Return Value</u></Font><p>
2158
2159 A new mi_aux_term structure, you can use <a href="#gmi_end_aux_term">gmi_end_aux_term</a> to
2160 release it.
2161 <p>
2162
2163
2164
2165 <p><hr></p>
2166 <a name="gmi_end_aux_term"></a>
2167 <center><Font Size=+2>gmi_end_aux_term</Font> (connect.c 764)</center>
2168
2169 <Font Size=+1><u>Syntax</u></Font><p>
2170
2171
2172
2173 <pre>
2174  gmi_end_aux_term(mi_aux_term *t);
2175 </pre>
2176
2177
2178
2179
2180 <Font Size=+1><u>Description</u></Font><p>
2181
2182 Closes the auxiliar terminal and releases the allocated memory.
2183 <p>
2184
2185
2186
2187
2188 <p><hr></p>
2189 <a name="mi_force_version"></a>
2190 <center><Font Size=+2>mi_force_version</Font> (connect.c 781)</center>
2191
2192 <Font Size=+1><u>Syntax</u></Font><p>
2193
2194
2195
2196 <pre>
2197  mi_force_version(mi_h *h, unsigned vMajor, unsigned vMiddle, unsigned vMinor);
2198 </pre>
2199
2200
2201
2202
2203 <Font Size=+1><u>Description</u></Font><p>
2204
2205 Forces the MI version. Currently the library can't detect it so you must
2206 force it manually. GDB 5.x implemented MI v1 and 6.x v2.
2207 <p>
2208
2209
2210
2211
2212 <p><hr></p>
2213 <a name="mi_set_workaround"></a>
2214 <center><Font Size=+2>mi_set_workaround</Font> (connect.c 794)</center>
2215
2216 <Font Size=+1><u>Syntax</u></Font><p>
2217
2218
2219
2220 <pre>
2221  mi_set_workaround(unsigned wa, int enable);
2222 </pre>
2223
2224
2225
2226
2227 <Font Size=+1><u>Description</u></Font><p>
2228
2229 Dis/Enables the @var{wa} workaround for a bug in gdb.
2230 <p>
2231
2232
2233
2234
2235 <p><hr></p>
2236 <a name="mi_get_workaround"></a>
2237 <center><Font Size=+2>mi_get_workaround</Font> (connect.c 813)</center>
2238
2239 <Font Size=+1><u>Syntax</u></Font><p>
2240
2241
2242
2243 <pre>
2244  mi_get_workaround(unsigned wa);
2245 </pre>
2246
2247
2248
2249
2250 <Font Size=+1><u>Description</u></Font><p>
2251
2252 Finds if the @var{wa} workaround for a bug in gdb is enabled.
2253 <p>
2254
2255
2256 <Font Size=+1><u>Return Value</u></Font><p>
2257
2258 !=0 if enabled.
2259 <p>
2260
2261
2262
2263 <p><hr></p>
2264 <a name="MIDebugger (MIDebugger)"></a>
2265 <center><Font Size=+2>MIDebugger</Font> (cpp_int.cc 22)</center>
2266
2267 <Font Size=+1><u>Syntax</u></Font><p>
2268
2269
2270
2271 <pre>
2272  MIDebugger::MIDebugger();
2273 </pre>
2274
2275
2276 <Font Size=+1><u>Member of the class:</u></Font>
2277 MIDebugger
2278 <p>
2279
2280
2281
2282 <Font Size=+1><u>Description</u></Font><p>
2283
2284 Initializes a debugger object. It starts in the "disconnected" state.
2285 Use <a href="#Connect (MIDebugger)">Connect</a> after it.
2286 <p>
2287
2288
2289
2290
2291 <p><hr></p>
2292 <a name="~MIDebugger (MIDebugger)"></a>
2293 <center><Font Size=+2>~MIDebugger</Font> (cpp_int.cc 40)</center>
2294
2295 <Font Size=+1><u>Syntax</u></Font><p>
2296
2297
2298
2299 <pre>
2300  MIDebugger::~MIDebugger();
2301 </pre>
2302
2303
2304 <Font Size=+1><u>Member of the class:</u></Font>
2305 MIDebugger
2306 <p>
2307
2308
2309
2310 <Font Size=+1><u>Description</u></Font><p>
2311
2312 This is the destructor for the class. It tries to change the state to
2313 "disconnected" doing the needed actions.
2314 <p>
2315
2316
2317
2318
2319 <p><hr></p>
2320 <a name="Connect (MIDebugger)"></a>
2321 <center><Font Size=+2>Connect</Font> (cpp_int.cc 79)</center>
2322
2323 <Font Size=+1><u>Syntax</u></Font><p>
2324
2325
2326
2327 <pre>
2328  MIDebugger::Connect(bool);
2329 </pre>
2330
2331
2332 <Font Size=+1><u>Member of the class:</u></Font>
2333 MIDebugger
2334 <p>
2335
2336
2337
2338 <Font Size=+1><u>Description</u></Font><p>
2339
2340 Connects to gdb. Currently only local connections are supported, that's
2341 a gdb limitation. Call it when in "unconnected" state, on success it will
2342 change to the "connected" state.  After it you should call one of the
2343 SelectTarget members. <a href="#SelectTargetX11 (MIDebugger)">SelectTargetX11</a>, <a href="#SelectTargetLinux (MIDebugger)">SelectTargetLinux</a> or
2344 <a href="#SelectTargetRemote (MIDebugger)">SelectTargetRemote</a>. To finish the connection use <a href="#Disconnect (MIDebugger)">Disconnect</a>.
2345 <p>
2346
2347
2348 <Font Size=+1><u>Return Value</u></Font><p>
2349
2350 !=0 OK.
2351 <p>
2352
2353
2354
2355 <p><hr></p>
2356 <a name="Disconnect (MIDebugger)"></a>
2357 <center><Font Size=+2>Disconnect</Font> (cpp_int.cc 105)</center>
2358
2359 <Font Size=+1><u>Syntax</u></Font><p>
2360
2361
2362
2363 <pre>
2364  MIDebugger::Disconnect();
2365 </pre>
2366
2367
2368 <Font Size=+1><u>Member of the class:</u></Font>
2369 MIDebugger
2370 <p>
2371
2372
2373
2374 <Font Size=+1><u>Description</u></Font><p>
2375
2376 Finishes the connection to gdb. Call when in "connected" state, on success
2377 it will change to "disconnected" state. This function first tries to exit
2378 from gdb and then close the connection. But if gdb fails to exit it will be
2379 killed.
2380 <p>
2381
2382
2383 <Font Size=+1><u>Return Value</u></Font><p>
2384
2385 !=0 OK
2386 <p>
2387
2388
2389
2390 <p><hr></p>
2391 <a name="SelectTargetTTY (MIDebugger)"></a>
2392 <center><Font Size=+2>SelectTargetTTY</Font> (cpp_int.cc 127)</center>
2393
2394 <Font Size=+1><u>Syntax</u></Font><p>
2395
2396
2397
2398 <pre>
2399  MIDebugger::SelectTargetTTY(const char *exec, const char *args, const char *auxtty, dMode m);
2400 </pre>
2401
2402
2403 <Font Size=+1><u>Member of the class:</u></Font>
2404 MIDebugger
2405 <p>
2406
2407
2408
2409 <Font Size=+1><u>Description</u></Font><p>
2410
2411 Protected member that implements <a href="#SelectTargetX11 (MIDebugger)">SelectTargetX11</a> and
2412 <a href="#SelectTargetLinux (MIDebugger)">SelectTargetLinux</a>.
2413 <p>
2414
2415
2416 <Font Size=+1><u>Return Value</u></Font><p>
2417
2418 !=0 OK.
2419 <p>
2420
2421
2422
2423 <p><hr></p>
2424 <a name="SelectTargetX11 (MIDebugger)"></a>
2425 <center><Font Size=+2>SelectTargetX11</Font> (cpp_int.cc 180)</center>
2426
2427 <Font Size=+1><u>Syntax</u></Font><p>
2428
2429
2430
2431 <pre>
2432  MIDebugger::SelectTargetX11(const char *exec, const char *args, const char *auxtty);
2433 </pre>
2434
2435
2436 <Font Size=+1><u>Member of the class:</u></Font>
2437 MIDebugger
2438 <p>
2439
2440
2441
2442 <Font Size=+1><u>Description</u></Font><p>
2443
2444 Starts a debug session for X11. It opens an xterm console for the program
2445 to debug and tells gdb which executable to debug and the command line
2446 options to pass. You can specify an already existing tty console to be used.
2447 Can be called when the state is "connected". On success will change to the
2448 "target_specified" state. After it you can use <a href="#Run (MIDebugger)">Run</a> or use the members
2449 to define breakpoints and similar stuff. To finish it use
2450 <a href="#TargetUnselect (MIDebugger)">TargetUnselect</a>.
2451 <p>
2452
2453
2454 <Font Size=+1><u>Return Value</u></Font><p>
2455
2456 !=0 OK.
2457 <p>
2458
2459
2460
2461 <p><hr></p>
2462 <a name="SelectTargetLinux (MIDebugger)"></a>
2463 <center><Font Size=+2>SelectTargetLinux</Font> (cpp_int.cc 202)</center>
2464
2465 <Font Size=+1><u>Syntax</u></Font><p>
2466
2467
2468
2469 <pre>
2470  MIDebugger::SelectTargetLinux(const char *exec, const char *args, const char *auxtty);
2471 </pre>
2472
2473
2474 <Font Size=+1><u>Member of the class:</u></Font>
2475 MIDebugger
2476 <p>
2477
2478
2479
2480 <Font Size=+1><u>Description</u></Font><p>
2481
2482 Starts a debug session for Linux console. It selects an empty VT for the
2483 program to debug and tells gdb which executable to debug and the command line
2484 options to pass. You can specify an already existing tty console to be used.
2485 Can be called when the state is "connected". On success will change to the
2486 "target_specified" state. After it you can use <a href="#Run (MIDebugger)">Run</a> or use the members
2487 to define breakpoints and similar stuff. To finish it use
2488 <a href="#TargetUnselect (MIDebugger)">TargetUnselect</a>.
2489 <p>
2490
2491
2492 <Font Size=+1><u>Return Value</u></Font><p>
2493
2494 !=0 OK.
2495 <p>
2496
2497
2498
2499 <p><hr></p>
2500 <a name="SelectTargetRemote (MIDebugger)"></a>
2501 <center><Font Size=+2>SelectTargetRemote</Font> (cpp_int.cc 228)</center>
2502
2503 <Font Size=+1><u>Syntax</u></Font><p>
2504
2505
2506
2507 <pre>
2508  MIDebugger::SelectTargetRemote(const char *exec, const char *rparams, const char *rtype);
2509 </pre>
2510
2511
2512 <Font Size=+1><u>Member of the class:</u></Font>
2513 MIDebugger
2514 <p>
2515
2516
2517
2518 <Font Size=+1><u>Description</u></Font><p>
2519
2520 Starts a remote session. The other end should be running gdbserver. You
2521 must specify a local copy of the program to debug with debug info. The remote
2522 copy can be stripped. The @var{rtype} and @var{rparams} selects the protocol
2523 and the remote machine. Read gdb docs to know more about the available
2524 options. If @var{rtype} is omitted "extended-remote" protocol is used.
2525 Can be called when the state is "connected". On success will change to the
2526 "target_specified" state. After it you can use <a href="#Run (MIDebugger)">Run</a> or use the members
2527 to define breakpoints and similar stuff. To finish it use
2528 <a href="#TargetUnselect (MIDebugger)">TargetUnselect</a>. Note that when gdb uses remote debugging the remote
2529 program starts running. The <a href="#Run (MIDebugger)">Run</a> member knows about it.
2530 <p>
2531
2532
2533 <Font Size=+1><u>Return Value</u></Font><p>
2534
2535 !=0 OK.
2536 <p>
2537
2538
2539 <Font Size=+1><u>Example</u></Font><p>
2540
2541 o-&gt;SelectTargetRemote("./exec_file","192.168.1.65:5000");
2542 <p>
2543
2544
2545 <p><hr></p>
2546 <a name="SelectTargetPID (MIDebugger)"></a>
2547 <center><Font Size=+2>SelectTargetPID</Font> (cpp_int.cc 258)</center>
2548
2549 <Font Size=+1><u>Syntax</u></Font><p>
2550
2551
2552
2553 <pre>
2554  MIDebugger::SelectTargetPID(const char *exec, int pid);
2555 </pre>
2556
2557
2558 <Font Size=+1><u>Member of the class:</u></Font>
2559 MIDebugger
2560 <p>
2561
2562
2563
2564 <Font Size=+1><u>Description</u></Font><p>
2565
2566 Starts a local session using an already running process.
2567 <p>
2568
2569
2570 <Font Size=+1><u>Return Value</u></Font><p>
2571
2572 !=0 OK.
2573 <p>
2574
2575
2576
2577 <p><hr></p>
2578 <a name="TargetUnselect (MIDebugger)"></a>
2579 <center><Font Size=+2>TargetUnselect</Font> (cpp_int.cc 295)</center>
2580
2581 <Font Size=+1><u>Syntax</u></Font><p>
2582
2583
2584
2585 <pre>
2586  MIDebugger::TargetUnselect();
2587 </pre>
2588
2589
2590 <Font Size=+1><u>Member of the class:</u></Font>
2591 MIDebugger
2592 <p>
2593
2594
2595
2596 <Font Size=+1><u>Description</u></Font><p>
2597
2598 Used to unselect the current target. When X11 mode it closes the auxiliar
2599 terminal. For remote debugging it uses "detach". Can be called when in
2600 "target_specified" state. On success it changes to "connected" state.
2601 <p>
2602
2603
2604 <Font Size=+1><u>Return Value</u></Font><p>
2605
2606 !=0 OK
2607 <p>
2608
2609
2610
2611 <p><hr></p>
2612 <a name="Run (MIDebugger)"></a>
2613 <center><Font Size=+2>Run</Font> (cpp_int.cc 335)</center>
2614
2615 <Font Size=+1><u>Syntax</u></Font><p>
2616
2617
2618
2619 <pre>
2620  MIDebugger::Run();
2621 </pre>
2622
2623
2624 <Font Size=+1><u>Member of the class:</u></Font>
2625 MIDebugger
2626 <p>
2627
2628
2629
2630 <Font Size=+1><u>Description</u></Font><p>
2631
2632 Starts running the program. You should set breakpoint before it. Can be
2633 called when state is "target_specified". On success will change to "running"
2634 state. After it you should poll for async responses using <a href="#Poll (MIDebugger)">Poll</a>. The
2635 program can stop for many reasons asynchronously and also exit. This
2636 information is known using Poll. You can stop the program using <a href="#Stop (MIDebugger)">Stop</a>.
2637 <p>
2638
2639
2640 <Font Size=+1><u>Return Value</u></Font><p>
2641
2642 !=0 OK.
2643 <p>
2644
2645
2646
2647 <p><hr></p>
2648 <a name="Stop (MIDebugger)"></a>
2649 <center><Font Size=+2>Stop</Font> (cpp_int.cc 365)</center>
2650
2651 <Font Size=+1><u>Syntax</u></Font><p>
2652
2653
2654
2655 <pre>
2656  MIDebugger::Stop();
2657 </pre>
2658
2659
2660 <Font Size=+1><u>Member of the class:</u></Font>
2661 MIDebugger
2662 <p>
2663
2664
2665
2666 <Font Size=+1><u>Description</u></Font><p>
2667
2668 Stops the program execution. GDB sends an interrupt signal to the program.
2669 Can be called when the state is "running". It won't switch to "stopped"
2670 state automatically. Instead you must poll for async events and wait for a
2671 stopped notification. After it you can call <a href="#Continue (MIDebugger)">Continue</a> to resume
2672 execution.
2673 <p>
2674
2675
2676 <Font Size=+1><u>Return Value</u></Font><p>
2677
2678
2679 <p>
2680
2681
2682 <Font Size=+1><u>Example</u></Font><p>
2683
2684 !=0 OK
2685 <p>
2686
2687
2688 <p><hr></p>
2689 <a name="Poll (MIDebugger)"></a>
2690 <center><Font Size=+2>Poll</Font> (cpp_int.cc 386)</center>
2691
2692 <Font Size=+1><u>Syntax</u></Font><p>
2693
2694
2695
2696 <pre>
2697  MIDebugger::Poll(mi_stop *&rs);
2698 </pre>
2699
2700
2701 <Font Size=+1><u>Member of the class:</u></Font>
2702 MIDebugger
2703 <p>
2704
2705
2706
2707 <Font Size=+1><u>Description</u></Font><p>
2708
2709 Polls gdb looking for async responses. Currently it just looks for
2710 "stopped" messages. You must call it when the state is "running". But the
2711 function will poll gdb even if the state isn't "running". When a stopped
2712 message is received the state changes to stopped or target_specified (the
2713 last is when we get some exit).
2714 <p>
2715
2716
2717 <Font Size=+1><u>Return Value</u></Font><p>
2718
2719 !=0 if we got a response. The @var{rs} pointer will point to an
2720 mi_stop structure if we got it or will be NULL if we didn't.
2721 <p>
2722
2723
2724
2725 <p><hr></p>
2726 <a name="Continue (MIDebugger)"></a>
2727 <center><Font Size=+2>Continue</Font> (cpp_int.cc 432)</center>
2728
2729 <Font Size=+1><u>Syntax</u></Font><p>
2730
2731
2732
2733 <pre>
2734  MIDebugger::Continue();
2735 </pre>
2736
2737
2738 <Font Size=+1><u>Member of the class:</u></Font>
2739 MIDebugger
2740 <p>
2741
2742
2743
2744 <Font Size=+1><u>Description</u></Font><p>
2745
2746 Resumes execution after the program "stopped". Can be called when the state
2747 is stopped. On success will change to "running" state.
2748 <p>
2749
2750
2751 <Font Size=+1><u>Return Value</u></Font><p>
2752
2753 !=0 OK
2754 <p>
2755
2756
2757
2758 <p><hr></p>
2759 <a name="RunOrContinue (MIDebugger)"></a>
2760 <center><Font Size=+2>RunOrContinue</Font> (cpp_int.cc 454)</center>
2761
2762 <Font Size=+1><u>Syntax</u></Font><p>
2763
2764
2765
2766 <pre>
2767  MIDebugger::RunOrContinue();
2768 </pre>
2769
2770
2771 <Font Size=+1><u>Member of the class:</u></Font>
2772 MIDebugger
2773 <p>
2774
2775
2776
2777 <Font Size=+1><u>Description</u></Font><p>
2778
2779 Starts program execution or resumes it. When the state is target_specified
2780 it calls <a href="#Run (MIDebugger)">Run</a> otherwise it uses <a href="#Continue (MIDebugger)">Continue</a>. Can be called when the
2781 state is "target_specified" or "stopped". On success will change to
2782 "running" state.
2783 <p>
2784
2785
2786 <Font Size=+1><u>Return Value</u></Font><p>
2787
2788 !=0 OK
2789 <p>
2790
2791
2792
2793 <p><hr></p>
2794 <a name="Kill (MIDebugger)"></a>
2795 <center><Font Size=+2>Kill</Font> (cpp_int.cc 473)</center>
2796
2797 <Font Size=+1><u>Syntax</u></Font><p>
2798
2799
2800
2801 <pre>
2802  MIDebugger::Kill();
2803 </pre>
2804
2805
2806 <Font Size=+1><u>Member of the class:</u></Font>
2807 MIDebugger
2808 <p>
2809
2810
2811
2812 <Font Size=+1><u>Description</u></Font><p>
2813
2814 Kills the program you are debugging. Can be called when the state is
2815 "stopped" or "running". On success changes the state to "target_specified".
2816 Note that if you want to restart the program you can just call <a href="#Run (MIDebugger)">Run</a> and
2817 if you want to just stop the program call <a href="#Stop (MIDebugger)">Stop</a>.
2818 <p>
2819
2820
2821 <Font Size=+1><u>Return Value</u></Font><p>
2822
2823 !=0 OK
2824 <p>
2825
2826
2827
2828 <p><hr></p>
2829 <a name="Breakpoint (MIDebugger)"></a>
2830 <center><Font Size=+2>Breakpoint</Font> (cpp_int.cc 520)</center>
2831
2832 <Font Size=+1><u>Syntax</u></Font><p>
2833
2834
2835
2836 <pre>
2837  MIDebugger::Breakpoint(const char *file, int line);
2838 </pre>
2839
2840
2841 <Font Size=+1><u>Member of the class:</u></Font>
2842 MIDebugger
2843 <p>
2844
2845
2846
2847 <Font Size=+1><u>Description</u></Font><p>
2848
2849 Inserts a breakpoint at @var{file} and @var{line}. Can be called when the
2850 state is "stopped" or "target_specified".
2851 <p>
2852
2853
2854 <Font Size=+1><u>Return Value</u></Font><p>
2855
2856 An mi_bkpt structure or NULL if error.
2857 <p>
2858
2859
2860
2861 <p><hr></p>
2862 <a name="Breakpoint (MIDebugger) <1>"></a>
2863 <center><Font Size=+2>Breakpoint</Font> (cpp_int.cc 537)</center>
2864
2865 <Font Size=+1><u>Syntax</u></Font><p>
2866
2867
2868
2869 <pre>
2870  MIDebugger::Breakpoint(const char *where, bool temporary, const char *cond, int count, int thread, bool hard_assist);
2871 </pre>
2872
2873
2874 <Font Size=+1><u>Member of the class:</u></Font>
2875 MIDebugger
2876 <p>
2877
2878
2879
2880 <Font Size=+1><u>Description</u></Font><p>
2881
2882 Inserts a breakpoint at @var{where}, all options available. Can be called
2883 when the state is "stopped" or "target_specified".
2884 <p>
2885
2886
2887 <Font Size=+1><u>Return Value</u></Font><p>
2888
2889 An mi_bkpt structure or NULL if error.
2890 <p>
2891
2892
2893
2894 <p><hr></p>
2895 <a name="BreakpointFull (MIDebugger)"></a>
2896 <center><Font Size=+2>BreakpointFull</Font> (cpp_int.cc 585)</center>
2897
2898 <Font Size=+1><u>Syntax</u></Font><p>
2899
2900
2901
2902 <pre>
2903  MIDebugger::BreakpointFull(const char *file, int line, bool temporary, const char *cond, int count, int thread, bool hard_assist);
2904 </pre>
2905
2906
2907 <Font Size=+1><u>Member of the class:</u></Font>
2908 MIDebugger
2909 <p>
2910
2911
2912
2913 <Font Size=+1><u>Description</u></Font><p>
2914
2915 Inserts a breakpoint at @var{file} and @var{line} all options available.
2916 Can be called when the state is "stopped" or "target_specified".
2917 <p>
2918
2919
2920 <Font Size=+1><u>Return Value</u></Font><p>
2921
2922 An mi_bkpt structure or NULL if error.
2923 <p>
2924
2925
2926
2927 <p><hr></p>
2928 <a name="BreakDelete (MIDebugger)"></a>
2929 <center><Font Size=+2>BreakDelete</Font> (cpp_int.cc 605)</center>
2930
2931 <Font Size=+1><u>Syntax</u></Font><p>
2932
2933
2934
2935 <pre>
2936  MIDebugger::BreakDelete(mi_bkpt *b);
2937 </pre>
2938
2939
2940 <Font Size=+1><u>Member of the class:</u></Font>
2941 MIDebugger
2942 <p>
2943
2944
2945
2946 <Font Size=+1><u>Description</u></Font><p>
2947
2948 Removes the specified breakpoint. It doesn't free the structure. Can be
2949 called when the state is "stopped" or "target_specified".
2950 <p>
2951
2952
2953 <Font Size=+1><u>Return Value</u></Font><p>
2954
2955 !=0 OK
2956 <p>
2957
2958
2959
2960 <p><hr></p>
2961 <a name="Watchpoint (MIDebugger)"></a>
2962 <center><Font Size=+2>Watchpoint</Font> (cpp_int.cc 622)</center>
2963
2964 <Font Size=+1><u>Syntax</u></Font><p>
2965
2966
2967
2968 <pre>
2969  MIDebugger::Watchpoint(enum mi_wp_mode mode, const char *exp);
2970 </pre>
2971
2972
2973 <Font Size=+1><u>Member of the class:</u></Font>
2974 MIDebugger
2975 <p>
2976
2977
2978
2979 <Font Size=+1><u>Description</u></Font><p>
2980
2981 Inserts a watchpoint for the specified expression. Can be called when the
2982 state is "stopped" or "target_specified".
2983 <p>
2984
2985
2986 <Font Size=+1><u>Return Value</u></Font><p>
2987
2988 An mi_wp structure or NULL if error.
2989 <p>
2990
2991
2992
2993 <p><hr></p>
2994 <a name="WatchDelete (MIDebugger)"></a>
2995 <center><Font Size=+2>WatchDelete</Font> (cpp_int.cc 639)</center>
2996
2997 <Font Size=+1><u>Syntax</u></Font><p>
2998
2999
3000
3001 <pre>
3002  MIDebugger::WatchDelete(mi_wp *w);
3003 </pre>
3004
3005
3006 <Font Size=+1><u>Member of the class:</u></Font>
3007 MIDebugger
3008 <p>
3009
3010
3011
3012 <Font Size=+1><u>Description</u></Font><p>
3013
3014 Removes the specified watchpoint. It doesn't free the structure. Can be
3015 called when the state is "stopped" or "target_specified".
3016 <p>
3017
3018
3019 <Font Size=+1><u>Return Value</u></Font><p>
3020
3021 !=0 OK
3022 <p>
3023
3024
3025
3026 <p><hr></p>
3027 <a name="RunToMain (MIDebugger)"></a>
3028 <center><Font Size=+2>RunToMain</Font> (cpp_int.cc 657)</center>
3029
3030 <Font Size=+1><u>Syntax</u></Font><p>
3031
3032
3033
3034 <pre>
3035  MIDebugger::RunToMain();
3036 </pre>
3037
3038
3039 <Font Size=+1><u>Member of the class:</u></Font>
3040 MIDebugger
3041 <p>
3042
3043
3044
3045 <Font Size=+1><u>Description</u></Font><p>
3046
3047 Puts a temporal breakpoint in main function and starts running. Can be
3048 called when the state is "target_specified". If successful the state will
3049 change to "running".
3050 <p>
3051
3052
3053 <Font Size=+1><u>Return Value</u></Font><p>
3054
3055 !=0 OK
3056 <p>
3057
3058
3059
3060 <p><hr></p>
3061 <a name="StepOver (MIDebugger)"></a>
3062 <center><Font Size=+2>StepOver</Font> (cpp_int.cc 681)</center>
3063
3064 <Font Size=+1><u>Syntax</u></Font><p>
3065
3066
3067
3068 <pre>
3069  MIDebugger::StepOver(bool inst);
3070 </pre>
3071
3072
3073 <Font Size=+1><u>Member of the class:</u></Font>
3074 MIDebugger
3075 <p>
3076
3077
3078
3079 <Font Size=+1><u>Description</u></Font><p>
3080
3081 Executes upto the next line, doesn't follow function calls. The @var{inst}
3082 argument is for assembler. If the state is "target_specified" it will go to
3083 the first line in the main function. If the state is "stopped" will use the
3084 next command. If successfully the state will change to "running".
3085 <p>
3086
3087
3088 <Font Size=+1><u>Return Value</u></Font><p>
3089
3090 !=0 OK
3091 <p>
3092
3093
3094
3095 <p><hr></p>
3096 <a name="GoTo (MIDebugger)"></a>
3097 <center><Font Size=+2>GoTo</Font> (cpp_int.cc 713)</center>
3098
3099 <Font Size=+1><u>Syntax</u></Font><p>
3100
3101
3102
3103 <pre>
3104  MIDebugger::GoTo(const char *file, int line);
3105 </pre>
3106
3107
3108 <Font Size=+1><u>Member of the class:</u></Font>
3109 MIDebugger
3110 <p>
3111
3112
3113
3114 <Font Size=+1><u>Description</u></Font><p>
3115
3116 Executes until the specified point. If the state is "target_specified" it
3117 uses a temporal breakpoint. If the state is "stopped" it uses -exec-until.
3118 Fails for any other state.
3119 <p>
3120
3121
3122 <Font Size=+1><u>Return Value</u></Font><p>
3123
3124 !=0 OK
3125 <p>
3126
3127
3128
3129 <p><hr></p>
3130 <a name="GoTo (MIDebugger) <1>"></a>
3131 <center><Font Size=+2>GoTo</Font> (cpp_int.cc 751)</center>
3132
3133 <Font Size=+1><u>Syntax</u></Font><p>
3134
3135
3136
3137 <pre>
3138  MIDebugger::GoTo(void *addr);
3139 </pre>
3140
3141
3142 <Font Size=+1><u>Member of the class:</u></Font>
3143 MIDebugger
3144 <p>
3145
3146
3147
3148 <Font Size=+1><u>Description</u></Font><p>
3149
3150 Executes until the specified point. If the state is "target_specified" it
3151 uses a temporal breakpoint. If the state is "stopped" it uses -exec-until.
3152 Fails for any other state.
3153 <p>
3154
3155
3156 <Font Size=+1><u>Return Value</u></Font><p>
3157
3158 !=0 OK
3159 <p>
3160
3161
3162
3163 <p><hr></p>
3164 <a name="FinishFun (MIDebugger)"></a>
3165 <center><Font Size=+2>FinishFun</Font> (cpp_int.cc 788)</center>
3166
3167 <Font Size=+1><u>Syntax</u></Font><p>
3168
3169
3170
3171 <pre>
3172  MIDebugger::FinishFun();
3173 </pre>
3174
3175
3176 <Font Size=+1><u>Member of the class:</u></Font>
3177 MIDebugger
3178 <p>
3179
3180
3181
3182 <Font Size=+1><u>Description</u></Font><p>
3183
3184 Resumes execution until the end of the current funtion is reached. Only
3185 usable when we are in the "stopped" state.
3186 <p>
3187
3188
3189 <Font Size=+1><u>Return Value</u></Font><p>
3190
3191 !=0 OK
3192 <p>
3193
3194
3195
3196 <p><hr></p>
3197 <a name="ReturnNow (MIDebugger)"></a>
3198 <center><Font Size=+2>ReturnNow</Font> (cpp_int.cc 808)</center>
3199
3200 <Font Size=+1><u>Syntax</u></Font><p>
3201
3202
3203
3204 <pre>
3205  MIDebugger::ReturnNow();
3206 </pre>
3207
3208
3209 <Font Size=+1><u>Member of the class:</u></Font>
3210 MIDebugger
3211 <p>
3212
3213
3214
3215 <Font Size=+1><u>Description</u></Font><p>
3216
3217
3218 <p>
3219
3220
3221 <Font Size=+1><u>Return Value</u></Font><p>
3222
3223 !=NULL OK, the returned frame is the current location. That's a
3224 synchronous function.
3225 <p>
3226
3227
3228
3229 <p><hr></p>
3230 <a name="CallStack (MIDebugger)"></a>
3231 <center><Font Size=+2>CallStack</Font> (cpp_int.cc 824)</center>
3232
3233 <Font Size=+1><u>Syntax</u></Font><p>
3234
3235
3236
3237 <pre>
3238  MIDebugger::CallStack(bool args);
3239 </pre>
3240
3241
3242 <Font Size=+1><u>Member of the class:</u></Font>
3243 MIDebugger
3244 <p>
3245
3246
3247
3248 <Font Size=+1><u>Description</u></Font><p>
3249
3250
3251 <p>
3252
3253
3254 <Font Size=+1><u>Return Value</u></Font><p>
3255
3256 !=NULL OK, the list of frames is returned.
3257 <p>
3258
3259
3260
3261 <p><hr></p>
3262 <a name="TraceInto (MIDebugger)"></a>
3263 <center><Font Size=+2>TraceInto</Font> (cpp_int.cc 860)</center>
3264
3265 <Font Size=+1><u>Syntax</u></Font><p>
3266
3267
3268
3269 <pre>
3270  MIDebugger::TraceInto(bool inst);
3271 </pre>
3272
3273
3274 <Font Size=+1><u>Member of the class:</u></Font>
3275 MIDebugger
3276 <p>
3277
3278
3279
3280 <Font Size=+1><u>Description</u></Font><p>
3281
3282 Executes upto the next line, it follows function calls. The @var{inst}
3283 argument is for assembler. If the state is "target_specified" it will go to
3284 the first line in the main function. If the state is "stopped" will use the
3285 next command. If successfully the state will change to "running".
3286 <p>
3287
3288
3289 <Font Size=+1><u>Return Value</u></Font><p>
3290
3291 !=0 OK
3292 <p>
3293
3294
3295
3296 <p><hr></p>
3297 <a name="EvalExpression (MIDebugger)"></a>
3298 <center><Font Size=+2>EvalExpression</Font> (cpp_int.cc 892)</center>
3299
3300 <Font Size=+1><u>Syntax</u></Font><p>
3301
3302
3303
3304 <pre>
3305  MIDebugger::EvalExpression(const char *exp);
3306 </pre>
3307
3308
3309 <Font Size=+1><u>Member of the class:</u></Font>
3310 MIDebugger
3311 <p>
3312
3313
3314
3315 <Font Size=+1><u>Description</u></Font><p>
3316
3317 Evaluates the provided expression. If we get an error the error
3318 description is returned instead. Can't be called if "disconnected" or
3319 "running".
3320 <p>
3321
3322
3323 <Font Size=+1><u>Return Value</u></Font><p>
3324
3325 The result of the expression (use free) or NULL.
3326 <p>
3327
3328
3329
3330 <p><hr></p>
3331 <a name="ModifyExpression (MIDebugger)"></a>
3332 <center><Font Size=+2>ModifyExpression</Font> (cpp_int.cc 918)</center>
3333
3334 <Font Size=+1><u>Syntax</u></Font><p>
3335
3336
3337
3338 <pre>
3339  MIDebugger::ModifyExpression(char *exp, char *newVal);
3340 </pre>
3341
3342
3343 <Font Size=+1><u>Member of the class:</u></Font>
3344 MIDebugger
3345 <p>
3346
3347
3348
3349 <Font Size=+1><u>Description</u></Font><p>
3350
3351 Modifies the provided expression. If we get an error the error
3352 description is returned instead. Can't be called if "disconnected" or
3353 "running".
3354 <p>
3355
3356
3357 <Font Size=+1><u>Return Value</u></Font><p>
3358
3359 The result of the expression (use free) or NULL.
3360 <p>
3361
3362
3363
3364 <p><hr></p>
3365 <a name="Send (MIDebugger)"></a>
3366 <center><Font Size=+2>Send</Font> (cpp_int.cc 950)</center>
3367
3368 <Font Size=+1><u>Syntax</u></Font><p>
3369
3370
3371
3372 <pre>
3373  MIDebugger::Send(const char *command);
3374 </pre>
3375
3376
3377 <Font Size=+1><u>Member of the class:</u></Font>
3378 MIDebugger
3379 <p>
3380
3381
3382
3383 <Font Size=+1><u>Description</u></Font><p>
3384
3385 Sends a command to gdb.
3386 <p>
3387
3388
3389 <Font Size=+1><u>Return Value</u></Font><p>
3390
3391 !=0 OK
3392 <p>
3393
3394
3395
3396 <p><hr></p>
3397 <a name="FillTypeVal (MIDebugger)"></a>
3398 <center><Font Size=+2>FillTypeVal</Font> (cpp_int.cc 970)</center>
3399
3400 <Font Size=+1><u>Syntax</u></Font><p>
3401
3402
3403
3404 <pre>
3405  MIDebugger::FillTypeVal(mi_gvar *var);
3406 </pre>
3407
3408
3409 <Font Size=+1><u>Member of the class:</u></Font>
3410 MIDebugger
3411 <p>
3412
3413
3414
3415 <Font Size=+1><u>Description</u></Font><p>
3416
3417 Fills the type and value fields of the mi_gvar provided list.
3418 <p>
3419
3420
3421 <Font Size=+1><u>Return Value</u></Font><p>
3422
3423 !=0 OK
3424 <p>
3425
3426
3427
3428 <p><hr></p>
3429 <a name="gmi_data_evaluate_expression"></a>
3430 <center><Font Size=+2>gmi_data_evaluate_expression</Font> (data_man.c 163)</center>
3431
3432 <Font Size=+1><u>Syntax</u></Font><p>
3433
3434
3435
3436 <pre>
3437  gmi_data_evaluate_expression(mi_h *h, const char *expression);
3438 </pre>
3439
3440
3441
3442
3443 <Font Size=+1><u>Description</u></Font><p>
3444
3445 Evaluate an expression. Returns a parsed tree.
3446 <p>
3447
3448
3449 <Font Size=+1><u>Return Value</u></Font><p>
3450
3451 The resulting value (as plain text) or NULL on error.
3452 <p>
3453
3454
3455
3456 <p><hr></p>
3457 <a name="gmi_dir"></a>
3458 <center><Font Size=+2>gmi_dir</Font> (data_man.c 180)</center>
3459
3460 <Font Size=+1><u>Syntax</u></Font><p>
3461
3462
3463
3464 <pre>
3465  gmi_dir(mi_h *h, const char *path);
3466 </pre>
3467
3468
3469
3470
3471 <Font Size=+1><u>Description</u></Font><p>
3472
3473 Path for sources. You must use it to indicate where are the sources for
3474 the program to debug. Only the MI v1 implementation is available.
3475 <p>
3476
3477
3478 <Font Size=+1><u>Return Value</u></Font><p>
3479
3480 !=0 OK
3481 <p>
3482
3483
3484
3485 <p><hr></p>
3486 <a name="mi_get_error_str"></a>
3487 <center><Font Size=+2>mi_get_error_str</Font> (error.c 10)</center>
3488
3489 <Font Size=+1><u>Syntax</u></Font><p>
3490
3491
3492
3493 <pre>
3494  mi_get_error_str();
3495 </pre>
3496
3497
3498
3499
3500
3501
3502
3503 <p><hr></p>
3504 <a name="mi_look_for_free_pty"></a>
3505 <center><Font Size=+2>mi_look_for_free_pty</Font> (get_free_pty.c 41)</center>
3506
3507 <Font Size=+1><u>Syntax</u></Font><p>
3508
3509
3510
3511 <pre>
3512  mi_look_for_free_pty(int *master, char **slave);
3513 </pre>
3514
3515
3516
3517
3518 <Font Size=+1><u>Description</u></Font><p>
3519
3520 Look for a free and usable pseudo terminal. Low level, use
3521 <a href="#gmi_look_for_free_pty">gmi_look_for_free_pty</a>.
3522 <p>
3523
3524
3525 <Font Size=+1><u>Return Value</u></Font><p>
3526
3527 A file descriptor connected to the master pty and the name of the slave device, or &lt;0 on error.
3528 <p>
3529
3530
3531
3532 <p><hr></p>
3533 <a name="gmi_look_for_free_pty"></a>
3534 <center><Font Size=+2>gmi_look_for_free_pty</Font> (get_free_pty.c 92)</center>
3535
3536 <Font Size=+1><u>Syntax</u></Font><p>
3537
3538
3539
3540 <pre>
3541  gmi_look_for_free_pty();
3542 </pre>
3543
3544
3545
3546
3547 <Font Size=+1><u>Description</u></Font><p>
3548
3549 Look for a free and usable pseudo terminal to be used by the child.
3550 <p>
3551
3552
3553 <Font Size=+1><u>Return Value</u></Font><p>
3554
3555 A new mi_pty structure, you can use <a href="#gmi_end_pty">gmi_end_pty</a> to
3556 release it.
3557 <p>
3558
3559
3560
3561 <p><hr></p>
3562 <a name="gmi_end_pty"></a>
3563 <center><Font Size=+2>gmi_end_pty</Font> (get_free_pty.c 124)</center>
3564
3565 <Font Size=+1><u>Syntax</u></Font><p>
3566
3567
3568
3569 <pre>
3570  gmi_end_pty(mi_pty *p);
3571 </pre>
3572
3573
3574
3575
3576 <Font Size=+1><u>Description</u></Font><p>
3577
3578 Closes the pseudo termial master and releases the allocated memory.
3579 <p>
3580
3581
3582
3583
3584 <p><hr></p>
3585 <a name="mi_look_for_free_vt"></a>
3586 <center><Font Size=+2>mi_look_for_free_vt</Font> (get_free_vt.c 51)</center>
3587
3588 <Font Size=+1><u>Syntax</u></Font><p>
3589
3590
3591
3592 <pre>
3593  mi_look_for_free_vt() 53;
3594 </pre>
3595
3596
3597
3598
3599 <Font Size=+1><u>Description</u></Font><p>
3600
3601 Look for a free and usable Linux VT. Low level, use
3602 <a href="#gmi_look_for_free_vt">gmi_look_for_free_vt</a>.
3603 <p>
3604
3605
3606 <Font Size=+1><u>Return Value</u></Font><p>
3607
3608 The VT number or &lt;0 on error.
3609 <p>
3610
3611
3612
3613 <p><hr></p>
3614 <a name="gmi_look_for_free_vt"></a>
3615 <center><Font Size=+2>gmi_look_for_free_vt</Font> (get_free_vt.c 135)</center>
3616
3617 <Font Size=+1><u>Syntax</u></Font><p>
3618
3619
3620
3621 <pre>
3622  gmi_look_for_free_vt() 137;
3623 </pre>
3624
3625
3626
3627
3628 <Font Size=+1><u>Description</u></Font><p>
3629
3630 Look for a free and usable Linux VT to be used by the child.
3631 <p>
3632
3633
3634 <Font Size=+1><u>Return Value</u></Font><p>
3635
3636 A new mi_aux_term structure, you can use <a href="#gmi_end_aux_term">gmi_end_aux_term</a> to
3637 release it.
3638 <p>
3639
3640
3641
3642 <p><hr></p>
3643 <a name="gmi_gdb_exit"></a>
3644 <center><Font Size=+2>gmi_gdb_exit</Font> (misc.c 54)</center>
3645
3646 <Font Size=+1><u>Syntax</u></Font><p>
3647
3648
3649
3650 <pre>
3651  gmi_gdb_exit(mi_h *h);
3652 </pre>
3653
3654
3655
3656
3657 <Font Size=+1><u>Description</u></Font><p>
3658
3659 Exit gdb killing the child is it is running.
3660 <p>
3661
3662
3663
3664
3665 <p><hr></p>
3666 <a name="gmi_gdb_version"></a>
3667 <center><Font Size=+2>gmi_gdb_version</Font> (misc.c 70)</center>
3668
3669 <Font Size=+1><u>Syntax</u></Font><p>
3670
3671
3672
3673 <pre>
3674  gmi_gdb_version(mi_h *h);
3675 </pre>
3676
3677
3678
3679
3680 <Font Size=+1><u>Description</u></Font><p>
3681
3682 Send the version to the console.
3683 <p>
3684
3685
3686 <Font Size=+1><u>Return Value</u></Font><p>
3687
3688 !=0 OK
3689 <p>
3690
3691
3692
3693 <p><hr></p>
3694 <a name="gmi_gdb_set"></a>
3695 <center><Font Size=+2>gmi_gdb_set</Font> (misc.c 86)</center>
3696
3697 <Font Size=+1><u>Syntax</u></Font><p>
3698
3699
3700
3701 <pre>
3702  gmi_gdb_set(mi_h *h, const char *var, const char *val);
3703 </pre>
3704
3705
3706
3707
3708 <Font Size=+1><u>Description</u></Font><p>
3709
3710 Set a gdb variable.
3711 <p>
3712
3713
3714 <Font Size=+1><u>Return Value</u></Font><p>
3715
3716 !=0 OK
3717 <p>
3718
3719
3720
3721 <p><hr></p>
3722 <a name="gmi_gdb_show"></a>
3723 <center><Font Size=+2>gmi_gdb_show</Font> (misc.c 102)</center>
3724
3725 <Font Size=+1><u>Syntax</u></Font><p>
3726
3727
3728
3729 <pre>
3730  gmi_gdb_show(mi_h *h, const char *var);
3731 </pre>
3732
3733
3734
3735
3736 <Font Size=+1><u>Description</u></Font><p>
3737
3738 Get a gdb variable.
3739 <p>
3740
3741
3742 <Font Size=+1><u>Return Value</u></Font><p>
3743
3744 The current value of the variable or NULL on error.
3745 <p>
3746
3747
3748
3749 <p><hr></p>
3750 <a name="gmi_set_exec"></a>
3751 <center><Font Size=+2>gmi_set_exec</Font> (prg_control.c 172)</center>
3752
3753 <Font Size=+1><u>Syntax</u></Font><p>
3754
3755
3756
3757 <pre>
3758  gmi_set_exec(mi_h *h, const char *file, const char *args);
3759 </pre>
3760
3761
3762
3763
3764 <Font Size=+1><u>Description</u></Font><p>
3765
3766 Specify the executable and arguments for local debug.
3767 <p>
3768
3769
3770 <Font Size=+1><u>Return Value</u></Font><p>
3771
3772 !=0 OK
3773 <p>
3774
3775
3776
3777 <p><hr></p>
3778 <a name="gmi_exec_run"></a>
3779 <center><Font Size=+2>gmi_exec_run</Font> (prg_control.c 193)</center>
3780
3781 <Font Size=+1><u>Syntax</u></Font><p>
3782
3783
3784
3785 <pre>
3786  gmi_exec_run(mi_h *h);
3787 </pre>
3788
3789
3790
3791
3792 <Font Size=+1><u>Description</u></Font><p>
3793
3794 Start running the executable. Remote sessions starts running.
3795 <p>
3796
3797
3798 <Font Size=+1><u>Return Value</u></Font><p>
3799
3800 !=0 OK
3801 <p>
3802
3803
3804
3805 <p><hr></p>
3806 <a name="gmi_exec_continue"></a>
3807 <center><Font Size=+2>gmi_exec_continue</Font> (prg_control.c 209)</center>
3808
3809 <Font Size=+1><u>Syntax</u></Font><p>
3810
3811
3812
3813 <pre>
3814  gmi_exec_continue(mi_h *h);
3815 </pre>
3816
3817
3818
3819
3820 <Font Size=+1><u>Description</u></Font><p>
3821
3822 Continue the execution after a "stop".
3823 <p>
3824
3825
3826 <Font Size=+1><u>Return Value</u></Font><p>
3827
3828 !=0 OK
3829 <p>
3830
3831
3832
3833 <p><hr></p>
3834 <a name="gmi_target_terminal"></a>
3835 <center><Font Size=+2>gmi_target_terminal</Font> (prg_control.c 226)</center>
3836
3837 <Font Size=+1><u>Syntax</u></Font><p>
3838
3839
3840
3841 <pre>
3842  gmi_target_terminal(mi_h *h, const char *tty_name);
3843 </pre>
3844
3845
3846
3847
3848 <Font Size=+1><u>Description</u></Font><p>
3849
3850 Indicate which terminal will use the target program. For local sessions.
3851 <p>
3852
3853
3854 <Font Size=+1><u>Return Value</u></Font><p>
3855
3856 !=0 OK
3857 <p>
3858
3859
3860 <Font Size=+1><u>Example</u></Font><p>
3861
3862
3863 <p>
3864
3865
3866 <p><hr></p>
3867 <a name="gmi_file_symbol_file"></a>
3868 <center><Font Size=+2>gmi_file_symbol_file</Font> (prg_control.c 242)</center>
3869
3870 <Font Size=+1><u>Syntax</u></Font><p>
3871
3872
3873
3874 <pre>
3875  gmi_file_symbol_file(mi_h *h, const char *file);
3876 </pre>
3877
3878
3879
3880
3881 <Font Size=+1><u>Description</u></Font><p>
3882
3883 Specify what's the local copy that have debug info. For remote sessions.
3884 <p>
3885
3886
3887 <Font Size=+1><u>Return Value</u></Font><p>
3888
3889 !=0 OK
3890 <p>
3891
3892
3893
3894 <p><hr></p>
3895 <a name="gmi_exec_finish"></a>
3896 <center><Font Size=+2>gmi_exec_finish</Font> (prg_control.c 259)</center>
3897
3898 <Font Size=+1><u>Syntax</u></Font><p>
3899
3900
3901
3902 <pre>
3903  gmi_exec_finish(mi_h *h);
3904 </pre>
3905
3906
3907
3908
3909 <Font Size=+1><u>Description</u></Font><p>
3910
3911 Continue until function return, the return value is included in the async
3912 response.
3913 <p>
3914
3915
3916 <Font Size=+1><u>Return Value</u></Font><p>
3917
3918 !=0 OK.
3919 <p>
3920
3921
3922
3923 <p><hr></p>
3924 <a name="gmi_exec_interrupt"></a>
3925 <center><Font Size=+2>gmi_exec_interrupt</Font> (prg_control.c 278)</center>
3926
3927 <Font Size=+1><u>Syntax</u></Font><p>
3928
3929
3930
3931 <pre>
3932  gmi_exec_interrupt(mi_h *h);
3933 </pre>
3934
3935
3936
3937
3938 <Font Size=+1><u>Description</u></Font><p>
3939
3940 Stop the program using SIGINT. The corresponding command should be
3941 -exec-interrupt but not even gdb 6.1.1 can do it because the "async" mode
3942 isn't really working.
3943 <p>
3944
3945
3946 <Font Size=+1><u>Return Value</u></Font><p>
3947
3948 Always 1
3949 <p>
3950
3951
3952 <Font Size=+1><u>Example</u></Font><p>
3953
3954
3955 <p>
3956
3957
3958 <p><hr></p>
3959 <a name="gmi_exec_next"></a>
3960 <center><Font Size=+2>gmi_exec_next</Font> (prg_control.c 299)</center>
3961
3962 <Font Size=+1><u>Syntax</u></Font><p>
3963
3964
3965
3966 <pre>
3967  gmi_exec_next(mi_h *h);
3968 </pre>
3969
3970
3971
3972
3973 <Font Size=+1><u>Description</u></Font><p>
3974
3975 Next line of code.
3976 <p>
3977
3978
3979 <Font Size=+1><u>Return Value</u></Font><p>
3980
3981 !=0 OK
3982 <p>
3983
3984
3985
3986 <p><hr></p>
3987 <a name="gmi_exec_next_cnt"></a>
3988 <center><Font Size=+2>gmi_exec_next_cnt</Font> (prg_control.c 315)</center>
3989
3990 <Font Size=+1><u>Syntax</u></Font><p>
3991
3992
3993
3994 <pre>
3995  gmi_exec_next_cnt(mi_h *h, int count);
3996 </pre>
3997
3998
3999
4000
4001 <Font Size=+1><u>Description</u></Font><p>
4002
4003 Skip count lines of code.
4004 <p>
4005
4006
4007 <Font Size=+1><u>Return Value</u></Font><p>
4008
4009 !=0 OK
4010 <p>
4011
4012
4013
4014 <p><hr></p>
4015 <a name="gmi_exec_next_instruction"></a>
4016 <center><Font Size=+2>gmi_exec_next_instruction</Font> (prg_control.c 331)</center>
4017
4018 <Font Size=+1><u>Syntax</u></Font><p>
4019
4020
4021
4022 <pre>
4023  gmi_exec_next_instruction(mi_h *h);
4024 </pre>
4025
4026
4027
4028
4029 <Font Size=+1><u>Description</u></Font><p>
4030
4031 Next line of assembler code.
4032 <p>
4033
4034
4035 <Font Size=+1><u>Return Value</u></Font><p>
4036
4037 !=0 OK
4038 <p>
4039
4040
4041
4042 <p><hr></p>
4043 <a name="gmi_exec_step"></a>
4044 <center><Font Size=+2>gmi_exec_step</Font> (prg_control.c 347)</center>
4045
4046 <Font Size=+1><u>Syntax</u></Font><p>
4047
4048
4049
4050 <pre>
4051  gmi_exec_step(mi_h *h);
4052 </pre>
4053
4054
4055
4056
4057 <Font Size=+1><u>Description</u></Font><p>
4058
4059 Next line of code. Get inside functions.
4060 <p>
4061
4062
4063 <Font Size=+1><u>Return Value</u></Font><p>
4064
4065 !=0 OK
4066 <p>
4067
4068
4069
4070 <p><hr></p>
4071 <a name="gmi_exec_step_cnt"></a>
4072 <center><Font Size=+2>gmi_exec_step_cnt</Font> (prg_control.c 363)</center>
4073
4074 <Font Size=+1><u>Syntax</u></Font><p>
4075
4076
4077
4078 <pre>
4079  gmi_exec_step_cnt(mi_h *h, int count);
4080 </pre>
4081
4082
4083
4084
4085 <Font Size=+1><u>Description</u></Font><p>
4086
4087 Next count lines of code. Get inside functions.
4088 <p>
4089
4090
4091 <Font Size=+1><u>Return Value</u></Font><p>
4092
4093 !=0 OK
4094 <p>
4095
4096
4097
4098 <p><hr></p>
4099 <a name="gmi_exec_step_instruction"></a>
4100 <center><Font Size=+2>gmi_exec_step_instruction</Font> (prg_control.c 379)</center>
4101
4102 <Font Size=+1><u>Syntax</u></Font><p>
4103
4104
4105
4106 <pre>
4107  gmi_exec_step_instruction(mi_h *h);
4108 </pre>
4109
4110
4111
4112
4113 <Font Size=+1><u>Description</u></Font><p>
4114
4115 Next line of assembler code. Get inside calls.
4116 <p>
4117
4118
4119 <Font Size=+1><u>Return Value</u></Font><p>
4120
4121 !=0 OK
4122 <p>
4123
4124
4125
4126 <p><hr></p>
4127 <a name="gmi_exec_until"></a>
4128 <center><Font Size=+2>gmi_exec_until</Font> (prg_control.c 396)</center>
4129
4130 <Font Size=+1><u>Syntax</u></Font><p>
4131
4132
4133
4134 <pre>
4135  gmi_exec_until(mi_h *h, const char *file, int line);
4136 </pre>
4137
4138
4139
4140
4141 <Font Size=+1><u>Description</u></Font><p>
4142
4143 Execute until location is reached. If file is NULL then is until next
4144 line.
4145 <p>
4146
4147
4148 <Font Size=+1><u>Return Value</u></Font><p>
4149
4150 !=0 OK
4151 <p>
4152
4153
4154
4155 <p><hr></p>
4156 <a name="gmi_exec_until_addr"></a>
4157 <center><Font Size=+2>gmi_exec_until_addr</Font> (prg_control.c 412)</center>
4158
4159 <Font Size=+1><u>Syntax</u></Font><p>
4160
4161
4162
4163 <pre>
4164  gmi_exec_until_addr(mi_h *h, void *addr);
4165 </pre>
4166
4167
4168
4169
4170 <Font Size=+1><u>Description</u></Font><p>
4171
4172 Execute until location is reached.
4173 <p>
4174
4175
4176 <Font Size=+1><u>Return Value</u></Font><p>
4177
4178 !=0 OK
4179 <p>
4180
4181
4182
4183 <p><hr></p>
4184 <a name="gmi_exec_return"></a>
4185 <center><Font Size=+2>gmi_exec_return</Font> (prg_control.c 429)</center>
4186
4187 <Font Size=+1><u>Syntax</u></Font><p>
4188
4189
4190
4191 <pre>
4192  gmi_exec_return(mi_h *h);
4193 </pre>
4194
4195
4196
4197
4198 <Font Size=+1><u>Description</u></Font><p>
4199
4200
4201 <p>
4202
4203
4204 <Font Size=+1><u>Return Value</u></Font><p>
4205
4206 A pointer to a new mi_frames structure indicating the current
4207 location. NULL on error.
4208 <p>
4209
4210
4211
4212 <p><hr></p>
4213 <a name="gmi_exec_kill"></a>
4214 <center><Font Size=+2>gmi_exec_kill</Font> (prg_control.c 447)</center>
4215
4216 <Font Size=+1><u>Syntax</u></Font><p>
4217
4218
4219
4220 <pre>
4221  gmi_exec_kill(mi_h *h);
4222 </pre>
4223
4224
4225
4226
4227 <Font Size=+1><u>Description</u></Font><p>
4228
4229 Just kill the program. That's what -exec-abort should do, but it isn't
4230 implemented by gdb. This implementation only works if the interactive mode
4231 is disabled (gmi_gdb_set("confirm","off")).
4232 <p>
4233
4234
4235 <Font Size=+1><u>Return Value</u></Font><p>
4236
4237 !=0 OK
4238 <p>
4239
4240
4241
4242 <p><hr></p>
4243 <a name="gmi_stack_list_frames"></a>
4244 <center><Font Size=+2>gmi_stack_list_frames</Font> (stack_man.c 76)</center>
4245
4246 <Font Size=+1><u>Syntax</u></Font><p>
4247
4248
4249
4250 <pre>
4251  gmi_stack_list_frames(mi_h *h);
4252 </pre>
4253
4254
4255
4256
4257 <Font Size=+1><u>Description</u></Font><p>
4258
4259 List of frames. Arguments aren't filled.
4260 <p>
4261
4262
4263 <Font Size=+1><u>Return Value</u></Font><p>
4264
4265 A new list of mi_frames or NULL on error.
4266 <p>
4267
4268
4269
4270 <p><hr></p>
4271 <a name="gmi_stack_list_frames_r"></a>
4272 <center><Font Size=+2>gmi_stack_list_frames_r</Font> (stack_man.c 93)</center>
4273
4274 <Font Size=+1><u>Syntax</u></Font><p>
4275
4276
4277
4278 <pre>
4279  gmi_stack_list_frames_r(mi_h *h, int from, int to);
4280 </pre>
4281
4282
4283
4284
4285 <Font Size=+1><u>Description</u></Font><p>
4286
4287 List of frames. Arguments aren't filled. Only the frames in the @var{from}
4288  - @var{to} range are returned.
4289 <p>
4290
4291
4292 <Font Size=+1><u>Return Value</u></Font><p>
4293
4294 A new list of mi_frames or NULL on error.
4295 <p>
4296
4297
4298
4299 <p><hr></p>
4300 <a name="gmi_stack_list_arguments"></a>
4301 <center><Font Size=+2>gmi_stack_list_arguments</Font> (stack_man.c 109)</center>
4302
4303 <Font Size=+1><u>Syntax</u></Font><p>
4304
4305
4306
4307 <pre>
4308  gmi_stack_list_arguments(mi_h *h, int show);
4309 </pre>
4310
4311
4312
4313
4314 <Font Size=+1><u>Description</u></Font><p>
4315
4316 List arguments. Only @var{level} and @var{args} filled.
4317 <p>
4318
4319
4320 <Font Size=+1><u>Return Value</u></Font><p>
4321
4322 A new list of mi_frames or NULL on error.
4323 <p>
4324
4325
4326
4327 <p><hr></p>
4328 <a name="gmi_stack_list_arguments_r"></a>
4329 <center><Font Size=+2>gmi_stack_list_arguments_r</Font> (stack_man.c 126)</center>
4330
4331 <Font Size=+1><u>Syntax</u></Font><p>
4332
4333
4334
4335 <pre>
4336  gmi_stack_list_arguments_r(mi_h *h, int show, int from, int to);
4337 </pre>
4338
4339
4340
4341
4342 <Font Size=+1><u>Description</u></Font><p>
4343
4344 List arguments. Only @var{level} and @var{args} filled. Only for the
4345 frames in the @var{from} - @var{to} range.
4346 <p>
4347
4348
4349 <Font Size=+1><u>Return Value</u></Font><p>
4350
4351 A new list of mi_frames or NULL on error.
4352 <p>
4353
4354
4355
4356 <p><hr></p>
4357 <a name="gmi_stack_info_frame"></a>
4358 <center><Font Size=+2>gmi_stack_info_frame</Font> (stack_man.c 142)</center>
4359
4360 <Font Size=+1><u>Syntax</u></Font><p>
4361
4362
4363
4364 <pre>
4365  gmi_stack_info_frame(mi_h *h);
4366 </pre>
4367
4368
4369
4370
4371 <Font Size=+1><u>Description</u></Font><p>
4372
4373 Information about the current frame, including args.
4374 <p>
4375
4376
4377 <Font Size=+1><u>Return Value</u></Font><p>
4378
4379 A new mi_frames or NULL on error.
4380 <p>
4381
4382
4383
4384 <p><hr></p>
4385 <a name="gmi_stack_info_depth"></a>
4386 <center><Font Size=+2>gmi_stack_info_depth</Font> (stack_man.c 158)</center>
4387
4388 <Font Size=+1><u>Syntax</u></Font><p>
4389
4390
4391
4392 <pre>
4393  gmi_stack_info_depth(mi_h *h, int max_depth);
4394 </pre>
4395
4396
4397
4398
4399 <Font Size=+1><u>Description</u></Font><p>
4400
4401 Stack info depth.
4402 <p>
4403
4404
4405 <Font Size=+1><u>Return Value</u></Font><p>
4406
4407 The depth or -1 on error.
4408 <p>
4409
4410
4411
4412 <p><hr></p>
4413 <a name="gmi_stack_info_depth_get"></a>
4414 <center><Font Size=+2>gmi_stack_info_depth_get</Font> (stack_man.c 184)</center>
4415
4416 <Font Size=+1><u>Syntax</u></Font><p>
4417
4418
4419
4420 <pre>
4421  gmi_stack_info_depth_get(mi_h *h);
4422 </pre>
4423
4424
4425
4426
4427 <Font Size=+1><u>Description</u></Font><p>
4428
4429 Set stack info depth.
4430 <p>
4431
4432
4433 <Font Size=+1><u>Return Value</u></Font><p>
4434
4435 The depth or -1 on error.
4436 <p>
4437
4438
4439 <Font Size=+1><u>Example</u></Font><p>
4440
4441
4442 <p>
4443
4444
4445 <p><hr></p>
4446 <a name="gmi_stack_select_frame"></a>
4447 <center><Font Size=+2>gmi_stack_select_frame</Font> (stack_man.c 199)</center>
4448
4449 <Font Size=+1><u>Syntax</u></Font><p>
4450
4451
4452
4453 <pre>
4454  gmi_stack_select_frame(mi_h *h, int framenum);
4455 </pre>
4456
4457
4458
4459
4460 <Font Size=+1><u>Description</u></Font><p>
4461
4462 Change current frame.
4463 <p>
4464
4465
4466 <Font Size=+1><u>Return Value</u></Font><p>
4467
4468 !=0 OK
4469 <p>
4470
4471
4472
4473 <p><hr></p>
4474 <a name="gmi_stack_list_locals"></a>
4475 <center><Font Size=+2>gmi_stack_list_locals</Font> (stack_man.c 215)</center>
4476
4477 <Font Size=+1><u>Syntax</u></Font><p>
4478
4479
4480
4481 <pre>
4482  gmi_stack_list_locals(mi_h *h, int show);
4483 </pre>
4484
4485
4486
4487
4488 <Font Size=+1><u>Description</u></Font><p>
4489
4490 List of local vars.
4491 <p>
4492
4493
4494 <Font Size=+1><u>Return Value</u></Font><p>
4495
4496 A new mi_results tree containing the variables or NULL on error.
4497 <p>
4498
4499
4500
4501 <p><hr></p>
4502 <a name="gmi_target_select"></a>
4503 <center><Font Size=+2>gmi_target_select</Font> (target_man.c 54)</center>
4504
4505 <Font Size=+1><u>Syntax</u></Font><p>
4506
4507
4508
4509 <pre>
4510  gmi_target_select(mi_h *h, const char *type, const char *params);
4511 </pre>
4512
4513
4514
4515
4516 <Font Size=+1><u>Description</u></Font><p>
4517
4518 Connect to a remote gdbserver using the specified methode.
4519 <p>
4520
4521
4522 <Font Size=+1><u>Return Value</u></Font><p>
4523
4524 !=0 OK
4525 <p>
4526
4527
4528
4529 <p><hr></p>
4530 <a name="gmi_target_attach"></a>
4531 <center><Font Size=+2>gmi_target_attach</Font> (target_man.c 70)</center>
4532
4533 <Font Size=+1><u>Syntax</u></Font><p>
4534
4535
4536
4537 <pre>
4538  gmi_target_attach(mi_h *h, pid_t pid);
4539 </pre>
4540
4541
4542
4543
4544 <Font Size=+1><u>Description</u></Font><p>
4545
4546 Attach to an already running process.
4547 <p>
4548
4549
4550 <Font Size=+1><u>Return Value</u></Font><p>
4551
4552 The frame of the current location, NULL on error.
4553 <p>
4554
4555
4556
4557 <p><hr></p>
4558 <a name="gmi_target_detach"></a>
4559 <center><Font Size=+2>gmi_target_detach</Font> (target_man.c 87)</center>
4560
4561 <Font Size=+1><u>Syntax</u></Font><p>
4562
4563
4564
4565 <pre>
4566  gmi_target_detach(mi_h *h);
4567 </pre>
4568
4569
4570
4571
4572 <Font Size=+1><u>Description</u></Font><p>
4573
4574 Detach from an attached process.
4575 <p>
4576
4577
4578 <Font Size=+1><u>Return Value</u></Font><p>
4579
4580 !=0 OK
4581 <p>
4582
4583
4584
4585 <p><hr></p>
4586 <a name="gmi_thread_list_ids"></a>
4587 <center><Font Size=+2>gmi_thread_list_ids</Font> (thread.c 49)</center>
4588
4589 <Font Size=+1><u>Syntax</u></Font><p>
4590
4591
4592
4593 <pre>
4594  gmi_thread_list_ids(mi_h *h, int **list);
4595 </pre>
4596
4597
4598
4599
4600 <Font Size=+1><u>Description</u></Font><p>
4601
4602 List available thread ids.
4603 <p>
4604
4605
4606 <Font Size=+1><u>Return Value</u></Font><p>
4607
4608 !=0 OK
4609 <p>
4610
4611
4612
4613 <p><hr></p>
4614 <a name="gmi_thread_select"></a>
4615 <center><Font Size=+2>gmi_thread_select</Font> (thread.c 65)</center>
4616
4617 <Font Size=+1><u>Syntax</u></Font><p>
4618
4619
4620
4621 <pre>
4622  gmi_thread_select(mi_h *h, int id);
4623 </pre>
4624
4625
4626
4627
4628 <Font Size=+1><u>Description</u></Font><p>
4629
4630 Select a thread.
4631 <p>
4632
4633
4634 <Font Size=+1><u>Return Value</u></Font><p>
4635
4636 A new mi_frames or NULL on error.
4637 <p>
4638
4639
4640
4641 <p><hr></p>
4642 <a name="gmi_thread_list_all_threads"></a>
4643 <center><Font Size=+2>gmi_thread_list_all_threads</Font> (thread.c 82)</center>
4644
4645 <Font Size=+1><u>Syntax</u></Font><p>
4646
4647
4648
4649 <pre>
4650  gmi_thread_list_all_threads(mi_h *h);
4651 </pre>
4652
4653
4654
4655
4656 <Font Size=+1><u>Description</u></Font><p>
4657
4658 Get a list of frames for each available thread. Implemented using "info
4659 thread".
4660 <p>
4661
4662
4663 <Font Size=+1><u>Return Value</u></Font><p>
4664
4665 A kist of frames, NULL on error
4666 <p>
4667
4668
4669
4670 <p><hr></p>
4671 <a name="gmi_var_create_nm"></a>
4672 <center><Font Size=+2>gmi_var_create_nm</Font> (var_obj.c 122)</center>
4673
4674 <Font Size=+1><u>Syntax</u></Font><p>
4675
4676
4677
4678 <pre>
4679  gmi_var_create_nm(mi_h *h, const char *name, int frame, const char *exp);
4680 </pre>
4681
4682
4683
4684
4685 <Font Size=+1><u>Description</u></Font><p>
4686
4687 Create a variable object. I recommend using <a href="#gmi_var_create">gmi_var_create</a> and letting
4688 gdb choose the names.
4689 <p>
4690
4691
4692 <Font Size=+1><u>Return Value</u></Font><p>
4693
4694 A new mi_gvar strcture or NULL on error.
4695 <p>
4696
4697
4698
4699 <p><hr></p>
4700 <a name="gmi_var_create"></a>
4701 <center><Font Size=+2>gmi_var_create</Font> (var_obj.c 139)</center>
4702
4703 <Font Size=+1><u>Syntax</u></Font><p>
4704
4705
4706
4707 <pre>
4708  gmi_var_create(mi_h *h, int frame, const char *exp);
4709 </pre>
4710
4711
4712
4713
4714 <Font Size=+1><u>Description</u></Font><p>
4715
4716 Create a variable object. The name is selected by gdb. Alternative:
4717 <a href="#gmi_full_var_create">gmi_full_var_create</a>.
4718 <p>
4719
4720
4721 <Font Size=+1><u>Return Value</u></Font><p>
4722
4723 A new mi_gvar strcture or NULL on error.
4724 <p>
4725
4726
4727
4728 <p><hr></p>
4729 <a name="gmi_var_delete"></a>
4730 <center><Font Size=+2>gmi_var_delete</Font> (var_obj.c 154)</center>
4731
4732 <Font Size=+1><u>Syntax</u></Font><p>
4733
4734
4735
4736 <pre>
4737  gmi_var_delete(mi_h *h, mi_gvar *var);
4738 </pre>
4739
4740
4741
4742
4743 <Font Size=+1><u>Description</u></Font><p>
4744
4745 Delete a variable object. Doesn't free the mi_gvar data.
4746 <p>
4747
4748
4749 <Font Size=+1><u>Return Value</u></Font><p>
4750
4751 !=0 OK
4752 <p>
4753
4754
4755
4756 <p><hr></p>
4757 <a name="gmi_var_set_format"></a>
4758 <center><Font Size=+2>gmi_var_set_format</Font> (var_obj.c 170)</center>
4759
4760 <Font Size=+1><u>Syntax</u></Font><p>
4761
4762
4763
4764 <pre>
4765  gmi_var_set_format(mi_h *h, mi_gvar *var, enum mi_gvar_fmt format);
4766 </pre>
4767
4768
4769
4770
4771 <Font Size=+1><u>Description</u></Font><p>
4772
4773 Set the format used to represent the result.
4774 <p>
4775
4776
4777 <Font Size=+1><u>Return Value</u></Font><p>
4778
4779 !=0 OK
4780 <p>
4781
4782
4783
4784 <p><hr></p>
4785 <a name="gmi_var_show_format"></a>
4786 <center><Font Size=+2>gmi_var_show_format</Font> (var_obj.c 191)</center>
4787
4788 <Font Size=+1><u>Syntax</u></Font><p>
4789
4790
4791
4792 <pre>
4793  gmi_var_show_format(mi_h *h, mi_gvar *var);
4794 </pre>
4795
4796
4797
4798
4799 <Font Size=+1><u>Description</u></Font><p>
4800
4801 Fill the format field with info from gdb.
4802 <p>
4803
4804
4805 <Font Size=+1><u>Return Value</u></Font><p>
4806
4807 !=0 OK.
4808 <p>
4809
4810
4811
4812 <p><hr></p>
4813 <a name="gmi_var_info_num_children"></a>
4814 <center><Font Size=+2>gmi_var_info_num_children</Font> (var_obj.c 207)</center>
4815
4816 <Font Size=+1><u>Syntax</u></Font><p>
4817
4818
4819
4820 <pre>
4821  gmi_var_info_num_children(mi_h *h, mi_gvar *var);
4822 </pre>
4823
4824
4825
4826
4827 <Font Size=+1><u>Description</u></Font><p>
4828
4829 Fill the numchild field with info from gdb.
4830 <p>
4831
4832
4833 <Font Size=+1><u>Return Value</u></Font><p>
4834
4835 !=0 OK
4836 <p>
4837
4838
4839
4840 <p><hr></p>
4841 <a name="gmi_var_info_type"></a>
4842 <center><Font Size=+2>gmi_var_info_type</Font> (var_obj.c 223)</center>
4843
4844 <Font Size=+1><u>Syntax</u></Font><p>
4845
4846
4847
4848 <pre>
4849  gmi_var_info_type(mi_h *h, mi_gvar *var);
4850 </pre>
4851
4852
4853
4854
4855 <Font Size=+1><u>Description</u></Font><p>
4856
4857 Fill the type field with info from gdb.
4858 <p>
4859
4860
4861 <Font Size=+1><u>Return Value</u></Font><p>
4862
4863 !=0 OK
4864 <p>
4865
4866
4867
4868 <p><hr></p>
4869 <a name="gmi_var_info_expression"></a>
4870 <center><Font Size=+2>gmi_var_info_expression</Font> (var_obj.c 240)</center>
4871
4872 <Font Size=+1><u>Syntax</u></Font><p>
4873
4874
4875
4876 <pre>
4877  gmi_var_info_expression(mi_h *h, mi_gvar *var);
4878 </pre>
4879
4880
4881
4882
4883 <Font Size=+1><u>Description</u></Font><p>
4884
4885 Fill the expression and lang fields with info from gdb. Note that lang
4886 isn't filled during creation.
4887 <p>
4888
4889
4890 <Font Size=+1><u>Return Value</u></Font><p>
4891
4892 !=0 OK
4893 <p>
4894
4895
4896
4897 <p><hr></p>
4898 <a name="gmi_var_show_attributes"></a>
4899 <center><Font Size=+2>gmi_var_show_attributes</Font> (var_obj.c 258)</center>
4900
4901 <Font Size=+1><u>Syntax</u></Font><p>
4902
4903
4904
4905 <pre>
4906  gmi_var_show_attributes(mi_h *h, mi_gvar *var);
4907 </pre>
4908
4909
4910
4911
4912 <Font Size=+1><u>Description</u></Font><p>
4913
4914 Fill the attr field with info from gdb. Note that attr isn't filled
4915 during creation.
4916 <p>
4917
4918
4919 <Font Size=+1><u>Return Value</u></Font><p>
4920
4921 !=0 OK
4922 <p>
4923
4924
4925
4926 <p><hr></p>
4927 <a name="gmi_full_var_create"></a>
4928 <center><Font Size=+2>gmi_full_var_create</Font> (var_obj.c 275)</center>
4929
4930 <Font Size=+1><u>Syntax</u></Font><p>
4931
4932
4933
4934 <pre>
4935  gmi_full_var_create(mi_h *h, int frame, const char *exp);
4936 </pre>
4937
4938
4939
4940
4941 <Font Size=+1><u>Description</u></Font><p>
4942
4943 Create the variable and also fill the lang and attr fields. The name is
4944 selected by gdb.
4945 <p>
4946
4947
4948 <Font Size=+1><u>Return Value</u></Font><p>
4949
4950 A new mi_gvar strcture or NULL on error.
4951 <p>
4952
4953
4954
4955 <p><hr></p>
4956 <a name="gmi_var_update"></a>
4957 <center><Font Size=+2>gmi_var_update</Font> (var_obj.c 297)</center>
4958
4959 <Font Size=+1><u>Syntax</u></Font><p>
4960
4961
4962
4963 <pre>
4964  gmi_var_update(mi_h *h, mi_gvar *var, mi_gvar_chg **changed);
4965 </pre>
4966
4967
4968
4969
4970 <Font Size=+1><u>Description</u></Font><p>
4971
4972 Update variable. Use NULL for all. Note that *changed can be NULL if none
4973 updated.
4974 <p>
4975
4976
4977 <Font Size=+1><u>Return Value</u></Font><p>
4978
4979 !=0 OK. The @var{changed} list contains the list of changed vars.
4980 <p>
4981
4982
4983
4984 <p><hr></p>
4985 <a name="gmi_var_assign"></a>
4986 <center><Font Size=+2>gmi_var_assign</Font> (var_obj.c 313)</center>
4987
4988 <Font Size=+1><u>Syntax</u></Font><p>
4989
4990
4991
4992 <pre>
4993  gmi_var_assign(mi_h *h, mi_gvar *var, const char *expression);
4994 </pre>
4995
4996
4997
4998
4999 <Font Size=+1><u>Description</u></Font><p>
5000
5001 Change variable. The new value replaces the @var{value} field.
5002 <p>
5003
5004
5005 <Font Size=+1><u>Return Value</u></Font><p>
5006
5007 !=0 OK
5008 <p>
5009
5010
5011
5012 <p><hr></p>
5013 <a name="gmi_var_evaluate_expression"></a>
5014 <center><Font Size=+2>gmi_var_evaluate_expression</Font> (var_obj.c 337)</center>
5015
5016 <Font Size=+1><u>Syntax</u></Font><p>
5017
5018
5019
5020 <pre>
5021  gmi_var_evaluate_expression(mi_h *h, mi_gvar *var);
5022 </pre>
5023
5024
5025
5026
5027 <Font Size=+1><u>Description</u></Font><p>
5028
5029 Fill the value field getting the current value for a variable.
5030 <p>
5031
5032
5033 <Font Size=+1><u>Return Value</u></Font><p>
5034
5035 !=0 OK, value contains the result.
5036 <p>
5037
5038
5039
5040 <p><hr></p>
5041 <a name="gmi_var_list_children"></a>
5042 <center><Font Size=+2>gmi_var_list_children</Font> (var_obj.c 362)</center>
5043
5044 <Font Size=+1><u>Syntax</u></Font><p>
5045
5046
5047
5048 <pre>
5049  gmi_var_list_children(mi_h *h, mi_gvar *var);
5050 </pre>
5051
5052
5053
5054
5055 <Font Size=+1><u>Description</u></Font><p>
5056
5057 List children. It ONLY returns the first level information. :-(<br>
5058   On success the child field contains the list of children.
5059 <p>
5060
5061
5062 <Font Size=+1><u>Return Value</u></Font><p>
5063
5064 !=0 OK
5065 <p>
5066
5067
5068
5069
5070
5071 </body>
5072 </html>