diff options
author | Simon Marchi <simon.marchi@efficios.com> | 2023-02-09 14:50:56 -0500 |
---|---|---|
committer | Simon Marchi <simon.marchi@efficios.com> | 2023-02-28 11:05:57 -0500 |
commit | 139f66c7287806a50dbee598e194ba869b7955d4 (patch) | |
tree | 2d44997ace353e8cf3224ee8131ab1b4d653aae3 /gdb/testsuite/gdb.gdb | |
parent | 0c132dac7f21062f19d47982697f0a223ad430ed (diff) | |
download | fsf-binutils-gdb-139f66c7287806a50dbee598e194ba869b7955d4.zip fsf-binutils-gdb-139f66c7287806a50dbee598e194ba869b7955d4.tar.gz fsf-binutils-gdb-139f66c7287806a50dbee598e194ba869b7955d4.tar.bz2 |
gdb: add HtabPrinter to gdb-gdb.py.in
When debugging GDB, I find it a bit tedious to inspect htab_t objects.
It is possible to find the entries by poking at the fields, but it's
annoying to do each time. I think a pretty printer would help. Add a
basic one to gdb-gdb.py.
The pretty printer advertises itself as "array-like", and the result
looks like:
(top-gdb) p bfcache
$3 = htab_t with 3 elements = {0x6210003252a0, 0x62100032caa0, 0x62100033baa0}
The htab_t itself doesn't know about the type of pointed objects. But
it's easy enough to cast the addresses to the right type to use them:
(top-gdb) print *((btrace_frame_cache *) 0x6210003252a0)
$6 = {tp = 0x61700002ed80, frame = 0x6210003251e0, bfun = 0x62000000b390}
Change-Id: Ia692e3555fe7a117b7ec087840246b1260a704c6
Reviewed-By: Tom Tromey <tom@tromey.com>
Diffstat (limited to 'gdb/testsuite/gdb.gdb')
-rw-r--r-- | gdb/testsuite/gdb.gdb/python-helper.exp | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/gdb/testsuite/gdb.gdb/python-helper.exp b/gdb/testsuite/gdb.gdb/python-helper.exp index f1e95fb..16b4199 100644 --- a/gdb/testsuite/gdb.gdb/python-helper.exp +++ b/gdb/testsuite/gdb.gdb/python-helper.exp @@ -208,6 +208,9 @@ proc test_python_helper {} { " cplus_stuff = $hex}"] gdb_test -prompt $outer_prompt_re "print *type->main_type" $answer + # Test the htab_t pretty-printer. + gdb_test -prompt $outer_prompt_re "print all_bfds" "htab_t with ${::decimal} elements = \\{${::hex}.*\\}" + return 0 } |