Hi all,

I saw C++ frames in `jhsdb jstack --mixed`, and they were mangled as below:


0x00007ff255a8fa4c      
_ZN9JavaCalls11call_helperEP9JavaValueRK12methodHandleP17JavaCallArgumentsP6Thread
 + 0x6ac
0x00007ff255a8cc1d      
_ZN9JavaCalls12call_virtualEP9JavaValueP5KlassP6SymbolS5_P17JavaCallArgumentsP6Thread
 + 0x33d


We can demangle them via c++filt, but I think it is more convenience if jstack 
can show demangling symbols.
I think we can demangle in jstack with this patch. If it is accepted, I will 
file it to JBS and send review request.
What do you think?

  http://cr.openjdk.java.net/~ysuenaga/sa-demangle/

We can get the stack as below after applying this patch:


0x00007ff1aba20a4c      JavaCalls::call_helper(JavaValue*, methodHandle const&, 
JavaCallArguments*, Thread*) + 0x6ac
0x00007ff1aba1dc1d      JavaCalls::call_virtual(JavaValue*, Klass*, Symbol*, 
Symbol*, JavaCallArguments*, Thread*) + 0x33d


I use abi::__cxa_demangle() for demangling, so this patch adds C++ source to SA.
If it is not comfortable, we can use cplus_demangle().
But this function is provided by libiberty.a, so we need to link it to 
libsaproc and need to check libiberty.a in configure script.


Thanks,

Yasumasa

Reply via email to