Re: Help with debugging LD_PRELOADed shared C libraries

Daniel Jacobowitz
2006-07-13T19:10:51Z

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