This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [PATCH v3 3/3] btrace, vdso: add vdso target sections
- From: Pedro Alves <palves at redhat dot com>
- To: Markus Metzger <markus dot t dot metzger at intel dot com>
- Cc: gdb-patches at sourceware dot org
- Date: Thu, 29 May 2014 18:03:48 +0100
- Subject: Re: [PATCH v3 3/3] btrace, vdso: add vdso target sections
- Authentication-results: sourceware.org; auth=none
- References: <1400655682-4014-1-git-send-email-markus dot t dot metzger at intel dot com> <1400655682-4014-3-git-send-email-markus dot t dot metzger at intel dot com> <5387663A dot 5040704 at redhat dot com>
On 05/29/2014 05:54 PM, Pedro Alves wrote:
> Hi Markus,
>
> On 05/21/2014 08:01 AM, Markus Metzger wrote:
>> When loading symbols for the vdso, also add its sections to target_sections.
>>
>> This fixes an issue with record btrace where vdso instructions could not be
>> disassembled during replay.
>>
>> 2014-05-21 Markus Metzger <markus.t.metzger@intel.com>
>>
>> * symfile-mem.c (symbol_file_add_from_memory): Add BFD sections.
>
> Unfortunately this caused regressions in break-interp.exp:
>
> Running ../../../src/gdb/testsuite/gdb.base/break-interp.exp ...
> ERROR: Process no longer exists
>
> That is GDB crashing.
>
> 589fdceb99db9868e34bc976b7e234dbfaf327e2 is the first bad commit
> commit 589fdceb99db9868e34bc976b7e234dbfaf327e2
> Author: Markus Metzger <markus.t.metzger@intel.com>
> Date: Wed Apr 2 09:54:11 2014 +0200
>
> btrace, vdso: add vdso target sections
>
> When loading symbols for the vdso, also add its sections to target_sections.
>
> This fixes an issue with record btrace where vdso instructions could not be
> disassembled during replay.
>
> * symfile-mem.c (symbol_file_add_from_memory): Add BFD sections.
>
> testsuite/
> * gdb.btrace/vdso.c: New.
> * gdb.btrace/vdso.exp: New.
>
>
> Core was generated by `/home/pedro/gdb/mygit/build/gdb/testsuite/../../gdb/gdb -nw -nx -data-directory'.
> Program terminated with signal SIGSEGV, Segmentation fault.
> #0 0x0000000000647bce in exec_set_section_address (filename=0x27bb1f0 "/home/pedro/gdb/mygit/build/gdb/testsuite/gdb.base/break-interp-LDprelinkNOdebugNO", index=0,
> address=139930618982856) at ../../src/gdb/exec.c:919
> 919 if (filename_cmp (filename, p->the_bfd_section->owner->filename) == 0
'p', a target section, points at garbage.
Hmm, wait, nothing is removing the vdso symbols target sections, like ever,
not even when the process dies, isn't it? I guess that's it.
--
Pedro Alves