Mercurial > hg > truffle
comparison src/share/vm/utilities/vmError.cpp @ 14726:92aa6797d639
Backed out merge changeset: b51e29501f30
Backed out merge revision to its first parent (8f483e200405)
author | Doug Simon <doug.simon@oracle.com> |
---|---|
date | Mon, 24 Mar 2014 21:30:43 +0100 |
parents | b51e29501f30 |
children |
comparison
equal
deleted
inserted
replaced
14719:0bdd0d157040 | 14726:92aa6797d639 |
---|---|
590 while (count++ < StackPrintLimit) { | 590 while (count++ < StackPrintLimit) { |
591 fr.print_on_error(st, buf, sizeof(buf)); | 591 fr.print_on_error(st, buf, sizeof(buf)); |
592 st->cr(); | 592 st->cr(); |
593 // Compiled code may use EBP register on x86 so it looks like | 593 // Compiled code may use EBP register on x86 so it looks like |
594 // non-walkable C frame. Use frame.sender() for java frames. | 594 // non-walkable C frame. Use frame.sender() for java frames. |
595 if (_thread && _thread->is_Java_thread()) { | 595 if (_thread && _thread->is_Java_thread() && fr.is_java_frame()) { |
596 // Catch very first native frame by using stack address. | 596 RegisterMap map((JavaThread*)_thread, false); // No update |
597 // For JavaThread stack_base and stack_size should be set. | 597 fr = fr.sender(&map); |
598 if (!_thread->on_local_stack((address)(fr.sender_sp() + 1))) { | 598 continue; |
599 break; | |
600 } | |
601 if (fr.is_java_frame()) { | |
602 RegisterMap map((JavaThread*)_thread, false); // No update | |
603 fr = fr.sender(&map); | |
604 } else { | |
605 fr = os::get_sender_for_C_frame(&fr); | |
606 } | |
607 } else { | |
608 // is_first_C_frame() does only simple checks for frame pointer, | |
609 // it will pass if java compiled code has a pointer in EBP. | |
610 if (os::is_first_C_frame(&fr)) break; | |
611 fr = os::get_sender_for_C_frame(&fr); | |
612 } | 599 } |
600 if (os::is_first_C_frame(&fr)) break; | |
601 fr = os::get_sender_for_C_frame(&fr); | |
613 } | 602 } |
614 | 603 |
615 if (count > StackPrintLimit) { | 604 if (count > StackPrintLimit) { |
616 st->print_cr("...<more frames>..."); | 605 st->print_cr("...<more frames>..."); |
617 } | 606 } |