-
Bug
-
Resolution: Fixed
-
P2
-
hs25
-
b48
-
x86
-
linux
-
Not verified
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8024216 | 8 | Harold Seigel | P2 | Closed | Fixed | b106 |
JDK-8312153 | 7u401 | Daniel Skantz | P2 | Closed | Fixed | b03 |
From:
http://gcc.gnu.org/onlinedocs/gcc-4.6.4/gcc/Optimize-Options.html#index-fomit_002dframe_002dpointer-692
Starting with GCC version 4.6, the default setting (when not optimizing for size) for 32-bit Linux x86 and 32-bit Darwin x86 targets has been changed to -fomit-frame-pointer. The default can be reverted to -fno-omit-frame-pointer by configuring GCC with the --enable-frame-pointer configure option.
---
If you build hotspot with gcc 4.6+ stack walking is broken. This is mostly easily seen by enabling Native Memory Tracking. Even "java -XX:NativeMemoryTracking=detail -version" crashes
#37 <signal handler called>
#38 0xf6d4054c in os::is_first_C_frame(frame*) ()
from /export/users/dh198349/hotspot-testing/images/j2sdk-image/jre/lib/i386/server/libjvm.so
#39 0xf6d4e568 in os::current_frame() ()
from /export/users/dh198349/hotspot-testing/images/j2sdk-image/jre/lib/i386/server/libjvm.so
#40 0xf6d51acf in os::get_caller_pc(int) ()
from /export/users/dh198349/hotspot-testing/images/j2sdk-image/jre/lib/i386/server/libjvm.so
#41 0xf6a47141 in CHeapObj<(unsigned short)1792>::operator new(unsigned int, unsigned char*) [clone .constprop.92] ()
from /export/users/dh198349/hotspot-testing/images/j2sdk-image/jre/lib/i386/server/libjvm.so
#42 0xf6a47272 in Events::init() ()
from /export/users/dh198349/hotspot-testing/images/j2sdk-image/jre/lib/i386/server/libjvm.so
#43 0xf6ae176f in vm_init_globals() ()
from /export/users/dh198349/hotspot-testing/images/j2sdk-image/jre/lib/i386/server/libjvm.so
#44 0xf6e79a2c in Threads::create_vm(JavaVMInitArgs*, bool*) ()
from /export/users/dh198349/hotspot-testing/images/j2sdk-image/jre/lib/i386/server/libjvm.so
#45 0xf6b613b5 in JNI_CreateJavaVM ()
Debug build shows an assertion failure for a null PC.
Hotspot relies on the frame pointer being present so we will need to explicitly enable it.
http://gcc.gnu.org/onlinedocs/gcc-4.6.4/gcc/Optimize-Options.html#index-fomit_002dframe_002dpointer-692
Starting with GCC version 4.6, the default setting (when not optimizing for size) for 32-bit Linux x86 and 32-bit Darwin x86 targets has been changed to -fomit-frame-pointer. The default can be reverted to -fno-omit-frame-pointer by configuring GCC with the --enable-frame-pointer configure option.
---
If you build hotspot with gcc 4.6+ stack walking is broken. This is mostly easily seen by enabling Native Memory Tracking. Even "java -XX:NativeMemoryTracking=detail -version" crashes
#37 <signal handler called>
#38 0xf6d4054c in os::is_first_C_frame(frame*) ()
from /export/users/dh198349/hotspot-testing/images/j2sdk-image/jre/lib/i386/server/libjvm.so
#39 0xf6d4e568 in os::current_frame() ()
from /export/users/dh198349/hotspot-testing/images/j2sdk-image/jre/lib/i386/server/libjvm.so
#40 0xf6d51acf in os::get_caller_pc(int) ()
from /export/users/dh198349/hotspot-testing/images/j2sdk-image/jre/lib/i386/server/libjvm.so
#41 0xf6a47141 in CHeapObj<(unsigned short)1792>::operator new(unsigned int, unsigned char*) [clone .constprop.92] ()
from /export/users/dh198349/hotspot-testing/images/j2sdk-image/jre/lib/i386/server/libjvm.so
#42 0xf6a47272 in Events::init() ()
from /export/users/dh198349/hotspot-testing/images/j2sdk-image/jre/lib/i386/server/libjvm.so
#43 0xf6ae176f in vm_init_globals() ()
from /export/users/dh198349/hotspot-testing/images/j2sdk-image/jre/lib/i386/server/libjvm.so
#44 0xf6e79a2c in Threads::create_vm(JavaVMInitArgs*, bool*) ()
from /export/users/dh198349/hotspot-testing/images/j2sdk-image/jre/lib/i386/server/libjvm.so
#45 0xf6b613b5 in JNI_CreateJavaVM ()
Debug build shows an assertion failure for a null PC.
Hotspot relies on the frame pointer being present so we will need to explicitly enable it.
- backported by
-
JDK-8024216 GCC 4.6 changes default setting for omit-frame-pointer which breaks hotspot stack walking
-
- Closed
-
-
JDK-8312153 GCC 4.6 changes default setting for omit-frame-pointer which breaks hotspot stack walking
-
- Closed
-
- relates to
-
JDK-8234624 jstack mixed mode should refer DWARF
-
- Resolved
-
-
JDK-8032524 Revisit the use of gcc option -fno-omit-frame-pointer
-
- Closed
-