This is the mail archive of the
gdb@sourceware.org
mailing list for the GDB project.
Re: Remote gdb and shared libraries
- From: Daniel Jacobowitz <drow at false dot org>
- To: Doug Abbott <doug at intellimetrix dot us>
- Cc: gdb at sourceware dot org
- Date: Tue, 2 May 2006 00:19:46 -0400
- Subject: Re: Remote gdb and shared libraries
- References: <4456DCEB.7030103@intellimetrix.us>
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