This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [patch] Fix crash on `info files' with gdbserver
- From: Pedro Alves <palves at redhat dot com>
- To: Jan Kratochvil <jan dot kratochvil at redhat dot com>
- Cc: gdb-patches at sourceware dot org
- Date: Wed, 08 Feb 2012 21:21:12 +0000
- Subject: Re: [patch] Fix crash on `info files' with gdbserver
- References: <20120208204955.GA28565@host2.jankratochvil.net>
On 02/08/2012 08:49 PM, Jan Kratochvil wrote:
> while playing with gdbserver GDB just crashed for me.
>
> The problem is exec_ops get pushed to the target stack for the loaded shared
> libraries despite exec_bfd remains NULL which is not expected by exec.c.
>
> Breakpoint 1, add_target_sections (sections=0x21372e0, sections_end=0x2137580) at exec.c:471
> 471 push_target (&exec_ops);
> (gdb) bt
> #0 add_target_sections (sections=0x21372e0, sections_end=0x2137580) at exec.c:471
> #1 in solib_map_sections (so=0x21cd6f0) at solib.c:507
> #2 in update_solib_list (from_tty=1, target=0x1d8fee0) at solib.c:804
> #3 in solib_add (pattern=0x0, from_tty=1, target=0x1d8fee0, readsyms=1) at solib.c:889
> #4 in enable_break (info=0x210f000, from_tty=1) at solib-svr4.c:1624
> #5 in svr4_solib_create_inferior_hook (from_tty=1) at solib-svr4.c:2234
> #6 in solib_create_inferior_hook (from_tty=1) at solib.c:1172
> #7 in reload_shared_libraries (ignored=0x0, from_tty=1, e=0x1fc5cd0) at solib.c:1308
>
> So it is questionable whether to keep exec_ops unpushed or whether to handle
> NULL exec_bfd there. I chose the latter.
That's the right choice. The exec target nowadays handles reading memory
from all target sections, no matter whether they came from the executable
or from shared libraries. So e.g., "set trust-readonly-sections" works
with the DSOs target sections too.
--
Pedro Alves