Symbol Lookup w/Avtrex gcdump Tool

Craig A. Vanderborgh craigv@voxware.com
Thu Feb 16 20:36:00 GMT 2006


David Daney wrote:

> 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<--------------------------

OH YES!!

This does the trick.. what a difference.  This is truly a huge 
improvement.  Thanks a lot, I will now go and immerse myself in these 
dumps...

Best Regards,
craig vanderborgh
voxware incorporated

>
> 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
>
>




Confidentiality Note: This message may contain information which is privileged or confidential and exempt from disclosure under applicable law. If the reader of this message is not the intended recipient, or the employee responsible for delivering the message to the intended recipient, you are hereby NOTIFIED that any dissemination, distribution, retention, archiving, or copying of this communication is strictly prohibited. If you received this email in error, please notify Voxware immediately by return email to the sender.



More information about the Java mailing list