re PR c/79153 (-Wimplicit-fallthrough missed warning)
[gcc.git] / gcc / gdbinit.in
1 # Copyright (C) 2001-2017 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 pr
20 set debug_rtx ($)
21 end
22
23 document pr
24 Print the full structure of the rtx that is $.
25 Works only when an inferior is executing.
26 end
27
28 define prl
29 set debug_rtx_list ($, debug_rtx_count)
30 end
31
32 document prl
33 Print the full structure of all rtx insns beginning at $.
34 Works only when an inferior is executing.
35 Uses variable debug_rtx_count to control number of insns printed:
36 debug_rtx_count > 0: print from $ on.
37 debug_rtx_count < 0: print a window around $.
38
39 There is also debug_rtx_find (rtx, uid) that will scan a list for UID and print
40 it using debug_rtx_list. Usage example: set $foo=debug_rtx_find(first, 42)
41 end
42
43 define pt
44 set debug_tree ($)
45 end
46
47 document pt
48 Print the full structure of the tree that is $.
49 Works only when an inferior is executing.
50 end
51
52 define pct
53 set debug_c_tree ($)
54 end
55
56 document pct
57 Print the tree that is $ in C syntax.
58 Works only when an inferior is executing.
59 end
60
61 define pgg
62 set debug_gimple_stmt ($)
63 end
64
65 document pgg
66 Print the Gimple statement that is $ in C syntax.
67 Works only when an inferior is executing.
68 end
69
70 define pgq
71 set debug_gimple_seq ($)
72 end
73
74 document pgq
75 Print the Gimple sequence that is $ in C syntax.
76 Works only when an inferior is executing.
77 end
78
79 define pgs
80 set debug_generic_stmt ($)
81 end
82
83 document pgs
84 Print the statement that is $ in C syntax.
85 Works only when an inferior is executing.
86 end
87
88 define pge
89 set debug_generic_expr ($)
90 end
91
92 document pge
93 Print the expression that is $ in C syntax.
94 Works only when an inferior is executing.
95 end
96
97 define pmz
98 set mpz_out_str(stderr, 10, $)
99 end
100
101 document pmz
102 Print the mpz value that is $
103 Works only when an inferior is executing.
104 end
105
106 define ptc
107 output (enum tree_code) $.common.code
108 echo \n
109 end
110
111 document ptc
112 Print the tree-code of the tree node that is $.
113 end
114
115 define pdn
116 output $.decl_minimal.name->identifier.id.str
117 echo \n
118 end
119
120 document pdn
121 Print the name of the decl-node that is $.
122 end
123
124 define ptn
125 output $.type.name->decl_minimal.name->identifier.id.str
126 echo \n
127 end
128
129 document ptn
130 Print the name of the type-node that is $.
131 end
132
133 define pdd
134 set debug_dwarf_die ($)
135 end
136
137 document pdd
138 Print the dw_die_ref that is in $.
139 end
140
141 define prc
142 output (enum rtx_code) $.code
143 echo \ (
144 output $.mode
145 echo )\n
146 end
147
148 document prc
149 Print the rtx-code and machine mode of the rtx that is $.
150 end
151
152 define pi
153 print $.u.fld[0].rt_rtx@7
154 end
155
156 document pi
157 Print the fields of an instruction that is $.
158 end
159
160 define pbs
161 set print_binding_stack ()
162 end
163
164 document pbs
165 In cc1plus, print the current binding stack, frame by frame, up to and
166 including the global binding level.
167 end
168
169 define pbb
170 set debug ($)
171 end
172
173 document pbb
174 Dump the basic block that is in $, including rtx.
175 end
176
177 define pbm
178 set bitmap_print (stderr, $, "", "\n")
179 end
180
181 document pbm
182 Dump the bitmap that is in $ as a comma-separated list of numbers.
183 end
184
185 define pel
186 output expand_location ($)
187 echo \n
188 end
189
190 document pel
191 Print expanded location of $.
192 end
193
194 define pcfun
195 output debug_function (cfun ? cfun->decl : current_function_decl, 0)
196 echo \n
197 end
198
199 document pcfun
200 Print current function.
201 end
202
203 define break-on-diagnostic
204 break diagnostic_show_locus
205 end
206
207 document break-on-diagnostic
208 Put a breakpoint on diagnostic_show_locus, called whenever a diagnostic
209 is emitted (as opposed to those warnings that are suppressed by
210 command-line options).
211 end
212
213 # Define some macros helpful to gdb when it is expanding macros.
214 macro define __FILE__ "gdb"
215 macro define __LINE__ 1
216 macro define __FUNCTION__ "gdb"
217 macro define __null 0
218 macro define input_line expand_location(input_location).line
219 macro define input_filename expand_location(input_location).file
220
221 # Gracefully handle aborts in functions used from gdb.
222 set unwindonsignal on
223
224 # Put breakpoints at exit and fancy_abort in case abort is mapped
225 # to either fprintf/exit or fancy_abort.
226 b fancy_abort
227
228 # Put a breakpoint on internal_error to help with debugging ICEs.
229 b internal_error
230
231 set complaints 0
232 # Don't let abort actually run, as it will make
233 # stdio stop working and therefore the `pr' command above as well.
234 # Put this last because gcc does not reference it any more unless
235 # USE_SYSTEM_ABORT is defined, so gdb may complain and bail out.
236 b exit
237 b abort
238
239 # Disable strict type checking. This allows developers to (for example)
240 # make inferior calls without casting absolute address to a suitable
241 # pointer type.
242 set check type off
243
244 # Skip all inline functions in tree.h.
245 # These are used in accessor macros.
246 # Note that this is added at the end because older gdb versions
247 # do not understand the 'skip' command.
248 # See https://sourceware.org/gdb/current/onlinedocs/gdb/Skipping-Over-Functions-and-Files.html
249 skip file tree.h
250
251 # Also skip inline functions in is-a.h.
252 skip file is-a.h
253
254 # And line-map.h.
255 skip file line-map.h
256
257 # And timevar.h.
258 skip file timevar.h
259
260 # Likewise, skip various inline functions in rtl.h.
261 skip rtx_expr_list::next
262 skip rtx_expr_list::element
263 skip rtx_insn_list::next
264 skip rtx_insn_list::insn
265 skip rtx_sequence::len
266 skip rtx_sequence::element
267 skip rtx_sequence::insn
268 skip INSN_UID
269 skip PREV_INSN
270 skip SET_PREV_INSN
271 skip NEXT_INSN
272 skip SET_NEXT_INSN
273 skip BLOCK_FOR_INSN
274 skip PATTERN
275 skip INSN_LOCATION
276 skip INSN_HAS_LOCATION
277 skip JUMP_LABEL_AS_INSN