Version: 5.0
Platform: i586-pc-sco3.2v5.0.2
Compiler: gcc-2.95.2
I had another segv trouble with print_section_info() in gdb-4.18.
I have a detailed report on it. It is unlikely to be interesting to
anybody since 5.0 is released, but I can send it if requested.
This segv is with 5.0.
gdb is run like this: gdb <executable>. The executable heavily uses
shared libraries. Then the following commands are passed to gdb.
attach <process running <executable>>
info target
detach
break *<<executable> entry point>
run
info target
SEGV occurs while executing the last command.
gdb backtrace immediately after SEGV is:
--
#0 0x8102a21 in int_vasprintf (result=0x10f94, format=0x811f912 " is %s",
args=0x8047308) at ../../gdb-5.0/libiberty/vasprintf.c:101
#1 0x8102aba in vasprintf (result=0x0,
format=0x10f94 <Address 0x10f94 out of bounds>,
args=0x8047374 "\224\017\001") at ../../gdb-5.0/libiberty/vasprintf.c:131
#2 0x80a2e93 in vfprintf_maybe_filtered (stream=0x10f94,
format=0x10f94 <Address 0x10f94 out of bounds>,
args=0x10f94 <Address 0x10f94 out of bounds>, filter=69524) at utils.c:2030
#3 0x80a2f0d in vfprintf_filtered (stream=0x0,
format=0x10f94 <Address 0x10f94 out of bounds>,
args=0x10f94 <Address 0x10f94 out of bounds>) at utils.c:2048
#4 0x80a305c in printf_filtered (
format=0x10f94 <Address 0x10f94 out of bounds>) at utils.c:2125
#5 0x808f0dc in print_section_info (t=0x815d460, abfd=0x81716a8)
at ../../gdb-5.0/gdb/exec.c:597
#6 0x808f13e in exec_files_info (t=0x10f94) at ../../gdb-5.0/gdb/exec.c:610
#7 0x808a397 in target_info (args=0x0, from_tty=1)
at ../../gdb-5.0/gdb/target.c:1105
#8 0x809d65a in execute_command (p=0x815dd2c "", from_tty=1) at top.c:1550
#9 0x8077c0c in command_handler (command=0x815dd28 "") at event-top.c:519
#10 0x80783be in command_line_handler (rl=0x817e000 "\f�\027\b")
at event-top.c:815
#11 0x800cc3c4 in rl_callback_read_char () at ../../readline-4.1/callback.c:116
#12 0x807724f in rl_callback_read_char_wrapper (client_data=0x0)
at event-top.c:170
#13 0x8077ae6 in stdin_event_handler (error=0, client_data=0x10f94)
at event-top.c:426
#14 0x80b6814 in handle_file_event (event_file_desc=69524)
at ../../gdb-5.0/gdb/event-loop.c:742
#15 0x80b62eb in process_event () at ../../gdb-5.0/gdb/event-loop.c:377
#16 0x80b6329 in gdb_do_one_event (data=0x0)
at ../../gdb-5.0/gdb/event-loop.c:414
#17 0x809c840 in catch_errors (func=0x80b6300 <gdb_do_one_event>, args=0x0,
errstring=0x10f94 <Address 0x10f94 out of bounds>, mask=6) at top.c:619
#18 0x80b6360 in start_event_loop () at ../../gdb-5.0/gdb/event-loop.c:450
#19 0x80773d2 in cli_command_loop () at event-top.c:200
#20 0x804b636 in captured_command_loop (data=0x0)
at ../../gdb-5.0/gdb/main.c:104
#21 0x809c840 in catch_errors (func=0x804b61c <captured_command_loop>,
args=0x0, errstring=0x10f94 <Address 0x10f94 out of bounds>, mask=6)
at top.c:619
#22 0x804c27b in captured_main (data=0x10f94) at ../../gdb-5.0/gdb/main.c:749
#23 0x809c840 in catch_errors (func=0x804b66c <captured_main>, args=0x8047880,
errstring=0x10f94 <Address 0x10f94 out of bounds>, mask=6) at top.c:619
#24 0x804c2a7 in main (argc=69524, argv=0x10f94) at ../../gdb-5.0/gdb/main.c:761
#25 0x804b4bb in _start ()
--
SEGV occurs due to invalid address passed to strlen(). This value
equals 0x10f94 and appears to be stored in
p->the_bfd_section->name
and returned by
bfd_section_name (p->bfd, p->the_bfd_section)
expr in `exec.c' :: print_section_info(). It equals to invalid
`errstring' address that appears in higher stack frames since main().