GDB (xrefs)
Main Page
Related Pages
Namespaces
Classes
Files
File List
File Members
/tmp/gdb-7.10/gdb/target-debug.h
Go to the documentation of this file.
1
/* GDB target debugging macros
2
3
Copyright (C) 2014-2015 Free Software Foundation, Inc.
4
5
This file is part of GDB.
6
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.
11
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.
16
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/>. */
19
20
#ifndef TARGET_DEBUG_H
21
#define TARGET_DEBUG_H
22
23
/* Printers for the debug target. Each prints an object of a given
24
type to a string that needn't be freed. Most printers are macros,
25
for brevity, but a few are static functions where more complicated
26
behavior is needed.
27
28
References to these printers are automatically generated by
29
make-target-delegates. See the generated file target-delegates.c.
30
31
In a couple cases, a special printing function is defined and then
32
used via the TARGET_DEBUG_PRINTER macro. See target.h.
33
34
A few methods still have some explicit targetdebug code in
35
target.c. In most cases this is because target delegation hasn't
36
been done for the method; but individual cases vary. For instance,
37
target_store_registers does some special register printing that is
38
more simply done there, and target_xfer_partial additionally
39
bypasses the debug target. */
40
41
42
/* Helper macro. */
43
44
#define target_debug_do_print(E) \
45
fputs_unfiltered ((E), gdb_stdlog);
46
47
#define target_debug_print_struct_target_ops_p(X) \
48
target_debug_do_print (host_address_to_string (X))
49
#define target_debug_print_enum_target_object(X) \
50
target_debug_do_print (plongest (X))
51
#define target_debug_print_CORE_ADDR(X) \
52
target_debug_do_print (core_addr_to_string (X))
53
#define target_debug_print_const_char_p(X) \
54
target_debug_do_print (((X) ? (X) : "(null)"))
55
#define target_debug_print_char_p(X) \
56
target_debug_do_print (((X) ? (X) : "(null)"))
57
#define target_debug_print_int(X) \
58
target_debug_do_print (plongest (X))
59
#define target_debug_print_long(X) \
60
target_debug_do_print (plongest (X))
61
#define target_debug_print_enum_target_xfer_status(X) \
62
target_debug_do_print (plongest (X))
63
#define target_debug_print_enum_exec_direction_kind(X) \
64
target_debug_do_print (plongest (X))
65
#define target_debug_print_enum_trace_find_type(X) \
66
target_debug_do_print (plongest (X))
67
#define target_debug_print_enum_btrace_read_type(X) \
68
target_debug_do_print (plongest (X))
69
#define target_debug_print_enum_btrace_error(X) \
70
target_debug_do_print (plongest (X))
71
#define target_debug_print_ptid_t(X) \
72
target_debug_do_print (plongest (ptid_get_pid (X)))
73
#define target_debug_print_struct_gdbarch_p(X) \
74
target_debug_do_print (gdbarch_bfd_arch_info (X)->printable_name)
75
#define target_debug_print_const_gdb_byte_p(X) \
76
target_debug_do_print (host_address_to_string (X))
77
#define target_debug_print_gdb_byte_p(X) \
78
target_debug_do_print (host_address_to_string (X))
79
#define target_debug_print_gdb_byte_pp(X) \
80
target_debug_do_print (host_address_to_string (*(X)))
81
#define target_debug_print_enum_gdb_signal(X) \
82
target_debug_do_print (gdb_signal_to_name (X))
83
#define target_debug_print_ULONGEST(X) \
84
target_debug_do_print (hex_string (X))
85
#define target_debug_print_ULONGEST_p(X) \
86
target_debug_do_print (hex_string (*(X)))
87
#define target_debug_print_LONGEST(X) \
88
target_debug_do_print (phex (X, 0))
89
#define target_debug_print_LONGEST_p(X) \
90
target_debug_do_print (phex (*(X), 0))
91
#define target_debug_print_struct_address_space_p(X) \
92
target_debug_do_print (plongest (address_space_num (X)))
93
#define target_debug_print_struct_bp_target_info_p(X) \
94
target_debug_do_print (core_addr_to_string ((X)->placed_address))
95
#define target_debug_print_struct_expression_p(X) \
96
target_debug_do_print (host_address_to_string (X))
97
#define target_debug_print_CORE_ADDR_p(X) \
98
target_debug_do_print (core_addr_to_string (*(X)))
99
#define target_debug_print_int_p(X) \
100
target_debug_do_print (plongest (*(X)))
101
#define target_debug_print_struct_regcache_p(X) \
102
target_debug_do_print (host_address_to_string (X))
103
#define target_debug_print_struct_thread_info_p(X) \
104
target_debug_do_print (host_address_to_string (X))
105
#define target_debug_print_struct_ui_file_p(X) \
106
target_debug_do_print (host_address_to_string (X))
107
#define target_debug_print_struct_target_section_table_p(X) \
108
target_debug_do_print (host_address_to_string (X))
109
#define target_debug_print_async_callback_ftype_p(X) \
110
target_debug_do_print (host_address_to_string (X))
111
#define target_debug_print_void_p(X) \
112
target_debug_do_print (host_address_to_string (X))
113
#define target_debug_print_find_memory_region_ftype(X) \
114
target_debug_do_print (host_address_to_string (X))
115
#define target_debug_print_bfd_p(X) \
116
target_debug_do_print (host_address_to_string (X))
117
#define target_debug_print_VEC_mem_region_s__p(X) \
118
target_debug_do_print (host_address_to_string (X))
119
#define target_debug_print_VEC_static_tracepoint_marker_p__p(X) \
120
target_debug_do_print (host_address_to_string (X))
121
#define target_debug_print_const_struct_target_desc_p(X) \
122
target_debug_do_print (host_address_to_string (X))
123
#define target_debug_print_struct_bp_location_p(X) \
124
target_debug_do_print (host_address_to_string (X))
125
#define target_debug_print_struct_trace_state_variable_p(X) \
126
target_debug_do_print (host_address_to_string (X))
127
#define target_debug_print_struct_trace_status_p(X) \
128
target_debug_do_print (host_address_to_string (X))
129
#define target_debug_print_struct_breakpoint_p(X) \
130
target_debug_do_print (host_address_to_string (X))
131
#define target_debug_print_struct_uploaded_tp_p(X) \
132
target_debug_do_print (host_address_to_string (X))
133
#define target_debug_print_struct_uploaded_tp_pp(X) \
134
target_debug_do_print (host_address_to_string (X))
135
#define target_debug_print_struct_uploaded_tsv_pp(X) \
136
target_debug_do_print (host_address_to_string (X))
137
#define target_debug_print_struct_static_tracepoint_marker_p(X) \
138
target_debug_do_print (host_address_to_string (X))
139
#define target_debug_print_struct_traceframe_info_p(X) \
140
target_debug_do_print (host_address_to_string (X))
141
#define target_debug_print_struct_btrace_target_info_p(X) \
142
target_debug_do_print (host_address_to_string (X))
143
#define target_debug_print_VEC__btrace_block_s__pp(X) \
144
target_debug_do_print (host_address_to_string (X))
145
#define target_debug_print_const_struct_frame_unwind_p(X) \
146
target_debug_do_print (host_address_to_string (X))
147
#define target_debug_print_struct_btrace_data_p(X) \
148
target_debug_do_print (host_address_to_string (X))
149
#define target_debug_print_enum_btrace_format(X) \
150
target_debug_do_print (plongest (X))
151
#define target_debug_print_const_struct_btrace_config_p(X) \
152
target_debug_do_print (host_address_to_string (X))
153
#define target_debug_print_const_struct_btrace_target_info_p(X) \
154
target_debug_do_print (host_address_to_string (X))
155
156
static
void
157
target_debug_print_struct_target_waitstatus_p
(
struct
target_waitstatus
*
status
)
158
{
159
char
*str =
target_waitstatus_to_string
(status);
160
161
fputs_unfiltered
(str,
gdb_stdlog
);
162
xfree
(str);
163
}
164
165
166
167
/* Macros or functions that are used via TARGET_DEBUG_PRINTER. */
168
169
#define target_debug_print_step(X) \
170
target_debug_do_print ((X) ? "step" : "continue")
171
172
static
void
173
target_debug_print_options
(
int
options)
174
{
175
char
*str =
target_options_to_string
(options);
176
177
fputs_unfiltered
(str,
gdb_stdlog
);
178
xfree
(str);
179
}
180
181
static
void
182
target_debug_print_signals
(
unsigned
char
*sigs)
183
{
184
fputs_unfiltered
(
"{"
,
gdb_stdlog
);
185
if
(sigs != NULL)
186
{
187
int
i;
188
189
for
(i = 0; i < GDB_SIGNAL_LAST; i++)
190
if
(sigs[i])
191
fprintf_unfiltered
(
gdb_stdlog
,
" %s"
,
gdb_signal_to_name
(i));
192
}
193
fputs_unfiltered
(
" }"
,
gdb_stdlog
);
194
}
195
196
#endif
/* TARGET_DEBUG_H */
target_waitstatus_to_string
char * target_waitstatus_to_string(const struct target_waitstatus *ws)
Definition:
waitstatus.c:27
target_waitstatus
Definition:
waitstatus.h:98
fputs_unfiltered
void fputs_unfiltered(const char *buf, struct ui_file *file)
Definition:
ui-file.c:252
xfree
void xfree(void *)
Definition:
common-utils.c:97
target_debug_print_struct_target_waitstatus_p
static void target_debug_print_struct_target_waitstatus_p(struct target_waitstatus *status)
Definition:
target-debug.h:157
target_options_to_string
char * target_options_to_string(int target_options)
Definition:
target.c:3364
fprintf_unfiltered
void fprintf_unfiltered(struct ui_file *stream, const char *format,...)
Definition:
utils.c:2361
status
mach_port_t mach_port_t name mach_port_t mach_port_t name error_t int status
Definition:
gnu-nat.c:1816
gdb_signal_to_name
const char * gdb_signal_to_name(enum gdb_signal)
Definition:
signals.c:78
gdb_stdlog
struct ui_file * gdb_stdlog
Definition:
main.c:73
target_debug_print_signals
static void target_debug_print_signals(unsigned char *sigs)
Definition:
target-debug.h:182
target_debug_print_options
static void target_debug_print_options(int options)
Definition:
target-debug.h:173
Generated by
1.8.10