Help with debugging LD_PRELOADed shared C libraries

Daniel Jacobowitz drow@false.org
Thu Jul 13 19:10:00 GMT 2006


On Thu, Jul 13, 2006 at 08:55:37PM +0200, Thomas Ackermann wrote:
> LOAD 0x000000 0x08048000 0x08048000 0x0ad47 0x0ad47 R E 0x1000
> LOAD 0x00ad60 0x08053d60 0x08053d60 0x091f4 0x0b8c8 RW 0x1000
>   DYNAMIC        0x013eb4 0x0805ceb4 0x0805ceb4 0x000a0 0x000a0 RW  0x4

So your app loads its dynamic data at 0x0805ceb4...

> Program Headers:
> Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align
>   NOTE           0x000c94 0x00000000 0x00000000 0x009d0 0x00000     0
> LOAD 0x002000 0x08048000 0x00000000 0x00000 0x0b000 R E 0x1000
> LOAD 0x002000 0x08053000 0x00000000 0x0a000 0x0a000 RWE 0x1000

Which is right here and has a non-zero file size; looks fine.  But the
data itself may be missing.  Your error was:

Cannot access memory at address 0x4001738c

> LOAD 0x23f8000 0x40016000 0x00000000 0x02000 0x02000 RWE 0x1000

... which is right here and looks fine.  I do not know why GDB is
having trouble accessing the data from the core file, in that case.
Sorry :-(

> > cat&
> > killall -ABRT <pid of cat>
> 
> 
> Hmm...
> 
> Does not work:
> 
> austria:~ # cat&
> [1] 20914
> austria:~ # killall -ABRT 20914
> 20914: no process killed
> 
> [1]+  Stopped                 cat

Don't trust commands strangers tell you...

"kill" rather than "killall", sorry.

-- 
Daniel Jacobowitz
CodeSourcery



More information about the Gdb mailing list