Mercurial > hg > graal-compiler
comparison src/share/vm/utilities/vmError.cpp @ 12355:cefad50507d8
Merge with hs25-b53
author | Gilles Duboscq <duboscq@ssw.jku.at> |
---|---|
date | Fri, 11 Oct 2013 10:38:03 +0200 |
parents | 6b0fd0964b87 38f750491293 |
children | 096c224171c4 |
comparison
equal
deleted
inserted
replaced
12058:ccb4f2af2319 | 12355:cefad50507d8 |
---|---|
572 } | 572 } |
573 | 573 |
574 STEP(120, "(printing native stack)" ) | 574 STEP(120, "(printing native stack)" ) |
575 | 575 |
576 if (_verbose) { | 576 if (_verbose) { |
577 if (os::platform_print_native_stack(st, _context, buf, sizeof(buf))) { | |
578 // We have printed the native stack in platform-specific code | |
579 // Windows/x64 needs special handling. | |
580 } else { | |
577 frame fr = _context ? os::fetch_frame_from_context(_context) | 581 frame fr = _context ? os::fetch_frame_from_context(_context) |
578 : os::current_frame(); | 582 : os::current_frame(); |
579 | 583 |
580 // see if it's a valid frame | 584 // see if it's a valid frame |
581 if (fr.pc()) { | 585 if (fr.pc()) { |
584 | 588 |
585 int count = 0; | 589 int count = 0; |
586 while (count++ < StackPrintLimit) { | 590 while (count++ < StackPrintLimit) { |
587 fr.print_on_error(st, buf, sizeof(buf)); | 591 fr.print_on_error(st, buf, sizeof(buf)); |
588 st->cr(); | 592 st->cr(); |
593 // Compiled code may use EBP register on x86 so it looks like | |
594 // non-walkable C frame. Use frame.sender() for java frames. | |
595 if (_thread && _thread->is_Java_thread() && fr.is_java_frame()) { | |
596 RegisterMap map((JavaThread*)_thread, false); // No update | |
597 fr = fr.sender(&map); | |
598 continue; | |
599 } | |
589 if (os::is_first_C_frame(&fr)) break; | 600 if (os::is_first_C_frame(&fr)) break; |
590 fr = os::get_sender_for_C_frame(&fr); | 601 fr = os::get_sender_for_C_frame(&fr); |
591 } | 602 } |
592 | 603 |
593 if (count > StackPrintLimit) { | 604 if (count > StackPrintLimit) { |
595 } | 606 } |
596 | 607 |
597 st->cr(); | 608 st->cr(); |
598 } | 609 } |
599 } | 610 } |
611 } | |
600 | 612 |
601 STEP(130, "(printing Java stack)" ) | 613 STEP(130, "(printing Java stack)" ) |
602 | 614 |
603 if (_verbose && _thread && _thread->is_Java_thread()) { | 615 if (_verbose && _thread && _thread->is_Java_thread()) { |
604 print_stack_trace(st, (JavaThread*)_thread, buf, sizeof(buf)); | 616 print_stack_trace(st, (JavaThread*)_thread, buf, sizeof(buf)); |