[parisc-linux] Re: call_init in libc6 2.3.6.ds1-11

John David Anglin dave at hiauly1.hia.nrc.ca
Sun Feb 18 09:44:24 MST 2007


> (gdb) p/x $r20
> $2 = 0x4086221c
> (gdb) x/2x $r20
> 0x4086221c <.LC2+84>:   0x00000003      0x40df252f

Comparing the setup of this region of memory in /lib/libc.so.6
to that in a simple testcase, it seems that the value setup for
r19 is somehow wrong.  Surrounding values are similar to what
I see in the simple testcase:

#include <stdlib.h>
int
main ()
{
  exit (0);
}

Testcase:
(gdb) x/16x 0x4046221c
0x4046221c:     0x00000003      0x40465c6c      0x00000002      0x0000147c
0x4046222c:     0x00000014      0x00000007      0x00000017      0x403397cc
0x4046223c:     0x00000007      0x4032d0ac      0x00000008      0x0000c720
0x4046224c:     0x00000009      0x0000000c      0x6ffffffc      0x00010ec0

Segv case:
(gdb) x/16x $r20
0x4086221c <.LC2+84>:   0x00000003      0x40df252f      0x00000002      0x0000147c
0x4086222c <.LC2+100>:  0x00000014      0x00000007      0x00000017      0x407397cc
0x4086223c <.LC2+116>:  0x00000007      0x4072d0ac      0x00000008      0x0000c720
0x4086224c <.LC2+132>:  0x00000009      0x0000000c      0x6ffffffc      0x00010ec0

I think '3' in the preceeding location indicates the erronious value
is a PLTGOT value (i.e., we're looking at part of the relocated dynamic
section in /lib/libc.so.6).

Dave
-- 
J. David Anglin                                  dave.anglin at nrc-cnrc.gc.ca
National Research Council of Canada              (613) 990-0752 (FAX: 952-6602)



More information about the parisc-linux mailing list