hotspot/src/share/vm/utilities/vmError.cpp
changeset 19334 3aa9ca404965
parent 18684 79e53d93bc13
child 19952 bc974e92f881
equal deleted inserted replaced
19333:217b3e5dbfde 19334:3aa9ca404965
   584 
   584 
   585           int count = 0;
   585           int count = 0;
   586           while (count++ < StackPrintLimit) {
   586           while (count++ < StackPrintLimit) {
   587              fr.print_on_error(st, buf, sizeof(buf));
   587              fr.print_on_error(st, buf, sizeof(buf));
   588              st->cr();
   588              st->cr();
       
   589              // Compiled code may use EBP register on x86 so it looks like
       
   590              // non-walkable C frame. Use frame.sender() for java frames.
       
   591              if (_thread && _thread->is_Java_thread() && fr.is_java_frame()) {
       
   592                RegisterMap map((JavaThread*)_thread, false); // No update
       
   593                fr = fr.sender(&map);
       
   594                continue;
       
   595              }
   589              if (os::is_first_C_frame(&fr)) break;
   596              if (os::is_first_C_frame(&fr)) break;
   590              fr = os::get_sender_for_C_frame(&fr);
   597              fr = os::get_sender_for_C_frame(&fr);
   591           }
   598           }
   592 
   599 
   593           if (count > StackPrintLimit) {
   600           if (count > StackPrintLimit) {