* Remote gdb and shared libraries
@ 2006-05-02 4:15 Doug Abbott
2006-05-02 4:19 ` Daniel Jacobowitz
0 siblings, 1 reply; 2+ messages in thread
From: Doug Abbott @ 2006-05-02 4:15 UTC (permalink / raw)
To: gdb
Hi,
This should be a fairly simple problem of inadequate documentation.
I've searched the archives and found quite a bit of stuff on shared
libraries, but nothing that exactly matches the problem I'm seeing.
I'm running gdb 6.3 under Red Hat 9 using gdbserver on an ARM9 target
board to debug a simple Hello World program. I've worked through the
stuff about setting solib-absolute-prefix and both the host and target
copies of the libraries seem to be identical.
The first suspicious thing that happens is when gdb connects to the
target, it returns:
0x40001470 in ?? ()
implying to me that it can't find the name of the function at that
particular address. After the program starts and halts at a breakpoint,
the info share command returns:
From To Syms Read Shared Object
Library
0x40035cd0 0x401162cc No
/usr/local/arm/arm-linux/lib/libc.so.6
0x40001470 0x40011598 No
/usr/local/arm/arm-linux/lib/ld-linux.so.2
Hmmm. The most suspicious aspect of this is the Syms Read column that
says "No". Why didn't it read the symbols?
With each next command, gdb says "Cannot access memory at address 0x0".
When I try to step over a call to printf() (with next), it says
"0x000082cc in ?? ()". Executing next again returns "Cannot find bounds
of current function".
At that point things are pretty much hung up. Surely this is a simple
problem. I've used gdbserver before in x86 and Motorola Dragonball
environments without a problem. But in those situations, I didn't have
to build the shared libraries (if there were any?).
And BTW, the hello program runs fine on the target without gdb.
Any help would be greatly appreciated.
Doug
^ permalink raw reply [flat|nested] 2+ messages in thread* Re: Remote gdb and shared libraries
2006-05-02 4:15 Remote gdb and shared libraries Doug Abbott
@ 2006-05-02 4:19 ` Daniel Jacobowitz
0 siblings, 0 replies; 2+ messages in thread
From: Daniel Jacobowitz @ 2006-05-02 4:19 UTC (permalink / raw)
To: Doug Abbott; +Cc: gdb
On Mon, May 01, 2006 at 10:15:39PM -0600, Doug Abbott wrote:
> The first suspicious thing that happens is when gdb connects to the
> target, it returns:
>
> 0x40001470 in ?? ()
>
> implying to me that it can't find the name of the function at that
> particular address.
You're in the dynamic loader but GDB doesn't yet know where the dynamic
loader has been loaded. This is typical.
> From To Syms Read Shared Object
> Library
> 0x40035cd0 0x401162cc No
> /usr/local/arm/arm-linux/lib/libc.so.6
> 0x40001470 0x40011598 No
> /usr/local/arm/arm-linux/lib/ld-linux.so.2
>
> Hmmm. The most suspicious aspect of this is the Syms Read column that
> says "No". Why didn't it read the symbols?
Because it couldn't find them. You have to tell it where they are.
Have you used set solib-absolute-prefix? If not, try that. Do your
libraries precisely match the target's?
> With each next command, gdb says "Cannot access memory at address 0x0".
> When I try to step over a call to printf() (with next), it says
> "0x000082cc in ?? ()". Executing next again returns "Cannot find bounds
> of current function".
You have to use nexti / stepi when you've gotten into somewhere that
GDB doesn't know about.
The fact that it doesn't know about 0x82cc is suspicious. You did load
your application into GDB, right? Using "file" or on the command line?
--
Daniel Jacobowitz
CodeSourcery
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2006-05-02 4:19 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2006-05-02 4:15 Remote gdb and shared libraries Doug Abbott
2006-05-02 4:19 ` Daniel Jacobowitz
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox