[aarch64-port-dev ] Unwind native AArch64 frames.

Andrew Haley aph at redhat.com
Thu Aug 21 16:01:18 UTC 2014


We currently crash when printing a HotSpot error log because the unwind
code for native frames is wrong.  Fixed thusly.

Andrew.


comparing with ssh://hg.openjdk.java.net/aarch64-port/jdk9/hotspot
searching for changes
remote: X11 forwarding request failed on channel 0
changeset:   6875:16078783ccb8
user:        aph
date:        Thu Aug 21 11:56:52 2014 -0400
summary:     Unwind native AArch64 frames.

diff -r 46470beedaae -r 16078783ccb8 src/os_cpu/linux_aarch64/vm/os_linux_aarch64.cpp
--- a/src/os_cpu/linux_aarch64/vm/os_linux_aarch64.cpp  Wed Aug 20 11:35:57 2014 -0400
+++ b/src/os_cpu/linux_aarch64/vm/os_linux_aarch64.cpp  Thu Aug 21 11:56:52 2014 -0400
@@ -173,10 +173,14 @@
   return frame(sp, fp, epc.pc());
 }

-// By default, gcc always save frame pointer (%ebp/%rbp) on stack. It may get
-// turned off by -fomit-frame-pointer,
+// By default, gcc always saves frame pointer rfp on this stack. This
+// may get turned off by -fomit-frame-pointer.
 frame os::get_sender_for_C_frame(frame* fr) {
+#ifdef BUILTIN_SIM
   return frame(fr->sender_sp(), fr->link(), fr->sender_pc());
+#else
+  return frame(fr->link(), fr->link(), fr->sender_pc());
+#endif
 }

 intptr_t* _get_previous_fp() {



More information about the aarch64-port-dev mailing list