re PR tree-optimization/92460 (ICE: verify_ssa failed (error: definition in block...
[gcc.git] / gcc / gdbinit.in
1 # Copyright (C) 2001-2019 Free Software Foundation, Inc.
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
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
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
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
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
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
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
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
115 define ptc
116 output (enum tree_code) $.base.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
125 output $.decl_minimal.name->identifier.id.str
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
134 output $.type.name->decl_minimal.name->identifier.id.str
135 echo \n
136 end
137
138 document ptn
139 Print the name of the type-node that is $.
140 end
141
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
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
162 print $.u.fld[0].rt_rtx@7
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
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
186 define pel
187 output expand_location ($)
188 echo \n
189 end
190
191 document pel
192 Print expanded location of $.
193 end
194
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
204 define trt
205 print ($.typed.type)
206 end
207
208 document trt
209 Print TREE_TYPE of the tree node that is $
210 end
211
212 define break-on-diagnostic
213 break diagnostic_show_locus
214 end
215
216 document break-on-diagnostic
217 Put a breakpoint on diagnostic_show_locus, called whenever a diagnostic
218 is emitted (as opposed to those warnings that are suppressed by
219 command-line options).
220 end
221
222 define reload-gdbhooks
223 python import imp; imp.reload(gdbhooks)
224 end
225
226 document reload-gdbhooks
227 Load the gdbhooks.py module again in order to pick up any changes made to it.
228 end
229
230 alias rh = reload-gdbhooks
231
232 # Define some macros helpful to gdb when it is expanding macros.
233 macro define __FILE__ "gdb"
234 macro define __LINE__ 1
235 macro define __FUNCTION__ "gdb"
236 macro define __null 0
237 macro define input_line expand_location(input_location).line
238 macro define input_filename expand_location(input_location).file
239
240 # Remember previous pagination status and turn it off, so that
241 # the messages for skip commands don't require pagination.
242 python __gcc_prev_pagination=gdb.parameter("pagination")
243 set pagination off
244
245 # Gracefully handle aborts in functions used from gdb.
246 set unwindonsignal on
247
248 # Put breakpoints at exit and fancy_abort in case abort is mapped
249 # to either fprintf/exit or fancy_abort.
250 b fancy_abort
251
252 # Put a breakpoint on internal_error to help with debugging ICEs.
253 b internal_error
254
255 set complaints 0
256 # Don't let abort actually run, as it will make
257 # stdio stop working and therefore the `pr' command above as well.
258 # Put this last because gcc does not reference it any more unless
259 # USE_SYSTEM_ABORT is defined, so gdb may complain and bail out.
260 b exit
261 b abort
262
263 # Disable strict type checking. This allows developers to (for example)
264 # make inferior calls without casting absolute address to a suitable
265 # pointer type.
266 set check type off
267
268 # Skip all inline functions in tree.h.
269 # These are used in accessor macros.
270 # Note that this is added at the end because older gdb versions
271 # do not understand the 'skip' command.
272 # See https://sourceware.org/gdb/current/onlinedocs/gdb/Skipping-Over-Functions-and-Files.html
273 skip file tree.h
274
275 # Also skip inline functions in is-a.h.
276 skip file is-a.h
277
278 # And line-map.h.
279 skip file line-map.h
280
281 # And timevar.h.
282 skip file timevar.h
283
284 # Likewise, skip various inline functions in rtl.h.
285 skip rtx_expr_list::next
286 skip rtx_expr_list::element
287 skip rtx_insn_list::next
288 skip rtx_insn_list::insn
289 skip rtx_sequence::len
290 skip rtx_sequence::element
291 skip rtx_sequence::insn
292 skip INSN_UID
293 skip PREV_INSN
294 skip SET_PREV_INSN
295 skip NEXT_INSN
296 skip SET_NEXT_INSN
297 skip BLOCK_FOR_INSN
298 skip PATTERN
299 skip INSN_LOCATION
300 skip INSN_HAS_LOCATION
301 skip JUMP_LABEL_AS_INSN
302
303 # Restore pagination to the previous state.
304 python if __gcc_prev_pagination: gdb.execute("set pagination on")