bug-gdb
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

accessing static memory in Linux modules


From: Paul Kinzelman
Subject: accessing static memory in Linux modules
Date: Mon, 12 Feb 2001 15:52:55 -0800

I'm using remote serial-line debugging of the linux kernel on an x86.
I've also tried gdb 4.18 and the latest gdb 5.0 and they work the
same way.

I load the module, find the text, data, and bss base addresses.
I reboot, then start up gdb with these addresses:
add-symbol-file /path/to/module.o 0xd0064050 0xd006f4e0 0xd00703a0
The 3 addresses are the .text, .data, and .bss from the insmod -m

I can set breakpoints by routine address and I can single-step. They
both work.

But breakpoints inside routines at particular lines *usually* don't work

(but occasionally they do, I have no idea why).
And examining of module global variables does not work. In both cases,
it looks like gdb may be forgetting to add in the proper offset
specified
during the add-symbol-file command.

For instance, if I say
    b "source-file-name.c":123
I get:
Breakpoint 1 at 0x3daf: file source-file-name.c, line 123
Where 0x3daf is probably the offset based on 0 instead of 0xd0064050.
Then when I continue, it of course says "Cannot insert breakpoint 1".

Also, if I try to print a variable:
    p variable-name
I get:
    Cannot access memory at address 0x144
instead of an address larger than 0xD0000000

The symbol table for 'variable-name' shows that this
variable is in the .data area plus 0x144 so it looks like
gdb is just not adding in the base address specified
during the load.

Have you seen this problem? Or am I doing something wrong?

-Paul Kinzelman





reply via email to

[Prev in Thread] Current Thread [Next in Thread]