1e93f7393Sniklas /* Annotation routines for GDB.
2b725ae77Skettenis Copyright 1986, 1989, 1990, 1991, 1992, 1994, 1995, 1996, 1998, 1999,
3b725ae77Skettenis 2000 Free Software Foundation, Inc.
4e93f7393Sniklas
5e93f7393Sniklas This file is part of GDB.
6e93f7393Sniklas
7e93f7393Sniklas This program is free software; you can redistribute it and/or modify
8e93f7393Sniklas it under the terms of the GNU General Public License as published by
9e93f7393Sniklas the Free Software Foundation; either version 2 of the License, or
10e93f7393Sniklas (at your option) any later version.
11e93f7393Sniklas
12e93f7393Sniklas This program is distributed in the hope that it will be useful,
13e93f7393Sniklas but WITHOUT ANY WARRANTY; without even the implied warranty of
14e93f7393Sniklas MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15e93f7393Sniklas GNU General Public License for more details.
16e93f7393Sniklas
17e93f7393Sniklas You should have received a copy of the GNU General Public License
18e93f7393Sniklas along with this program; if not, write to the Free Software
19b725ae77Skettenis Foundation, Inc., 59 Temple Place - Suite 330,
20b725ae77Skettenis Boston, MA 02111-1307, USA. */
21e93f7393Sniklas
22e93f7393Sniklas #include "defs.h"
23e93f7393Sniklas #include "annotate.h"
24e93f7393Sniklas #include "value.h"
25e93f7393Sniklas #include "target.h"
26e93f7393Sniklas #include "gdbtypes.h"
27e93f7393Sniklas #include "breakpoint.h"
28e93f7393Sniklas
29b725ae77Skettenis
30b725ae77Skettenis /* Prototypes for local functions. */
31b725ae77Skettenis
32b725ae77Skettenis extern void _initialize_annotate (void);
33b725ae77Skettenis
34b725ae77Skettenis static void print_value_flags (struct type *);
35b725ae77Skettenis
36b725ae77Skettenis static void breakpoint_changed (struct breakpoint *);
37b725ae77Skettenis
38*63addd46Skettenis void (*deprecated_annotate_starting_hook) (void);
39*63addd46Skettenis void (*deprecated_annotate_stopped_hook) (void);
40*63addd46Skettenis void (*deprecated_annotate_signalled_hook) (void);
41*63addd46Skettenis void (*deprecated_annotate_signal_hook) (void);
42*63addd46Skettenis void (*deprecated_annotate_exited_hook) (void);
43b725ae77Skettenis
44b725ae77Skettenis static int ignore_count_changed = 0;
45e93f7393Sniklas
46e93f7393Sniklas static void
print_value_flags(struct type * t)47b725ae77Skettenis print_value_flags (struct type *t)
48e93f7393Sniklas {
49e93f7393Sniklas if (can_dereference (t))
50e93f7393Sniklas printf_filtered ("*");
51e93f7393Sniklas else
52e93f7393Sniklas printf_filtered ("-");
53e93f7393Sniklas }
54e93f7393Sniklas
55e93f7393Sniklas void
breakpoints_changed(void)56b725ae77Skettenis breakpoints_changed (void)
57e93f7393Sniklas {
58e93f7393Sniklas if (annotation_level > 1)
59e93f7393Sniklas {
60e93f7393Sniklas target_terminal_ours ();
61e93f7393Sniklas printf_unfiltered ("\n\032\032breakpoints-invalid\n");
62b725ae77Skettenis if (ignore_count_changed)
63b725ae77Skettenis ignore_count_changed = 0; /* Avoid multiple break annotations. */
64e93f7393Sniklas }
65e93f7393Sniklas }
66e93f7393Sniklas
67b725ae77Skettenis /* The GUI needs to be informed of ignore_count changes, but we don't
68b725ae77Skettenis want to provide successive multiple breakpoints-invalid messages
69b725ae77Skettenis that are all caused by the fact that the ignore count is changing
70b725ae77Skettenis (which could keep the GUI very busy). One is enough, after the
71b725ae77Skettenis target actually "stops". */
72b725ae77Skettenis
73e93f7393Sniklas void
annotate_ignore_count_change(void)74b725ae77Skettenis annotate_ignore_count_change (void)
75b725ae77Skettenis {
76b725ae77Skettenis if (annotation_level > 1)
77b725ae77Skettenis ignore_count_changed = 1;
78b725ae77Skettenis }
79b725ae77Skettenis
80b725ae77Skettenis void
annotate_breakpoint(int num)81b725ae77Skettenis annotate_breakpoint (int num)
82e93f7393Sniklas {
83e93f7393Sniklas if (annotation_level > 1)
84e93f7393Sniklas printf_filtered ("\n\032\032breakpoint %d\n", num);
85e93f7393Sniklas }
86e93f7393Sniklas
87e93f7393Sniklas void
annotate_catchpoint(int num)88b725ae77Skettenis annotate_catchpoint (int num)
89b725ae77Skettenis {
90b725ae77Skettenis if (annotation_level > 1)
91b725ae77Skettenis printf_filtered ("\n\032\032catchpoint %d\n", num);
92b725ae77Skettenis }
93b725ae77Skettenis
94b725ae77Skettenis void
annotate_watchpoint(int num)95b725ae77Skettenis annotate_watchpoint (int num)
96e93f7393Sniklas {
97e93f7393Sniklas if (annotation_level > 1)
98e93f7393Sniklas printf_filtered ("\n\032\032watchpoint %d\n", num);
99e93f7393Sniklas }
100e93f7393Sniklas
101e93f7393Sniklas void
annotate_starting(void)102b725ae77Skettenis annotate_starting (void)
103b725ae77Skettenis {
104b725ae77Skettenis
105*63addd46Skettenis if (deprecated_annotate_starting_hook)
106*63addd46Skettenis deprecated_annotate_starting_hook ();
107b725ae77Skettenis else
108e93f7393Sniklas {
109e93f7393Sniklas if (annotation_level > 1)
110e93f7393Sniklas {
111e93f7393Sniklas printf_filtered ("\n\032\032starting\n");
112e93f7393Sniklas }
113e93f7393Sniklas }
114b725ae77Skettenis }
115e93f7393Sniklas
116e93f7393Sniklas void
annotate_stopped(void)117b725ae77Skettenis annotate_stopped (void)
118b725ae77Skettenis {
119*63addd46Skettenis if (deprecated_annotate_stopped_hook)
120*63addd46Skettenis deprecated_annotate_stopped_hook ();
121b725ae77Skettenis else
122e93f7393Sniklas {
123e93f7393Sniklas if (annotation_level > 1)
124e93f7393Sniklas printf_filtered ("\n\032\032stopped\n");
125e93f7393Sniklas }
126b725ae77Skettenis if (annotation_level > 1 && ignore_count_changed)
127b725ae77Skettenis {
128b725ae77Skettenis ignore_count_changed = 0;
129b725ae77Skettenis breakpoints_changed ();
130b725ae77Skettenis }
131b725ae77Skettenis }
132e93f7393Sniklas
133e93f7393Sniklas void
annotate_exited(int exitstatus)134b725ae77Skettenis annotate_exited (int exitstatus)
135b725ae77Skettenis {
136*63addd46Skettenis if (deprecated_annotate_exited_hook)
137*63addd46Skettenis deprecated_annotate_exited_hook ();
138b725ae77Skettenis else
139e93f7393Sniklas {
140e93f7393Sniklas if (annotation_level > 1)
141e93f7393Sniklas printf_filtered ("\n\032\032exited %d\n", exitstatus);
142e93f7393Sniklas }
143b725ae77Skettenis }
144e93f7393Sniklas
145e93f7393Sniklas void
annotate_signalled(void)146b725ae77Skettenis annotate_signalled (void)
147e93f7393Sniklas {
148*63addd46Skettenis if (deprecated_annotate_signalled_hook)
149*63addd46Skettenis deprecated_annotate_signalled_hook ();
150b725ae77Skettenis
151e93f7393Sniklas if (annotation_level > 1)
152e93f7393Sniklas printf_filtered ("\n\032\032signalled\n");
153e93f7393Sniklas }
154e93f7393Sniklas
155e93f7393Sniklas void
annotate_signal_name(void)156b725ae77Skettenis annotate_signal_name (void)
157e93f7393Sniklas {
158b725ae77Skettenis if (annotation_level == 2)
159e93f7393Sniklas printf_filtered ("\n\032\032signal-name\n");
160e93f7393Sniklas }
161e93f7393Sniklas
162e93f7393Sniklas void
annotate_signal_name_end(void)163b725ae77Skettenis annotate_signal_name_end (void)
164e93f7393Sniklas {
165b725ae77Skettenis if (annotation_level == 2)
166e93f7393Sniklas printf_filtered ("\n\032\032signal-name-end\n");
167e93f7393Sniklas }
168e93f7393Sniklas
169e93f7393Sniklas void
annotate_signal_string(void)170b725ae77Skettenis annotate_signal_string (void)
171e93f7393Sniklas {
172b725ae77Skettenis if (annotation_level == 2)
173e93f7393Sniklas printf_filtered ("\n\032\032signal-string\n");
174e93f7393Sniklas }
175e93f7393Sniklas
176e93f7393Sniklas void
annotate_signal_string_end(void)177b725ae77Skettenis annotate_signal_string_end (void)
178e93f7393Sniklas {
179b725ae77Skettenis if (annotation_level == 2)
180e93f7393Sniklas printf_filtered ("\n\032\032signal-string-end\n");
181e93f7393Sniklas }
182e93f7393Sniklas
183e93f7393Sniklas void
annotate_signal(void)184b725ae77Skettenis annotate_signal (void)
185e93f7393Sniklas {
186*63addd46Skettenis if (deprecated_annotate_signal_hook)
187*63addd46Skettenis deprecated_annotate_signal_hook ();
188b725ae77Skettenis
189e93f7393Sniklas if (annotation_level > 1)
190e93f7393Sniklas printf_filtered ("\n\032\032signal\n");
191e93f7393Sniklas }
192e93f7393Sniklas
193e93f7393Sniklas void
annotate_breakpoints_headers(void)194b725ae77Skettenis annotate_breakpoints_headers (void)
195e93f7393Sniklas {
196b725ae77Skettenis if (annotation_level == 2)
197e93f7393Sniklas printf_filtered ("\n\032\032breakpoints-headers\n");
198e93f7393Sniklas }
199e93f7393Sniklas
200e93f7393Sniklas void
annotate_field(int num)201b725ae77Skettenis annotate_field (int num)
202e93f7393Sniklas {
203b725ae77Skettenis if (annotation_level == 2)
204e93f7393Sniklas printf_filtered ("\n\032\032field %d\n", num);
205e93f7393Sniklas }
206e93f7393Sniklas
207e93f7393Sniklas void
annotate_breakpoints_table(void)208b725ae77Skettenis annotate_breakpoints_table (void)
209e93f7393Sniklas {
210b725ae77Skettenis if (annotation_level == 2)
211e93f7393Sniklas printf_filtered ("\n\032\032breakpoints-table\n");
212e93f7393Sniklas }
213e93f7393Sniklas
214e93f7393Sniklas void
annotate_record(void)215b725ae77Skettenis annotate_record (void)
216e93f7393Sniklas {
217b725ae77Skettenis if (annotation_level == 2)
218e93f7393Sniklas printf_filtered ("\n\032\032record\n");
219e93f7393Sniklas }
220e93f7393Sniklas
221e93f7393Sniklas void
annotate_breakpoints_table_end(void)222b725ae77Skettenis annotate_breakpoints_table_end (void)
223e93f7393Sniklas {
224b725ae77Skettenis if (annotation_level == 2)
225e93f7393Sniklas printf_filtered ("\n\032\032breakpoints-table-end\n");
226e93f7393Sniklas }
227e93f7393Sniklas
228e93f7393Sniklas void
annotate_frames_invalid(void)229b725ae77Skettenis annotate_frames_invalid (void)
230e93f7393Sniklas {
231e93f7393Sniklas if (annotation_level > 1)
232e93f7393Sniklas {
233e93f7393Sniklas target_terminal_ours ();
234e93f7393Sniklas printf_unfiltered ("\n\032\032frames-invalid\n");
235e93f7393Sniklas }
236e93f7393Sniklas }
237e93f7393Sniklas
238e93f7393Sniklas void
annotate_field_begin(struct type * type)239b725ae77Skettenis annotate_field_begin (struct type *type)
240e93f7393Sniklas {
241b725ae77Skettenis if (annotation_level == 2)
242e93f7393Sniklas {
243e93f7393Sniklas printf_filtered ("\n\032\032field-begin ");
244e93f7393Sniklas print_value_flags (type);
245e93f7393Sniklas printf_filtered ("\n");
246e93f7393Sniklas }
247e93f7393Sniklas }
248e93f7393Sniklas
249e93f7393Sniklas void
annotate_field_name_end(void)250b725ae77Skettenis annotate_field_name_end (void)
251e93f7393Sniklas {
252b725ae77Skettenis if (annotation_level == 2)
253e93f7393Sniklas printf_filtered ("\n\032\032field-name-end\n");
254e93f7393Sniklas }
255e93f7393Sniklas
256e93f7393Sniklas void
annotate_field_value(void)257b725ae77Skettenis annotate_field_value (void)
258e93f7393Sniklas {
259b725ae77Skettenis if (annotation_level == 2)
260e93f7393Sniklas printf_filtered ("\n\032\032field-value\n");
261e93f7393Sniklas }
262e93f7393Sniklas
263e93f7393Sniklas void
annotate_field_end(void)264b725ae77Skettenis annotate_field_end (void)
265e93f7393Sniklas {
266b725ae77Skettenis if (annotation_level == 2)
267e93f7393Sniklas printf_filtered ("\n\032\032field-end\n");
268e93f7393Sniklas }
269e93f7393Sniklas
270e93f7393Sniklas void
annotate_quit(void)271b725ae77Skettenis annotate_quit (void)
272e93f7393Sniklas {
273e93f7393Sniklas if (annotation_level > 1)
274e93f7393Sniklas printf_filtered ("\n\032\032quit\n");
275e93f7393Sniklas }
276e93f7393Sniklas
277e93f7393Sniklas void
annotate_error(void)278b725ae77Skettenis annotate_error (void)
279e93f7393Sniklas {
280e93f7393Sniklas if (annotation_level > 1)
281e93f7393Sniklas printf_filtered ("\n\032\032error\n");
282e93f7393Sniklas }
283e93f7393Sniklas
284e93f7393Sniklas void
annotate_error_begin(void)285b725ae77Skettenis annotate_error_begin (void)
286e93f7393Sniklas {
287e93f7393Sniklas if (annotation_level > 1)
288e93f7393Sniklas fprintf_filtered (gdb_stderr, "\n\032\032error-begin\n");
289e93f7393Sniklas }
290e93f7393Sniklas
291e93f7393Sniklas void
annotate_value_history_begin(int histindex,struct type * type)292b725ae77Skettenis annotate_value_history_begin (int histindex, struct type *type)
293e93f7393Sniklas {
294b725ae77Skettenis if (annotation_level == 2)
295e93f7393Sniklas {
296e93f7393Sniklas printf_filtered ("\n\032\032value-history-begin %d ", histindex);
297e93f7393Sniklas print_value_flags (type);
298e93f7393Sniklas printf_filtered ("\n");
299e93f7393Sniklas }
300e93f7393Sniklas }
301e93f7393Sniklas
302e93f7393Sniklas void
annotate_value_begin(struct type * type)303b725ae77Skettenis annotate_value_begin (struct type *type)
304e93f7393Sniklas {
305b725ae77Skettenis if (annotation_level == 2)
306e93f7393Sniklas {
307e93f7393Sniklas printf_filtered ("\n\032\032value-begin ");
308e93f7393Sniklas print_value_flags (type);
309e93f7393Sniklas printf_filtered ("\n");
310e93f7393Sniklas }
311e93f7393Sniklas }
312e93f7393Sniklas
313e93f7393Sniklas void
annotate_value_history_value(void)314b725ae77Skettenis annotate_value_history_value (void)
315e93f7393Sniklas {
316b725ae77Skettenis if (annotation_level == 2)
317e93f7393Sniklas printf_filtered ("\n\032\032value-history-value\n");
318e93f7393Sniklas }
319e93f7393Sniklas
320e93f7393Sniklas void
annotate_value_history_end(void)321b725ae77Skettenis annotate_value_history_end (void)
322e93f7393Sniklas {
323b725ae77Skettenis if (annotation_level == 2)
324e93f7393Sniklas printf_filtered ("\n\032\032value-history-end\n");
325e93f7393Sniklas }
326e93f7393Sniklas
327e93f7393Sniklas void
annotate_value_end(void)328b725ae77Skettenis annotate_value_end (void)
329e93f7393Sniklas {
330b725ae77Skettenis if (annotation_level == 2)
331e93f7393Sniklas printf_filtered ("\n\032\032value-end\n");
332e93f7393Sniklas }
333e93f7393Sniklas
334e93f7393Sniklas void
annotate_display_begin(void)335b725ae77Skettenis annotate_display_begin (void)
336e93f7393Sniklas {
337b725ae77Skettenis if (annotation_level == 2)
338e93f7393Sniklas printf_filtered ("\n\032\032display-begin\n");
339e93f7393Sniklas }
340e93f7393Sniklas
341e93f7393Sniklas void
annotate_display_number_end(void)342b725ae77Skettenis annotate_display_number_end (void)
343e93f7393Sniklas {
344b725ae77Skettenis if (annotation_level == 2)
345e93f7393Sniklas printf_filtered ("\n\032\032display-number-end\n");
346e93f7393Sniklas }
347e93f7393Sniklas
348e93f7393Sniklas void
annotate_display_format(void)349b725ae77Skettenis annotate_display_format (void)
350e93f7393Sniklas {
351b725ae77Skettenis if (annotation_level == 2)
352e93f7393Sniklas printf_filtered ("\n\032\032display-format\n");
353e93f7393Sniklas }
354e93f7393Sniklas
355e93f7393Sniklas void
annotate_display_expression(void)356b725ae77Skettenis annotate_display_expression (void)
357e93f7393Sniklas {
358b725ae77Skettenis if (annotation_level == 2)
359e93f7393Sniklas printf_filtered ("\n\032\032display-expression\n");
360e93f7393Sniklas }
361e93f7393Sniklas
362e93f7393Sniklas void
annotate_display_expression_end(void)363b725ae77Skettenis annotate_display_expression_end (void)
364e93f7393Sniklas {
365b725ae77Skettenis if (annotation_level == 2)
366e93f7393Sniklas printf_filtered ("\n\032\032display-expression-end\n");
367e93f7393Sniklas }
368e93f7393Sniklas
369e93f7393Sniklas void
annotate_display_value(void)370b725ae77Skettenis annotate_display_value (void)
371e93f7393Sniklas {
372b725ae77Skettenis if (annotation_level == 2)
373e93f7393Sniklas printf_filtered ("\n\032\032display-value\n");
374e93f7393Sniklas }
375e93f7393Sniklas
376e93f7393Sniklas void
annotate_display_end(void)377b725ae77Skettenis annotate_display_end (void)
378e93f7393Sniklas {
379b725ae77Skettenis if (annotation_level == 2)
380e93f7393Sniklas printf_filtered ("\n\032\032display-end\n");
381e93f7393Sniklas }
382e93f7393Sniklas
383e93f7393Sniklas void
annotate_arg_begin(void)384b725ae77Skettenis annotate_arg_begin (void)
385e93f7393Sniklas {
386b725ae77Skettenis if (annotation_level == 2)
387e93f7393Sniklas printf_filtered ("\n\032\032arg-begin\n");
388e93f7393Sniklas }
389e93f7393Sniklas
390e93f7393Sniklas void
annotate_arg_name_end(void)391b725ae77Skettenis annotate_arg_name_end (void)
392e93f7393Sniklas {
393b725ae77Skettenis if (annotation_level == 2)
394e93f7393Sniklas printf_filtered ("\n\032\032arg-name-end\n");
395e93f7393Sniklas }
396e93f7393Sniklas
397e93f7393Sniklas void
annotate_arg_value(struct type * type)398b725ae77Skettenis annotate_arg_value (struct type *type)
399e93f7393Sniklas {
400b725ae77Skettenis if (annotation_level == 2)
401e93f7393Sniklas {
402e93f7393Sniklas printf_filtered ("\n\032\032arg-value ");
403e93f7393Sniklas print_value_flags (type);
404e93f7393Sniklas printf_filtered ("\n");
405e93f7393Sniklas }
406e93f7393Sniklas }
407e93f7393Sniklas
408e93f7393Sniklas void
annotate_arg_end(void)409b725ae77Skettenis annotate_arg_end (void)
410e93f7393Sniklas {
411b725ae77Skettenis if (annotation_level == 2)
412e93f7393Sniklas printf_filtered ("\n\032\032arg-end\n");
413e93f7393Sniklas }
414e93f7393Sniklas
415e93f7393Sniklas void
annotate_source(char * filename,int line,int character,int mid,CORE_ADDR pc)416b725ae77Skettenis annotate_source (char *filename, int line, int character, int mid, CORE_ADDR pc)
417e93f7393Sniklas {
418e93f7393Sniklas if (annotation_level > 1)
419e93f7393Sniklas printf_filtered ("\n\032\032source ");
420e93f7393Sniklas else
421e93f7393Sniklas printf_filtered ("\032\032");
422e93f7393Sniklas
423e93f7393Sniklas printf_filtered ("%s:%d:%d:%s:0x", filename,
424e93f7393Sniklas line, character,
425e93f7393Sniklas mid ? "middle" : "beg");
426e93f7393Sniklas print_address_numeric (pc, 0, gdb_stdout);
427e93f7393Sniklas printf_filtered ("\n");
428e93f7393Sniklas }
429e93f7393Sniklas
430e93f7393Sniklas void
annotate_frame_begin(int level,CORE_ADDR pc)431b725ae77Skettenis annotate_frame_begin (int level, CORE_ADDR pc)
432e93f7393Sniklas {
433b725ae77Skettenis if (annotation_level == 2)
434e93f7393Sniklas {
435e93f7393Sniklas printf_filtered ("\n\032\032frame-begin %d 0x", level);
436e93f7393Sniklas print_address_numeric (pc, 0, gdb_stdout);
437e93f7393Sniklas printf_filtered ("\n");
438e93f7393Sniklas }
439e93f7393Sniklas }
440e93f7393Sniklas
441e93f7393Sniklas void
annotate_function_call(void)442b725ae77Skettenis annotate_function_call (void)
443e93f7393Sniklas {
444b725ae77Skettenis if (annotation_level == 2)
445e93f7393Sniklas printf_filtered ("\n\032\032function-call\n");
446e93f7393Sniklas }
447e93f7393Sniklas
448e93f7393Sniklas void
annotate_signal_handler_caller(void)449b725ae77Skettenis annotate_signal_handler_caller (void)
450e93f7393Sniklas {
451b725ae77Skettenis if (annotation_level == 2)
452e93f7393Sniklas printf_filtered ("\n\032\032signal-handler-caller\n");
453e93f7393Sniklas }
454e93f7393Sniklas
455e93f7393Sniklas void
annotate_frame_address(void)456b725ae77Skettenis annotate_frame_address (void)
457e93f7393Sniklas {
458b725ae77Skettenis if (annotation_level == 2)
459e93f7393Sniklas printf_filtered ("\n\032\032frame-address\n");
460e93f7393Sniklas }
461e93f7393Sniklas
462e93f7393Sniklas void
annotate_frame_address_end(void)463b725ae77Skettenis annotate_frame_address_end (void)
464e93f7393Sniklas {
465b725ae77Skettenis if (annotation_level == 2)
466e93f7393Sniklas printf_filtered ("\n\032\032frame-address-end\n");
467e93f7393Sniklas }
468e93f7393Sniklas
469e93f7393Sniklas void
annotate_frame_function_name(void)470b725ae77Skettenis annotate_frame_function_name (void)
471e93f7393Sniklas {
472b725ae77Skettenis if (annotation_level == 2)
473e93f7393Sniklas printf_filtered ("\n\032\032frame-function-name\n");
474e93f7393Sniklas }
475e93f7393Sniklas
476e93f7393Sniklas void
annotate_frame_args(void)477b725ae77Skettenis annotate_frame_args (void)
478e93f7393Sniklas {
479b725ae77Skettenis if (annotation_level == 2)
480e93f7393Sniklas printf_filtered ("\n\032\032frame-args\n");
481e93f7393Sniklas }
482e93f7393Sniklas
483e93f7393Sniklas void
annotate_frame_source_begin(void)484b725ae77Skettenis annotate_frame_source_begin (void)
485e93f7393Sniklas {
486b725ae77Skettenis if (annotation_level == 2)
487e93f7393Sniklas printf_filtered ("\n\032\032frame-source-begin\n");
488e93f7393Sniklas }
489e93f7393Sniklas
490e93f7393Sniklas void
annotate_frame_source_file(void)491b725ae77Skettenis annotate_frame_source_file (void)
492e93f7393Sniklas {
493b725ae77Skettenis if (annotation_level == 2)
494e93f7393Sniklas printf_filtered ("\n\032\032frame-source-file\n");
495e93f7393Sniklas }
496e93f7393Sniklas
497e93f7393Sniklas void
annotate_frame_source_file_end(void)498b725ae77Skettenis annotate_frame_source_file_end (void)
499e93f7393Sniklas {
500b725ae77Skettenis if (annotation_level == 2)
501e93f7393Sniklas printf_filtered ("\n\032\032frame-source-file-end\n");
502e93f7393Sniklas }
503e93f7393Sniklas
504e93f7393Sniklas void
annotate_frame_source_line(void)505b725ae77Skettenis annotate_frame_source_line (void)
506e93f7393Sniklas {
507b725ae77Skettenis if (annotation_level == 2)
508e93f7393Sniklas printf_filtered ("\n\032\032frame-source-line\n");
509e93f7393Sniklas }
510e93f7393Sniklas
511e93f7393Sniklas void
annotate_frame_source_end(void)512b725ae77Skettenis annotate_frame_source_end (void)
513e93f7393Sniklas {
514b725ae77Skettenis if (annotation_level == 2)
515e93f7393Sniklas printf_filtered ("\n\032\032frame-source-end\n");
516e93f7393Sniklas }
517e93f7393Sniklas
518e93f7393Sniklas void
annotate_frame_where(void)519b725ae77Skettenis annotate_frame_where (void)
520e93f7393Sniklas {
521b725ae77Skettenis if (annotation_level == 2)
522e93f7393Sniklas printf_filtered ("\n\032\032frame-where\n");
523e93f7393Sniklas }
524e93f7393Sniklas
525e93f7393Sniklas void
annotate_frame_end(void)526b725ae77Skettenis annotate_frame_end (void)
527e93f7393Sniklas {
528b725ae77Skettenis if (annotation_level == 2)
529e93f7393Sniklas printf_filtered ("\n\032\032frame-end\n");
530e93f7393Sniklas }
531e93f7393Sniklas
532e93f7393Sniklas void
annotate_array_section_begin(int index,struct type * elttype)533b725ae77Skettenis annotate_array_section_begin (int index, struct type *elttype)
534e93f7393Sniklas {
535b725ae77Skettenis if (annotation_level == 2)
536e93f7393Sniklas {
537e93f7393Sniklas printf_filtered ("\n\032\032array-section-begin %d ", index);
538e93f7393Sniklas print_value_flags (elttype);
539e93f7393Sniklas printf_filtered ("\n");
540e93f7393Sniklas }
541e93f7393Sniklas }
542e93f7393Sniklas
543e93f7393Sniklas void
annotate_elt_rep(unsigned int repcount)544b725ae77Skettenis annotate_elt_rep (unsigned int repcount)
545e93f7393Sniklas {
546b725ae77Skettenis if (annotation_level == 2)
547e93f7393Sniklas printf_filtered ("\n\032\032elt-rep %u\n", repcount);
548e93f7393Sniklas }
549e93f7393Sniklas
550e93f7393Sniklas void
annotate_elt_rep_end(void)551b725ae77Skettenis annotate_elt_rep_end (void)
552e93f7393Sniklas {
553b725ae77Skettenis if (annotation_level == 2)
554e93f7393Sniklas printf_filtered ("\n\032\032elt-rep-end\n");
555e93f7393Sniklas }
556e93f7393Sniklas
557e93f7393Sniklas void
annotate_elt(void)558b725ae77Skettenis annotate_elt (void)
559e93f7393Sniklas {
560b725ae77Skettenis if (annotation_level == 2)
561e93f7393Sniklas printf_filtered ("\n\032\032elt\n");
562e93f7393Sniklas }
563e93f7393Sniklas
564e93f7393Sniklas void
annotate_array_section_end(void)565b725ae77Skettenis annotate_array_section_end (void)
566e93f7393Sniklas {
567b725ae77Skettenis if (annotation_level == 2)
568e93f7393Sniklas printf_filtered ("\n\032\032array-section-end\n");
569e93f7393Sniklas }
570e93f7393Sniklas
571e93f7393Sniklas static void
breakpoint_changed(struct breakpoint * b)572b725ae77Skettenis breakpoint_changed (struct breakpoint *b)
573e93f7393Sniklas {
574e93f7393Sniklas breakpoints_changed ();
575e93f7393Sniklas }
576e93f7393Sniklas
577e93f7393Sniklas void
_initialize_annotate(void)578b725ae77Skettenis _initialize_annotate (void)
579e93f7393Sniklas {
580e93f7393Sniklas if (annotation_level > 1)
581e93f7393Sniklas {
582*63addd46Skettenis deprecated_delete_breakpoint_hook = breakpoint_changed;
583*63addd46Skettenis deprecated_modify_breakpoint_hook = breakpoint_changed;
584e93f7393Sniklas }
585e93f7393Sniklas }
586