Symbol Lookup w/Avtrex gcdump Tool

David Daney ddaney@avtrex.com
Thu Feb 16 16:10:00 GMT 2006


Craig A. Vanderborgh wrote:
> Hello Everyone:
>> I am using David Daney's fabulous "Gcdump" tool once more, to try to 
> track down some memory management problems in our application.
>> However, I'm flummoxed by a problem that I have not ever been able to 
> solve. The "dump" part of the tool appears to be working correctly. 
> But the "analysis" portion seems to be able to find names for libgcj 
> symbols, but NO APPLICATION SYMBOL NAMES.
>
There is a bug in the analyser. It assumes that all objects are 
relocated by their base address as shown from /proc/self/maps.
For shared libraries this is a valid assumption for the executable it is 
not. The executable is already relocated.
One hacky work around is to find the dump file that contains the copy of 
/proc/self/maps and add a line to the beginning of that section 
something like this:
-------------------8<--------------------------
Analyze isnÂ’t getting symbols for pvrapp (or other apps) because it is 
incorrectly translating addresses from the “mipsel-linux-nm” output to 
the actual address space used.
Pvrapp seems to actually get loaded at 0, but analyse tries to determine 
the actual address space used by looking at “/proc/<pid>/maps” (shown 
below) and picking the lowest address for a given module. The first 
line below I added by editing 001-dump.txt by hand. Without it, 
analyze thinks 400000 is the base.
So, the quick way to fix the problem is to find your executable and try 
adding a base address of 0 similar to the line in yellow below. Of 
course, substitute the actual executable name for pvrapp.
---------- Begin address map ----------
00000000-00000001 r-xp 00000000 03:01 82024 /avtrex/bin/pvrapp
00400000-00b96000 r-xp 00000000 03:01 82024 /avtrex/bin/pvrapp
00bd5000-00d94000 rw-p 00795000 03:01 82024 /avtrex/bin/pvrapp


More information about the Java mailing list

AltStyle によって変換されたページ (->オリジナル) /