Making sense of hs_err_pid stack trace
I'm attempting to debug a crash in a Java application running on Windows that occurs inside a native .dll. This question is not about the .dll itself, which is written in C++, but about how to use the hs_err_pid####.log file to figure out where to begin in the dll.
The stack trace from my error log looks like this:
Stack: [0x11720000,0x11820000), sp=0x1181f3c0, free space=1020k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
C [ntdll.dll+0x11e58]
C [ntdll.dll+0x18251]
C [ntdll.dll+0x11c76]
C [wccapp.dll+0x5640]
C [wccapp.dll+0x56b2]
Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
j com.ct.appshare.jNSLvPlg.jniCapture()I+0
j com.ct.appshare.AppshareHandler.run()V+25
j java.lang.Thread.run()V+11
v ~StubRoutines::call_stub
The problem is that I can't make sense of the offsets given for the native stack trace. The first frame has to be the outermost jni method, jniCapture(). Examining my .dll in disassembly I can see that this method begins at offset 0x10056210. Using another free tool to examine the dll exports, I see that the jniCapture() method's entry point is 0x000471a3. But neither of these seems to have anything to do with the offset of 0x56b2 listed in the stack trace.
So how do I use the stack trace to find out which functions in my dll or in ntdll.dll are being called?

