]>
Commit | Line | Data |
---|---|---|
fbd26352 | 1 | # Copyright (C) 2001-2019 Free Software Foundation, Inc. |
7dfbd804 | 2 | # |
3 | # This file is part of GCC. | |
4 | # | |
5 | # GCC is free software; you can redistribute it and/or modify | |
6 | # it under the terms of the GNU General Public License as published by | |
7 | # the Free Software Foundation; either version 3, or (at your option) | |
8 | # any later version. | |
9 | # | |
10 | # GCC is distributed in the hope that it will be useful, | |
11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of | |
12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
13 | # GNU General Public License for more details. | |
14 | # | |
15 | # You should have received a copy of the GNU General Public License | |
16 | # along with GCC; see the file COPYING3. If not see | |
17 | # <http://www.gnu.org/licenses/>. | |
18 | ||
8541a54a | 19 | define pp |
20 | call debug ($) | |
21 | end | |
22 | ||
23 | document pp | |
24 | Print a representation of the GCC data structure that is $. | |
25 | Works only when an inferior is executing. | |
26 | end | |
27 | ||
071cd279 | 28 | define pr |
29 | set debug_rtx ($) | |
30 | end | |
31 | ||
32 | document pr | |
33 | Print the full structure of the rtx that is $. | |
34 | Works only when an inferior is executing. | |
35 | end | |
36 | ||
37 | define prl | |
38 | set debug_rtx_list ($, debug_rtx_count) | |
39 | end | |
40 | ||
41 | document prl | |
42 | Print the full structure of all rtx insns beginning at $. | |
43 | Works only when an inferior is executing. | |
44 | Uses variable debug_rtx_count to control number of insns printed: | |
45 | debug_rtx_count > 0: print from $ on. | |
46 | debug_rtx_count < 0: print a window around $. | |
47 | ||
48 | There is also debug_rtx_find (rtx, uid) that will scan a list for UID and print | |
49 | it using debug_rtx_list. Usage example: set $foo=debug_rtx_find(first, 42) | |
50 | end | |
51 | ||
52 | define pt | |
53 | set debug_tree ($) | |
54 | end | |
55 | ||
56 | document pt | |
57 | Print the full structure of the tree that is $. | |
58 | Works only when an inferior is executing. | |
59 | end | |
60 | ||
00ae6be7 | 61 | define pct |
62 | set debug_c_tree ($) | |
63 | end | |
64 | ||
65 | document pct | |
66 | Print the tree that is $ in C syntax. | |
67 | Works only when an inferior is executing. | |
68 | end | |
69 | ||
255b6be7 | 70 | define pgg |
71 | set debug_gimple_stmt ($) | |
72 | end | |
73 | ||
74 | document pgg | |
75 | Print the Gimple statement that is $ in C syntax. | |
76 | Works only when an inferior is executing. | |
77 | end | |
78 | ||
88cba5b1 | 79 | define pgq |
80 | set debug_gimple_seq ($) | |
81 | end | |
82 | ||
83 | document pgq | |
84 | Print the Gimple sequence that is $ in C syntax. | |
85 | Works only when an inferior is executing. | |
86 | end | |
87 | ||
4ee9c684 | 88 | define pgs |
89 | set debug_generic_stmt ($) | |
90 | end | |
91 | ||
92 | document pgs | |
93 | Print the statement that is $ in C syntax. | |
94 | Works only when an inferior is executing. | |
95 | end | |
96 | ||
97 | define pge | |
98 | set debug_generic_expr ($) | |
99 | end | |
100 | ||
101 | document pge | |
102 | Print the expression that is $ in C syntax. | |
103 | Works only when an inferior is executing. | |
104 | end | |
105 | ||
69c149d1 | 106 | define pmz |
107 | set mpz_out_str(stderr, 10, $) | |
108 | end | |
109 | ||
110 | document pmz | |
111 | Print the mpz value that is $ | |
112 | Works only when an inferior is executing. | |
113 | end | |
114 | ||
071cd279 | 115 | define ptc |
116 | output (enum tree_code) $.common.code | |
117 | echo \n | |
118 | end | |
119 | ||
120 | document ptc | |
121 | Print the tree-code of the tree node that is $. | |
122 | end | |
123 | ||
124 | define pdn | |
36eec8e7 | 125 | output $.decl_minimal.name->identifier.id.str |
071cd279 | 126 | echo \n |
127 | end | |
128 | ||
129 | document pdn | |
130 | Print the name of the decl-node that is $. | |
131 | end | |
132 | ||
133 | define ptn | |
36eec8e7 | 134 | output $.type.name->decl_minimal.name->identifier.id.str |
071cd279 | 135 | echo \n |
136 | end | |
137 | ||
138 | document ptn | |
139 | Print the name of the type-node that is $. | |
140 | end | |
141 | ||
8ee76a8d | 142 | define pdd |
143 | set debug_dwarf_die ($) | |
144 | end | |
145 | ||
146 | document pdd | |
147 | Print the dw_die_ref that is in $. | |
148 | end | |
149 | ||
071cd279 | 150 | define prc |
151 | output (enum rtx_code) $.code | |
152 | echo \ ( | |
153 | output $.mode | |
154 | echo )\n | |
155 | end | |
156 | ||
157 | document prc | |
158 | Print the rtx-code and machine mode of the rtx that is $. | |
159 | end | |
160 | ||
161 | define pi | |
48bdfbc8 | 162 | print $.u.fld[0].rt_rtx@7 |
071cd279 | 163 | end |
164 | ||
165 | document pi | |
166 | Print the fields of an instruction that is $. | |
167 | end | |
168 | ||
169 | define pbs | |
170 | set print_binding_stack () | |
171 | end | |
172 | ||
173 | document pbs | |
174 | In cc1plus, print the current binding stack, frame by frame, up to and | |
175 | including the global binding level. | |
176 | end | |
177 | ||
aaa59797 | 178 | define pbm |
179 | set bitmap_print (stderr, $, "", "\n") | |
180 | end | |
181 | ||
182 | document pbm | |
183 | Dump the bitmap that is in $ as a comma-separated list of numbers. | |
184 | end | |
185 | ||
b174be60 | 186 | define pel |
187 | output expand_location ($) | |
188 | echo \n | |
189 | end | |
190 | ||
191 | document pel | |
192 | Print expanded location of $. | |
193 | end | |
194 | ||
645cec52 | 195 | define pcfun |
196 | output debug_function (cfun ? cfun->decl : current_function_decl, 0) | |
197 | echo \n | |
198 | end | |
199 | ||
200 | document pcfun | |
201 | Print current function. | |
202 | end | |
203 | ||
7a59a4e4 | 204 | define break-on-diagnostic |
205 | break diagnostic_show_locus | |
206 | end | |
207 | ||
208 | document break-on-diagnostic | |
209 | Put a breakpoint on diagnostic_show_locus, called whenever a diagnostic | |
210 | is emitted (as opposed to those warnings that are suppressed by | |
211 | command-line options). | |
212 | end | |
213 | ||
2b15d2ba | 214 | # Define some macros helpful to gdb when it is expanding macros. |
215 | macro define __FILE__ "gdb" | |
216 | macro define __LINE__ 1 | |
910d871e | 217 | macro define __FUNCTION__ "gdb" |
832f4182 | 218 | macro define __null 0 |
12a7d3be | 219 | macro define input_line expand_location(input_location).line |
220 | macro define input_filename expand_location(input_location).file | |
2b15d2ba | 221 | |
af7bbac6 | 222 | # Remember previous pagination status and turn it off, so that |
223 | # the messages for skip commands don't require pagination. | |
224 | python __gcc_prev_pagination=gdb.parameter("pagination") | |
225 | set pagination off | |
226 | ||
2b15d2ba | 227 | # Gracefully handle aborts in functions used from gdb. |
228 | set unwindonsignal on | |
229 | ||
97fce000 | 230 | # Put breakpoints at exit and fancy_abort in case abort is mapped |
231 | # to either fprintf/exit or fancy_abort. | |
97fce000 | 232 | b fancy_abort |
233 | ||
0fb7aaf2 | 234 | # Put a breakpoint on internal_error to help with debugging ICEs. |
235 | b internal_error | |
236 | ||
979f9661 | 237 | set complaints 0 |
3bdfaae6 | 238 | # Don't let abort actually run, as it will make |
239 | # stdio stop working and therefore the `pr' command above as well. | |
240 | # Put this last because gcc does not reference it any more unless | |
241 | # USE_SYSTEM_ABORT is defined, so gdb may complain and bail out. | |
d62e1a3b | 242 | b exit |
3bdfaae6 | 243 | b abort |
2b15d2ba | 244 | |
5bbb7526 | 245 | # Disable strict type checking. This allows developers to (for example) |
246 | # make inferior calls without casting absolute address to a suitable | |
247 | # pointer type. | |
248 | set check type off | |
249 | ||
2b15d2ba | 250 | # Skip all inline functions in tree.h. |
251 | # These are used in accessor macros. | |
252 | # Note that this is added at the end because older gdb versions | |
253 | # do not understand the 'skip' command. | |
3e76fcb4 | 254 | # See https://sourceware.org/gdb/current/onlinedocs/gdb/Skipping-Over-Functions-and-Files.html |
b41251d4 | 255 | skip file tree.h |
3e76fcb4 | 256 | |
cc1e50b1 | 257 | # Also skip inline functions in is-a.h. |
258 | skip file is-a.h | |
259 | ||
fc3cb33e | 260 | # And line-map.h. |
261 | skip file line-map.h | |
262 | ||
970969cd | 263 | # And timevar.h. |
264 | skip file timevar.h | |
265 | ||
3e76fcb4 | 266 | # Likewise, skip various inline functions in rtl.h. |
267 | skip rtx_expr_list::next | |
268 | skip rtx_expr_list::element | |
269 | skip rtx_insn_list::next | |
270 | skip rtx_insn_list::insn | |
271 | skip rtx_sequence::len | |
272 | skip rtx_sequence::element | |
273 | skip rtx_sequence::insn | |
274 | skip INSN_UID | |
275 | skip PREV_INSN | |
276 | skip SET_PREV_INSN | |
277 | skip NEXT_INSN | |
278 | skip SET_NEXT_INSN | |
279 | skip BLOCK_FOR_INSN | |
280 | skip PATTERN | |
281 | skip INSN_LOCATION | |
282 | skip INSN_HAS_LOCATION | |
283 | skip JUMP_LABEL_AS_INSN | |
af7bbac6 | 284 | |
285 | # Restore pagination to the previous state. | |
286 | python if __gcc_prev_pagination: gdb.execute("set pagination on") |