This is the mail archive of the
gdb-prs@sourceware.org
mailing list for the GDB project.
[Bug c++/9631] gdb crash in after "info local" when using public virtual derived class
- From: "pedro at codesourcery dot com" <sourceware-bugzilla at sourceware dot org>
- To: gdb-prs at sourceware dot org
- Date: 21 Jan 2009 00:13:13 -0000
- Subject: [Bug c++/9631] gdb crash in after "info local" when using public virtual derived class
- References: <20080916210801.9631.info@michaelzeilfelder.de>
- Reply-to: sourceware-bugzilla at sourceware dot org
------- Additional Comments From pedro at codesourcery dot com 2009-01-21 00:13 -------
I can reproduce this with both FSF gdb 6.8, and current mainline. Here's the
trace on mainline:
#0 0x00000000005d17f0 in gnuv3_baseclass_offset (type=0xbe6810, index=1,
valaddr=0xbf2f60 "�\a@",
address=140737488347904) at ../../src/gdb/gnu-v3-abi.c:466
#1 0x0000000000460a06 in baseclass_offset (type=0xbe6810, index=1,
valaddr=0xbf2f60 "�\a@", address=140737488347904)
at ../../src/gdb/cp-abi.c:78
#2 0x00000000005b9fc7 in cp_print_value (type=0xbe6810, real_type=0xbe6810,
valaddr=0xbf2f60 "�\a@", offset=0,
address=140737488347904, stream=0xbb1ae0, recurse=1, options=0x7fff3ad47640,
dont_print_vb=0x0)
at ../../src/gdb/cp-valprint.c:375
#3 0x00000000005b9264 in cp_print_value_fields (type=0xbe6810,
real_type=0xbe6810, valaddr=0xbf2f60 "�\a@",
offset=0, address=140737488347904, stream=0xbb1ae0, recurse=0,
options=0x7fff3ad47640, dont_print_vb=0x0,
dont_print_statmem=0) at ../../src/gdb/cp-valprint.c:169
#4 0x00000000005b8121 in c_val_print (type=0xbe6810, valaddr=0xbf2f60 "�\a@",
embedded_offset=0,
address=140737488347904, stream=0xbb1ae0, recurse=0, options=0x7fff3ad47640)
at ../../src/gdb/c-valprint.c:342
#5 0x00000000004ecaa8 in val_print (type=0xbe6810, valaddr=0xbf2f60 "�\a@",
embedded_offset=0,
address=140737488347904, stream=0xbb1ae0, recurse=0, options=0x7fff3ad47780,
language=0x76bf80)
at ../../src/gdb/valprint.c:262
#6 0x00000000004ecc09 in common_val_print (val=0xc1e9c0, stream=0xbb1ae0,
recurse=0, options=0x7fff3ad47780,
language=0x76bf80) at ../../src/gdb/valprint.c:310
#7 0x00000000004f20c4 in print_variable_and_value (name=0xbf6eb0 "iAmTheBug",
var=0xbf6e50, frame=0xb2c230,
stream=0xbb1ae0, indent=0) at ../../src/gdb/printcmd.c:1754
#8 0x000000000051db8c in print_block_frame_locals (b=0xbf6ee0, frame=0xb2c230,
num_tabs=0, stream=0xbb1ae0)
at ../../src/gdb/stack.c:1377
#9 0x000000000051dd6e in print_frame_local_vars (frame=0xb2c230, num_tabs=0,
stream=0xbb1ae0)
at ../../src/gdb/stack.c:1449
#10 0x000000000051de1d in locals_info (args=0x0, from_tty=1) at
../../src/gdb/stack.c:1537
#11 0x000000000049dd34 in do_cfunc (c=0xb1dc00, args=0x0, from_tty=1) at
../../src/gdb/cli/cli-decode.c:67
#12 0x00000000004a0b3e in cmd_func (cmd=0xb1dc00, args=0x0, from_tty=1) at
../../src/gdb/cli/cli-decode.c:1732
#13 0x00000000004587cf in execute_command (p=0xae294c "", from_tty=1) at
../../src/gdb/top.c:449
#14 0x00000000005295a3 in command_handler (command=0xae2940 "info locals ") at
../../src/gdb/event-top.c:514
#15 0x0000000000529c66 in command_line_handler (rl=0xcd3080 "\220N�") at
../../src/gdb/event-top.c:739
#16 0x00000000006177f5 in rl_callback_read_char () at
../../src/readline/callback.c:205
#17 0x0000000000528b55 in rl_callback_read_char_wrapper (client_data=0x0) at
../../src/gdb/event-top.c:178
#18 0x0000000000529469 in stdin_event_handler (error=0, client_data=0x0) at
../../src/gdb/event-top.c:433
#19 0x0000000000527be5 in handle_file_event (data={ptr = 0x0, integer = 0}) at
../../src/gdb/event-loop.c:812
#20 0x0000000000527251 in process_event () at ../../src/gdb/event-loop.c:394
#21 0x0000000000527331 in gdb_do_one_event (data=0x0) at
../../src/gdb/event-loop.c:459
#22 0x0000000000521e07 in catch_errors (func=0x527266 <gdb_do_one_event>,
func_args=0x0, errstring=0x72b20f "",
mask=6) at ../../src/gdb/exceptions.c:516
#23 0x00000000004b1553 in tui_command_loop (data=0x0) at
../../src/gdb/tui/tui-interp.c:153
#24 0x000000000052242f in current_interp_command_loop () at
../../src/gdb/interps.c:290
#25 0x00000000004509a5 in captured_command_loop (data=0x0) at
../../src/gdb/main.c:99
#26 0x0000000000521e07 in catch_errors (func=0x450994 <captured_command_loop>,
func_args=0x0, errstring=0x711f5d "",
mask=6) at ../../src/gdb/exceptions.c:516
#27 0x0000000000451a89 in captured_main (data=0x7fff3ad48020) at
../../src/gdb/main.c:837
#28 0x0000000000521e07 in catch_errors (func=0x4509d7 <captured_main>,
func_args=0x7fff3ad48020,
errstring=0x711f5d "", mask=6) at ../../src/gdb/exceptions.c:516
#29 0x0000000000451abc in gdb_main (args=0x7fff3ad48020) at ../../src/gdb/main.c:846
#30 0x0000000000450990 in main (argc=2, argv=0x7fff3ad48128) at
../../src/gdb/gdb.c:33
The crash happens on the reference to:
466 if (vbasetype_vptr_fieldno >=
467 && TYPE_FIELD_BITPOS (vbasetype, vbasetype_vptr_fieldno) != 0)
468 error (_("Illegal vptr offset in class %s"),
469 TYPE_NAME (vbasetype) ? TYPE_NAME (vbasetype) : "<unknown>");
(gdb) p TYPE_FIELD_BITPOS (vbasetype, vbasetype_vptr_fieldno)
Cannot access memory at address 0x0
(gdb) p vbasetype_vptr_fieldno
$1 = 0
And,
(gdb) p *TYPE_MAIN_TYPE (vbasetype)
$10 = {code = TYPE_CODE_STRUCT, flag_unsigned = 0, flag_nosign = 0, flag_stub =
1, flag_target_stub = 0,
flag_static = 0, flag_prototyped = 0, flag_incomplete = 0, flag_varargs = 0,
flag_vector = 0,
flag_stub_supported = 1, flag_nottext = 0, flag_fixed_instance = 0, nfields =
0, vptr_fieldno = -1, name = 0x0,
tag_name = 0xbe6980 "foo::Base1", objfile = 0xbd6c30, target_type = 0x0,
fields = 0x0, vptr_basetype = 0x0,
type_specific = {cplus_stuff = 0xade3e0, floatformat = 0xade3e0,
calling_convention = 11396064}}
fields == NULL, and nfields = 0, and flag_stub == 1.
--
http://sourceware.org/bugzilla/show_bug.cgi?id=9631
------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.