This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [commit] [patchv2] Fix vDSO l_name for GDB's: Can't read pathname for load map: Input/output error.


On 11/11/2013 12:07 PM, Jan Kratochvil wrote:
> commit 9182aa67994f4e8db378a949812176453e06cb34
> Author: Jan Kratochvil <jan.kratochvil@redhat.com>
> Date:   Mon Nov 11 18:03:58 2013 +0100
> 
>     Fix vDSO l_name for GDB's: Can't read pathname for load map: Input/output error.

Jan,

This looks great. Thanks for sorting this out and pushing us to
help gdb and linux create better core dumps.
 
> diff --git a/ChangeLog b/ChangeLog
> index d330b58..2d9785b 100644
> --- a/ChangeLog
> +++ b/ChangeLog
> @@ -1,3 +1,9 @@
> +2013-11-11  Jan Kratochvil  <jan.kratochvil@redhat.com>
> +
> +	[BZ #387]
> +	* elf/dl-object.c (_dl_new_object): Initialize L_NAME from NEWNAME if
> +	it is empty.
> +
>  2013-11-11  Adhemerval Zanella  <azanella@linux.vnet.ibm.com>
>  
>          * benchtests/Makefile: Add bench-strtod.
> diff --git a/elf/dl-object.c b/elf/dl-object.c
> index 0f594d2..26d4f44 100644
> --- a/elf/dl-object.c
> +++ b/elf/dl-object.c
> @@ -88,7 +88,13 @@ _dl_new_object (char *realname, const char *libname, int type,
>    /* newname->next = NULL;	We use calloc therefore not necessary.  */
>    newname->dont_free = 1;
>  
> -  new->l_name = realname;
> +  /* When we create the executable link map, or a VDSO link map, we start
> +     with "" for the l_name. In these cases "" points to ld.so rodata
> +     and won't get dumped during core file generation. Therefore to assist
> +     gdb and to create more self-contained core files we adjust l_name to
> +     point at the newly allocated copy (which will get dumped) instead of
> +     the ld.so rodata copy.  */
> +  new->l_name = *realname ? realname : (char *) newname->name + libname_len - 1;
>    new->l_type = type;
>    /* If we set the bit now since we know it is never used we avoid
>       dirtying the cache line later.  */

Cheers,
Carlos.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]