1 /* Annotation routines for GDB.
2 Copyright (C) 1986, 1989, 1990, 1991, 1992, 1994, 1995, 1996, 1998, 1999,
3 2000, 2007, 2008 Free Software Foundation, Inc.
5 This file is part of GDB.
7 This program is free software; you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation; either version 3 of the License, or
10 (at your option) any later version.
12 This program is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
17 You should have received a copy of the GNU General Public License
18 along with this program. If not, see <http://www.gnu.org/licenses/>. */
25 #include "breakpoint.h"
28 /* Prototypes for local functions. */
30 extern void _initialize_annotate (void);
32 static void print_value_flags (struct type
*);
34 static void breakpoint_changed (struct breakpoint
*);
36 void (*deprecated_annotate_starting_hook
) (void);
37 void (*deprecated_annotate_stopped_hook
) (void);
38 void (*deprecated_annotate_signalled_hook
) (void);
39 void (*deprecated_annotate_signal_hook
) (void);
40 void (*deprecated_annotate_exited_hook
) (void);
42 static int ignore_count_changed
= 0;
45 print_value_flags (struct type
*t
)
47 if (can_dereference (t
))
48 printf_filtered (("*"));
50 printf_filtered (("-"));
54 breakpoints_changed (void)
56 if (annotation_level
== 2)
58 target_terminal_ours ();
59 printf_unfiltered (("\n\032\032breakpoints-invalid\n"));
60 if (ignore_count_changed
)
61 ignore_count_changed
= 0; /* Avoid multiple break annotations. */
65 /* The GUI needs to be informed of ignore_count changes, but we don't
66 want to provide successive multiple breakpoints-invalid messages
67 that are all caused by the fact that the ignore count is changing
68 (which could keep the GUI very busy). One is enough, after the
69 target actually "stops". */
72 annotate_ignore_count_change (void)
74 if (annotation_level
> 1)
75 ignore_count_changed
= 1;
79 annotate_breakpoint (int num
)
81 if (annotation_level
> 1)
82 printf_filtered (("\n\032\032breakpoint %d\n"), num
);
86 annotate_catchpoint (int num
)
88 if (annotation_level
> 1)
89 printf_filtered (("\n\032\032catchpoint %d\n"), num
);
93 annotate_watchpoint (int num
)
95 if (annotation_level
> 1)
96 printf_filtered (("\n\032\032watchpoint %d\n"), num
);
100 annotate_starting (void)
103 if (deprecated_annotate_starting_hook
)
104 deprecated_annotate_starting_hook ();
107 if (annotation_level
> 1)
109 printf_filtered (("\n\032\032starting\n"));
115 annotate_stopped (void)
117 if (deprecated_annotate_stopped_hook
)
118 deprecated_annotate_stopped_hook ();
121 if (annotation_level
> 1)
122 printf_filtered (("\n\032\032stopped\n"));
124 if (annotation_level
> 1 && ignore_count_changed
)
126 ignore_count_changed
= 0;
127 breakpoints_changed ();
132 annotate_exited (int exitstatus
)
134 if (deprecated_annotate_exited_hook
)
135 deprecated_annotate_exited_hook ();
138 if (annotation_level
> 1)
139 printf_filtered (("\n\032\032exited %d\n"), exitstatus
);
144 annotate_signalled (void)
146 if (deprecated_annotate_signalled_hook
)
147 deprecated_annotate_signalled_hook ();
149 if (annotation_level
> 1)
150 printf_filtered (("\n\032\032signalled\n"));
154 annotate_signal_name (void)
156 if (annotation_level
== 2)
157 printf_filtered (("\n\032\032signal-name\n"));
161 annotate_signal_name_end (void)
163 if (annotation_level
== 2)
164 printf_filtered (("\n\032\032signal-name-end\n"));
168 annotate_signal_string (void)
170 if (annotation_level
== 2)
171 printf_filtered (("\n\032\032signal-string\n"));
175 annotate_signal_string_end (void)
177 if (annotation_level
== 2)
178 printf_filtered (("\n\032\032signal-string-end\n"));
182 annotate_signal (void)
184 if (deprecated_annotate_signal_hook
)
185 deprecated_annotate_signal_hook ();
187 if (annotation_level
> 1)
188 printf_filtered (("\n\032\032signal\n"));
192 annotate_breakpoints_headers (void)
194 if (annotation_level
== 2)
195 printf_filtered (("\n\032\032breakpoints-headers\n"));
199 annotate_field (int num
)
201 if (annotation_level
== 2)
202 printf_filtered (("\n\032\032field %d\n"), num
);
206 annotate_breakpoints_table (void)
208 if (annotation_level
== 2)
209 printf_filtered (("\n\032\032breakpoints-table\n"));
213 annotate_record (void)
215 if (annotation_level
== 2)
216 printf_filtered (("\n\032\032record\n"));
220 annotate_breakpoints_table_end (void)
222 if (annotation_level
== 2)
223 printf_filtered (("\n\032\032breakpoints-table-end\n"));
227 annotate_frames_invalid (void)
229 if (annotation_level
== 2)
231 target_terminal_ours ();
232 printf_unfiltered (("\n\032\032frames-invalid\n"));
237 annotate_field_begin (struct type
*type
)
239 if (annotation_level
== 2)
241 printf_filtered (("\n\032\032field-begin "));
242 print_value_flags (type
);
243 printf_filtered (("\n"));
248 annotate_field_name_end (void)
250 if (annotation_level
== 2)
251 printf_filtered (("\n\032\032field-name-end\n"));
255 annotate_field_value (void)
257 if (annotation_level
== 2)
258 printf_filtered (("\n\032\032field-value\n"));
262 annotate_field_end (void)
264 if (annotation_level
== 2)
265 printf_filtered (("\n\032\032field-end\n"));
271 if (annotation_level
> 1)
272 printf_filtered (("\n\032\032quit\n"));
276 annotate_error (void)
278 if (annotation_level
> 1)
279 printf_filtered (("\n\032\032error\n"));
283 annotate_error_begin (void)
285 if (annotation_level
> 1)
286 fprintf_filtered (gdb_stderr
, "\n\032\032error-begin\n");
290 annotate_value_history_begin (int histindex
, struct type
*type
)
292 if (annotation_level
== 2)
294 printf_filtered (("\n\032\032value-history-begin %d "), histindex
);
295 print_value_flags (type
);
296 printf_filtered (("\n"));
301 annotate_value_begin (struct type
*type
)
303 if (annotation_level
== 2)
305 printf_filtered (("\n\032\032value-begin "));
306 print_value_flags (type
);
307 printf_filtered (("\n"));
312 annotate_value_history_value (void)
314 if (annotation_level
== 2)
315 printf_filtered (("\n\032\032value-history-value\n"));
319 annotate_value_history_end (void)
321 if (annotation_level
== 2)
322 printf_filtered (("\n\032\032value-history-end\n"));
326 annotate_value_end (void)
328 if (annotation_level
== 2)
329 printf_filtered (("\n\032\032value-end\n"));
333 annotate_display_begin (void)
335 if (annotation_level
== 2)
336 printf_filtered (("\n\032\032display-begin\n"));
340 annotate_display_number_end (void)
342 if (annotation_level
== 2)
343 printf_filtered (("\n\032\032display-number-end\n"));
347 annotate_display_format (void)
349 if (annotation_level
== 2)
350 printf_filtered (("\n\032\032display-format\n"));
354 annotate_display_expression (void)
356 if (annotation_level
== 2)
357 printf_filtered (("\n\032\032display-expression\n"));
361 annotate_display_expression_end (void)
363 if (annotation_level
== 2)
364 printf_filtered (("\n\032\032display-expression-end\n"));
368 annotate_display_value (void)
370 if (annotation_level
== 2)
371 printf_filtered (("\n\032\032display-value\n"));
375 annotate_display_end (void)
377 if (annotation_level
== 2)
378 printf_filtered (("\n\032\032display-end\n"));
382 annotate_arg_begin (void)
384 if (annotation_level
== 2)
385 printf_filtered (("\n\032\032arg-begin\n"));
389 annotate_arg_name_end (void)
391 if (annotation_level
== 2)
392 printf_filtered (("\n\032\032arg-name-end\n"));
396 annotate_arg_value (struct type
*type
)
398 if (annotation_level
== 2)
400 printf_filtered (("\n\032\032arg-value "));
401 print_value_flags (type
);
402 printf_filtered (("\n"));
407 annotate_arg_end (void)
409 if (annotation_level
== 2)
410 printf_filtered (("\n\032\032arg-end\n"));
414 annotate_source (char *filename
, int line
, int character
, int mid
, CORE_ADDR pc
)
416 if (annotation_level
> 1)
417 printf_filtered (("\n\032\032source "));
419 printf_filtered (("\032\032"));
421 printf_filtered (("%s:%d:%d:%s:0x"), filename
,
423 mid
? "middle" : "beg");
424 deprecated_print_address_numeric (pc
, 0, gdb_stdout
);
425 printf_filtered (("\n"));
429 annotate_frame_begin (int level
, CORE_ADDR pc
)
431 if (annotation_level
> 1)
433 printf_filtered (("\n\032\032frame-begin %d 0x"), level
);
434 deprecated_print_address_numeric (pc
, 0, gdb_stdout
);
435 printf_filtered (("\n"));
440 annotate_function_call (void)
442 if (annotation_level
== 2)
443 printf_filtered (("\n\032\032function-call\n"));
447 annotate_signal_handler_caller (void)
449 if (annotation_level
== 2)
450 printf_filtered (("\n\032\032signal-handler-caller\n"));
454 annotate_frame_address (void)
456 if (annotation_level
== 2)
457 printf_filtered (("\n\032\032frame-address\n"));
461 annotate_frame_address_end (void)
463 if (annotation_level
== 2)
464 printf_filtered (("\n\032\032frame-address-end\n"));
468 annotate_frame_function_name (void)
470 if (annotation_level
== 2)
471 printf_filtered (("\n\032\032frame-function-name\n"));
475 annotate_frame_args (void)
477 if (annotation_level
== 2)
478 printf_filtered (("\n\032\032frame-args\n"));
482 annotate_frame_source_begin (void)
484 if (annotation_level
== 2)
485 printf_filtered (("\n\032\032frame-source-begin\n"));
489 annotate_frame_source_file (void)
491 if (annotation_level
== 2)
492 printf_filtered (("\n\032\032frame-source-file\n"));
496 annotate_frame_source_file_end (void)
498 if (annotation_level
== 2)
499 printf_filtered (("\n\032\032frame-source-file-end\n"));
503 annotate_frame_source_line (void)
505 if (annotation_level
== 2)
506 printf_filtered (("\n\032\032frame-source-line\n"));
510 annotate_frame_source_end (void)
512 if (annotation_level
== 2)
513 printf_filtered (("\n\032\032frame-source-end\n"));
517 annotate_frame_where (void)
519 if (annotation_level
== 2)
520 printf_filtered (("\n\032\032frame-where\n"));
524 annotate_frame_end (void)
526 if (annotation_level
== 2)
527 printf_filtered (("\n\032\032frame-end\n"));
531 annotate_array_section_begin (int index
, struct type
*elttype
)
533 if (annotation_level
== 2)
535 printf_filtered (("\n\032\032array-section-begin %d "), index
);
536 print_value_flags (elttype
);
537 printf_filtered (("\n"));
542 annotate_elt_rep (unsigned int repcount
)
544 if (annotation_level
== 2)
545 printf_filtered (("\n\032\032elt-rep %u\n"), repcount
);
549 annotate_elt_rep_end (void)
551 if (annotation_level
== 2)
552 printf_filtered (("\n\032\032elt-rep-end\n"));
558 if (annotation_level
== 2)
559 printf_filtered (("\n\032\032elt\n"));
563 annotate_array_section_end (void)
565 if (annotation_level
== 2)
566 printf_filtered (("\n\032\032array-section-end\n"));
570 breakpoint_changed (struct breakpoint
*b
)
572 breakpoints_changed ();
576 _initialize_annotate (void)
578 if (annotation_level
== 2)
580 deprecated_delete_breakpoint_hook
= breakpoint_changed
;
581 deprecated_modify_breakpoint_hook
= breakpoint_changed
;