diff options
author | Tom Tromey <tromey@redhat.com> | 2012-03-15 15:43:05 +0000 |
---|---|---|
committer | Tom Tromey <tromey@redhat.com> | 2012-03-15 15:43:05 +0000 |
commit | de2f714807e42df981348b72164f60ea71b37543 (patch) | |
tree | ae7e2c00a0e61ced4ff299b6b0f03da08a072faf /gdb/cp-abi.c | |
parent | 8f255da61a5667b640ee0c5d68d3a5fb380db813 (diff) | |
download | gdb-de2f714807e42df981348b72164f60ea71b37543.tar.gz |
* gnu-v3-abi.c (struct value_and_voffset): New.
(hash_value_and_voffset, eq_value_and_voffset)
(compare_value_and_voffset, compute_vtable_size)
(print_one_vtable, gnuv3_print_vtable): New functions.
(init_gnuv3_ops): Initialize 'print_vtable' field.
* cp-support.c (info_vtbl_command): New function.
(_initialize_cp_support): Add "info vtbl".
* cp-abi.h (cplus_print_vtable): Declare.
(struct cp_abi_ops) <print_vtable>: New field.
* cp-abi.c (cplus_print_vtable): New function.
* NEWS: Update.
gdb/testsuite
* gdb.cp/virtfunc.exp (make_one_vtable_result): New proc.
(test_info_vtbl): Likewise.
(do_tests): Call test_info_vtbl.
* gdb.cp/virtfunc.cc (va): New global.
gdb/doc
* gdb.texinfo (Debugging C Plus Plus): Document "info vtbl".
Diffstat (limited to 'gdb/cp-abi.c')
-rw-r--r-- | gdb/cp-abi.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/gdb/cp-abi.c b/gdb/cp-abi.c index e949088f396..16b53566b58 100644 --- a/gdb/cp-abi.c +++ b/gdb/cp-abi.c @@ -169,6 +169,16 @@ cplus_method_ptr_to_value (struct value **this_p, return (*current_cp_abi.method_ptr_to_value) (this_p, method_ptr); } +/* See cp-abi.h. */ + +void +cplus_print_vtable (struct value *value) +{ + if (current_cp_abi.print_vtable == NULL) + error (_("GDB cannot print the vtable on this target")); + return (*current_cp_abi.print_vtable) (value); +} + int cp_pass_by_reference (struct type *type) { |