xref: /openbsd-src/gnu/usr.bin/binutils/gdb/annotate.c (revision 63addd46c1e40ca0f49488ddcdc4ab598023b0c1)
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