mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-10-18 05:12:33 +08:00
* 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".
This commit is contained in:
10
gdb/cp-abi.c
10
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)
|
||||
{
|
||||
|
Reference in New Issue
Block a user