08216dfb85
gcc/ 2014-08-29 David Malcolm <dmalcolm@redhat.com> * gdbinit.in: Skip various inline functions in rtl.h when stepping. From-SVN: r214741
258 lines
5.3 KiB
Plaintext
258 lines
5.3 KiB
Plaintext
# Copyright (C) 2001-2014 Free Software Foundation, Inc.
|
|
#
|
|
# This file is part of GCC.
|
|
#
|
|
# GCC is free software; you can redistribute it and/or modify
|
|
# it under the terms of the GNU General Public License as published by
|
|
# the Free Software Foundation; either version 3, or (at your option)
|
|
# any later version.
|
|
#
|
|
# GCC is distributed in the hope that it will be useful,
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
# GNU General Public License for more details.
|
|
#
|
|
# You should have received a copy of the GNU General Public License
|
|
# along with GCC; see the file COPYING3. If not see
|
|
# <http://www.gnu.org/licenses/>.
|
|
|
|
define pr
|
|
set debug_rtx ($)
|
|
end
|
|
|
|
document pr
|
|
Print the full structure of the rtx that is $.
|
|
Works only when an inferior is executing.
|
|
end
|
|
|
|
define prl
|
|
set debug_rtx_list ($, debug_rtx_count)
|
|
end
|
|
|
|
document prl
|
|
Print the full structure of all rtx insns beginning at $.
|
|
Works only when an inferior is executing.
|
|
Uses variable debug_rtx_count to control number of insns printed:
|
|
debug_rtx_count > 0: print from $ on.
|
|
debug_rtx_count < 0: print a window around $.
|
|
|
|
There is also debug_rtx_find (rtx, uid) that will scan a list for UID and print
|
|
it using debug_rtx_list. Usage example: set $foo=debug_rtx_find(first, 42)
|
|
end
|
|
|
|
define pt
|
|
set debug_tree ($)
|
|
end
|
|
|
|
document pt
|
|
Print the full structure of the tree that is $.
|
|
Works only when an inferior is executing.
|
|
end
|
|
|
|
define pct
|
|
set debug_c_tree ($)
|
|
end
|
|
|
|
document pct
|
|
Print the tree that is $ in C syntax.
|
|
Works only when an inferior is executing.
|
|
end
|
|
|
|
define pgg
|
|
set debug_gimple_stmt ($)
|
|
end
|
|
|
|
document pgg
|
|
Print the Gimple statement that is $ in C syntax.
|
|
Works only when an inferior is executing.
|
|
end
|
|
|
|
define pgq
|
|
set debug_gimple_seq ($)
|
|
end
|
|
|
|
document pgq
|
|
Print the Gimple sequence that is $ in C syntax.
|
|
Works only when an inferior is executing.
|
|
end
|
|
|
|
define pgs
|
|
set debug_generic_stmt ($)
|
|
end
|
|
|
|
document pgs
|
|
Print the statement that is $ in C syntax.
|
|
Works only when an inferior is executing.
|
|
end
|
|
|
|
define pge
|
|
set debug_generic_expr ($)
|
|
end
|
|
|
|
document pge
|
|
Print the expression that is $ in C syntax.
|
|
Works only when an inferior is executing.
|
|
end
|
|
|
|
define pmz
|
|
set mpz_out_str(stderr, 10, $)
|
|
end
|
|
|
|
document pmz
|
|
Print the mpz value that is $
|
|
Works only when an inferior is executing.
|
|
end
|
|
|
|
define ptc
|
|
output (enum tree_code) $.common.code
|
|
echo \n
|
|
end
|
|
|
|
document ptc
|
|
Print the tree-code of the tree node that is $.
|
|
end
|
|
|
|
define pdn
|
|
output $.decl_minimal.name->identifier.id.str
|
|
echo \n
|
|
end
|
|
|
|
document pdn
|
|
Print the name of the decl-node that is $.
|
|
end
|
|
|
|
define ptn
|
|
output $.type.name->decl_minimal.name->identifier.id.str
|
|
echo \n
|
|
end
|
|
|
|
document ptn
|
|
Print the name of the type-node that is $.
|
|
end
|
|
|
|
define pvt
|
|
set debug_vec_tree ($)
|
|
end
|
|
|
|
document pvt
|
|
Print the VEC(tree) that is in $.
|
|
end
|
|
|
|
define pdd
|
|
set debug_dwarf_die ($)
|
|
end
|
|
|
|
document pdd
|
|
Print the dw_die_ref that is in $.
|
|
end
|
|
|
|
define prc
|
|
output (enum rtx_code) $.code
|
|
echo \ (
|
|
output $.mode
|
|
echo )\n
|
|
end
|
|
|
|
document prc
|
|
Print the rtx-code and machine mode of the rtx that is $.
|
|
end
|
|
|
|
define pi
|
|
print $.u.fld[0].rt_rtx@7
|
|
end
|
|
|
|
document pi
|
|
Print the fields of an instruction that is $.
|
|
end
|
|
|
|
define pbs
|
|
set print_binding_stack ()
|
|
end
|
|
|
|
document pbs
|
|
In cc1plus, print the current binding stack, frame by frame, up to and
|
|
including the global binding level.
|
|
end
|
|
|
|
define pbb
|
|
set debug ($)
|
|
end
|
|
|
|
document pbb
|
|
Dump the basic block that is in $, including rtx.
|
|
end
|
|
|
|
define pbm
|
|
set bitmap_print (stderr, $, "", "\n")
|
|
end
|
|
|
|
document pbm
|
|
Dump the bitmap that is in $ as a comma-separated list of numbers.
|
|
end
|
|
|
|
define pel
|
|
output expand_location ($)
|
|
echo \n
|
|
end
|
|
|
|
document pel
|
|
Print expanded location of $.
|
|
end
|
|
|
|
# Define some macros helpful to gdb when it is expanding macros.
|
|
macro define __FILE__ "gdb"
|
|
macro define __LINE__ 1
|
|
macro define __FUNCTION__ "gdb"
|
|
macro define __null 0
|
|
macro define input_line expand_location(input_location).line
|
|
macro define input_filename expand_location(input_location).file
|
|
|
|
# Gracefully handle aborts in functions used from gdb.
|
|
set unwindonsignal on
|
|
|
|
# Put breakpoints at exit and fancy_abort in case abort is mapped
|
|
# to either fprintf/exit or fancy_abort.
|
|
b fancy_abort
|
|
|
|
# Put a breakpoint on internal_error to help with debugging ICEs.
|
|
b internal_error
|
|
|
|
set complaints 0
|
|
# Don't let abort actually run, as it will make
|
|
# stdio stop working and therefore the `pr' command above as well.
|
|
# Put this last because gcc does not reference it any more unless
|
|
# USE_SYSTEM_ABORT is defined, so gdb may complain and bail out.
|
|
b exit
|
|
b abort
|
|
|
|
# Disable strict type checking. This allows developers to (for example)
|
|
# make inferior calls without casting absolute address to a suitable
|
|
# pointer type.
|
|
set check type off
|
|
|
|
# Skip all inline functions in tree.h.
|
|
# These are used in accessor macros.
|
|
# Note that this is added at the end because older gdb versions
|
|
# do not understand the 'skip' command.
|
|
# See https://sourceware.org/gdb/current/onlinedocs/gdb/Skipping-Over-Functions-and-Files.html
|
|
skip file tree.h
|
|
|
|
# Likewise, skip various inline functions in rtl.h.
|
|
skip rtx_expr_list::next
|
|
skip rtx_expr_list::element
|
|
skip rtx_insn_list::next
|
|
skip rtx_insn_list::insn
|
|
skip rtx_sequence::len
|
|
skip rtx_sequence::element
|
|
skip rtx_sequence::insn
|
|
skip INSN_UID
|
|
skip PREV_INSN
|
|
skip SET_PREV_INSN
|
|
skip NEXT_INSN
|
|
skip SET_NEXT_INSN
|
|
skip BLOCK_FOR_INSN
|
|
skip PATTERN
|
|
skip INSN_LOCATION
|
|
skip INSN_HAS_LOCATION
|
|
skip JUMP_LABEL_AS_INSN
|