Re: Fix Solaris gcore / shared libraries interaction

Jan Kratochvil
2009-11-22T16:04:14Z

On Sun, 22 Nov 2009 16:18:15 +0100, Daniel Jacobowitz wrote:
> On Sun, Nov 22, 2009 at 03:34:21PM +0100, Jan Kratochvil wrote:
> > Isn't suitable the GDB change for the core file loading never replied here?
> > [patch] Fix GNU/Linux core open: Can't read pathname for load map: Input/output error.
> > http://sourceware.org/ml/gdb-patches/2009-10/msg00142.html
>
> No. In that patch, the name of one DSO (the vDSO) is in another DSO
> (ld.so). In the Solaris case, the name of ld.so is in its own
> read-only segment. So if you don't dump that page into the core file,
> no matter how you iterate you will never find the path to ld.so.

OK, I cannot say more as it is not reproducible for me on OpenSolaris 2009.06
snv_111b X86 so it may affect only older Solaris versions:

On Sat, 21 Nov 2009 01:10:27 +0100, Joseph S. Myers wrote:
# With some versions of the Solaris 10 dynamic linker,

Seeing on OpenSolaris 2009.06 snv_111b X86 no GDB warnings and:

(gdb) info sharedlibrary
LM_NAME=0xfefa009f
LM_NAME=0xfefa0000
From To Syms Read Shared Object Library
0xfee6e0d0 0xfef25c00 Yes (*) /lib/libc.so.1
0xfefc52a0 0xfefe61fb Yes (*) /lib/ld.so.1
core:
Program Headers:
Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align
LOAD 0x155f10 0xfefa0000 0x00000000 0x01000 0x01000 RW 0
gcore:
LOAD 0x15471c 0xfefa0000 0x00000000 0x01000 0x01000 RW 0x1

(gdb) info sharedlibrary
LM_NAME=0xfffffd7fff380094
LM_NAME=0xfffffd7fff380000
From To Syms Read Shared Object Library
0xfffffd7fff220940 0xfffffd7fff2eaf88 Yes (*) /lib/64/libc.so.1
0xfffffd7fff3bb3d0 0xfffffd7fff3e5a2e Yes (*) /lib/amd64/ld.so.1
core64:
Program Headers:
Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align
LOAD 0x1afa0c 0xfffffd7fff380000 0x0000000000000000 0x001000 0x001000 RW 0
gcore64:
LOAD 0x017bf0 0xfffffd7fff380000 0x0000000000000000 0x001000 0x001000 RW 0x1

Regards,
Jan