JDK-8019174 : SA: jstack -m not showing system function names in stack trace for 32-bit JVM on linux
  • Type: Bug
  • Component: core-svc
  • Sub-Component: tools
  • Affected Version: 6,7,8
  • Priority: P4
  • Status: Closed
  • Resolution: Won't Fix
  • OS: linux
  • CPU: x86
  • Submitted: 2013-06-26
  • Updated: 2023-12-14
  • Resolved: 2014-04-15
Related Reports
Relates :  
Relates :  
Description
For 32-bit JVM on linux jstack -l shows '????????' in stacktrace where system functions are expected:

$JAVA_HOME/bin/java Test &
kill -11 $!
$JAVA_HOME/bin/jstack -l -m $JAVA_HOME/bin/java ./core

Attaching to core ./core.2097 from executable jdk1.6.0_60/bin/java, please wait...
Debugger attached successfully.
Client compiler detected.
JVM version is 20.60-b01
Finding object size using Printezis bits and skipping over...
Deadlock Detection:

No deadlocks found.

----------------- 2098 -----------------
0xb5264924	* Test.main(java.lang.String[]) bci:0 line:3 (Interpreted frame)
0xb5256366	<StubRoutines>
0xb7866701	_ZN9JavaCalls11call_helperEP9JavaValueP12methodHandleP17JavaCallArgumentsP6Thread + 0x1c1
0xb79a1a18	_ZN2os20os_exception_wrapperEPFvP9JavaValueP12methodHandleP17JavaCallArgumentsP6ThreadES1_S3_S5_S7_ + 0x18
0xb786652f	_ZN9JavaCalls4callEP9JavaValue12methodHandleP17JavaCallArgumentsP6Thread + 0x2f
0xb789a3a4	_Z17jni_invoke_staticP7JNIEnv_P9JavaValueP8_jobject11JNICallTypeP10_jmethodIDP18JNI_ArgumentPusherP6Thread + 0x124
0xb7889cec	jni_CallStaticVoidMethod + 0x14c
0x08049b98	JavaMain + 0x2c8
0x00527832	start_thread + 0xe2
Locked ownable synchronizers:
    - None
----------------- 2099 -----------------
0xb7f55402		????????
0x19ad6510		????????
----------------- 2100 -----------------
0xb7f55402		????????
0xb79a27ae	_ZN2os13PlatformEvent4parkEv + 0xee
0xb799339b	_ZN13ObjectMonitor4waitExbP6Thread + 0x5fb
0xb7a17283	_ZN18ObjectSynchronizer4waitE6HandlexP6Thread + 0x53
0xb78c73e0	JVM_MonitorWait + 0x240
0xb52600dd	* java.lang.Object.wait(long) bci:0 (Interpreted frame)
0xb525904d	* java.lang.Object.wait() bci:2 line:485 (Interpreted frame)
0xb525904d	* java.lang.ref.Reference$ReferenceHandler.run() bci:46 line:116 (Interpreted frame)
0xb5256366	<StubRoutines>
0xb7866701	_ZN9JavaCalls11call_helperEP9JavaValueP12methodHandleP17JavaCallArgumentsP6Thread + 0x1c1
0xb79a1a18	_ZN2os20os_exception_wrapperEPFvP9JavaValueP12methodHandleP17JavaCallArgumentsP6ThreadES1_S3_S5_S7_ + 0x18
0xb7865fa7	_ZN9JavaCalls12call_virtualEP9JavaValue11KlassHandle12symbolHandleS3_P17JavaCallArgumentsP6Thread + 0xb7
0xb7866038	_ZN9JavaCalls12call_virtualEP9JavaValue6Handle11KlassHandle12symbolHandleS4_P6Thread + 0x58
0xb78e9118	_Z12thread_entryP10JavaThreadP6Thread + 0xa8
0xb7a496af	_ZN10JavaThread3runEv + 0x11f
0xb79a326e	_Z10java_startP6Thread + 0x14e
0x00527832	start_thread + 0xe2
Locked ownable synchronizers:
    - None
...

It is not a regression. Issue could be reproduced with JDK 6,7,8.
Comments
Maybe it is possible to print something more meaningful than question marks? Something like <kernel call>, like it is done for stub routines. Anyway, tests have to be updated. I'll file a new CR on it.
24-06-2014

We can't do much here - Linux distribution doesn't provide DSO image required to match stack trace to one of functions above.
24-06-2014

Missed entires belong to linux-gate.so, it's a pseudo DSO provided by kernel, cat /proc/self/maps 7fff5315d000-7fff5315e000 r-xp 00000000 00:00 0 [vdso] it exports 3 symbols - __kernel_vsyscall, __kernel_rt_sigreturn, __kernel_sigreturn
30-01-2014

Dmitry focusing on SA bugs only, and agreed to take that one. Taking another one in replacement
23-01-2014

I think this might be a duplicate of JDK-6651880
14-01-2014

ILW=MML=P4, Medium impact as frames are missing, medium likelihood as not all threads are impacted, low workaround effort by using SA's thread dump.
03-10-2013