This is the mail archive of the
gdb@sources.redhat.com
mailing list for the GDB project.
Re: GAB side - how to resolve unresolved symbols
- From: Kevin Buettner <kevinb at redhat dot com>
- To: "Raja Saleru" <iap_sraja at access dot co dot jp>, <gdb at sources dot redhat dot com>
- Date: Tue, 10 Jun 2003 11:38:39 -0700
- Subject: Re: GAB side - how to resolve unresolved symbols
- References: <OHEKKPPLCJNKIDELCLGOMELPCAAA.iap_sraja@access.co.jp>
On Jun 3, 7:41pm, Raja Saleru wrote:
> I am porting GDB Server on Vendor OS ( micro itron) on sh target.
> The Target already has OS and TCP/IP and others.
> In host side Linux environment, I have application. These applications uses
> OS and TCP/IP service calls.
> After compiling the application, I will downloading to target and the
> linking takes place at target side.
> I am going to reboot the target. In the host side, gdb has symbols, but the
> addresses are not fixed.
> After linking the application at target side, the linked version contains
> the debug info as well as complete image, which is going to run on target.
> The image has been created in elf / Dwarf 2 format.
>
> The linking at target takes places at any time dynamically. Whenever linking
> happens, the target reboots.
> For debugging the application, in host side all the symbols should be
> resolved. I don't want to copy the whole liked version of image into host
> side.
>
> 1. How can I re-solve the un-resolved symbols at host side by sending only
> required
> addresses of un-resolved symbols at host ?
It seems to me that you might be able to use the shared library machinery
to do what you want.
> 2. if we assume that at target side, we have some utility, after linking
> this utility will generates a table
> which contains the symbols and their addresses. then how can I update at
> host side ?
I believe some facilities have been recently added to gdb for handling
split executables / symbol tables. You might want to take a look...
> 3. I found out some commands in gdb
> symbol file - use symbol table from file
> load file - dynamically link file and add its symbols
> add-sym file addr - read additional symbols from file, dynamically
> located at address addr
>
> from these commands can I solve my problem ?
> what format the above commands expects the file ?
The only command that *might* be appropriate for your purposes is
"add-symbol-file". But that assumes that you know the addresses
at which the various sections have been relocated to on the target.
My guess is that even if it works, it'll prove to be too cumbersome
for real debugging.
I think you should investigate the following two approaches:
1) Use the shared library machinery in gdb to get gdb to do the
relocations for you. It's likely that you'll need to write
a target specific solib backend (on the gdb side) to do this.
There will also be some target side work needed.
or
2) After relocation (linking) on the target, send a symbol file back
to the host for gdb to load.
My guess is that (2) would be quicker to implement, but that (1) would
be easier for the user.
Kevin