Add support for enabling/disabling individual pretty-printers.
* python/py-prettyprint.c (search_pp_list): Skip disabled printers. * python/python-internal.h (gdbpy_enabled_cst): Declare. * python/python.c (gdbpy_enabled_cst): Define. (_initialize_python): Initialize gdbpy_enabled_cst. * NEWS: Add entry. doc/ * gdb.texinfo (Python API): New node `Disabling Pretty-Printers'. testsuite/ * gdb.python/py-prettyprint.exp: Add new test for enabled and disabled printers. * gdb.python/py-prettyprint.py (disable_lookup_function): New function. (enable_lookup_function): New function.
This commit is contained in:
parent
2dec564e91
commit
967cf47793
10 changed files with 102 additions and 5 deletions
|
@ -57,7 +57,6 @@ proc run_lang_tests {lang} {
|
|||
gdb_reinitialize_dir $srcdir/$subdir
|
||||
gdb_load ${binfile}
|
||||
|
||||
|
||||
if ![runto_main ] then {
|
||||
perror "couldn't run to breakpoint"
|
||||
return
|
||||
|
@ -109,3 +108,44 @@ proc run_lang_tests {lang} {
|
|||
|
||||
run_lang_tests "c"
|
||||
run_lang_tests "c++"
|
||||
|
||||
# Run various other tests.
|
||||
|
||||
if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable "debug"] != "" } {
|
||||
untested "Couldn't compile ${srcfile}"
|
||||
return -1
|
||||
}
|
||||
|
||||
# Start with a fresh gdb.
|
||||
gdb_exit
|
||||
gdb_start
|
||||
gdb_reinitialize_dir $srcdir/$subdir
|
||||
gdb_load ${binfile}
|
||||
|
||||
if ![runto_main ] then {
|
||||
perror "couldn't run to breakpoint"
|
||||
return
|
||||
}
|
||||
|
||||
gdb_test "b [gdb_get_line_number {break to inspect} ${testfile}.c ]" \
|
||||
".*Breakpoint.*"
|
||||
gdb_test "continue" ".*Breakpoint.*"
|
||||
|
||||
set remote_python_file [remote_download host ${srcdir}/${subdir}/${testfile}.py]
|
||||
|
||||
gdb_test "python execfile ('${remote_python_file}')" ""
|
||||
|
||||
gdb_test "print ss" " = a=< a=<1> b=<$hex>> b=< a=<2> b=<$hex>>" \
|
||||
"print ss enabled #1"
|
||||
|
||||
gdb_test "python disable_lookup_function ()" ""
|
||||
|
||||
gdb_test "print ss" " = {a = {a = 1, b = $hex}, b = {a = 2, b = $hex}}" \
|
||||
"print ss disabled"
|
||||
|
||||
gdb_test "python enable_lookup_function ()" ""
|
||||
|
||||
gdb_test "print ss" " = a=< a=<1> b=<$hex>> b=< a=<2> b=<$hex>>" \
|
||||
"print ss enabled #2"
|
||||
|
||||
remote_file host delete ${remote_python_file}
|
||||
|
|
|
@ -194,6 +194,11 @@ def lookup_function (val):
|
|||
|
||||
return None
|
||||
|
||||
def disable_lookup_function ():
|
||||
lookup_function.enabled = False
|
||||
|
||||
def enable_lookup_function ():
|
||||
lookup_function.enabled = True
|
||||
|
||||
def register_pretty_printers ():
|
||||
pretty_printers_dict[re.compile ('^struct s$')] = pp_s
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue