< prev index next >

src/os/posix/vm/os_posix.cpp

Print this page

        

@@ -79,10 +79,11 @@
   toSkip++;
 #endif
 
   int frame_idx = 0;
   int num_of_frames;  // number of frames captured
+  Thread* thread = Thread::current();
   frame fr = os::current_frame();
   while (fr.pc() && frame_idx < frames) {
     if (toSkip > 0) {
       toSkip --;
     } else {

@@ -90,11 +91,11 @@
     }
     if (fr.fp() == NULL || os::is_first_C_frame(&fr)
         ||fr.sender_pc() == NULL || fr.cb() != NULL) break;
 
     if (fr.sender_pc() && !os::is_first_C_frame(&fr)) {
-      fr = os::get_sender_for_C_frame(&fr);
+      fr = os::get_sender_for_C_frame(thread, &fr);
     } else {
       break;
     }
   }
   num_of_frames = frame_idx;
< prev index next >