This is the mail archive of the gdb@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: GAB side - how to resolve unresolved symbols


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]