comparison src/share/vm/utilities/vmError.cpp @ 2022:2d4762ec74af

7003748: Decode C stack frames when symbols are presented (PhoneHome project) Summary: Implemented in-process C native stack frame decoding when symbols are available. Reviewed-by: coleenp, never
author zgu
date Sat, 11 Dec 2010 13:20:56 -0500
parents f95d63e2154a
children 36c186bcc085
comparison
equal deleted inserted replaced
1972:f95d63e2154a 2022:2d4762ec74af
31 #include "runtime/os.hpp" 31 #include "runtime/os.hpp"
32 #include "runtime/thread.hpp" 32 #include "runtime/thread.hpp"
33 #include "runtime/vmThread.hpp" 33 #include "runtime/vmThread.hpp"
34 #include "runtime/vm_operations.hpp" 34 #include "runtime/vm_operations.hpp"
35 #include "utilities/debug.hpp" 35 #include "utilities/debug.hpp"
36 #include "utilities/decoder.hpp"
36 #include "utilities/defaultStream.hpp" 37 #include "utilities/defaultStream.hpp"
37 #include "utilities/top.hpp" 38 #include "utilities/top.hpp"
38 #include "utilities/vmError.hpp" 39 #include "utilities/vmError.hpp"
39 40
40 // List of environment variables that should be reported in error log file. 41 // List of environment variables that should be reported in error log file.
514 515
515 // see if it's a valid frame 516 // see if it's a valid frame
516 if (fr.pc()) { 517 if (fr.pc()) {
517 st->print_cr("Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)"); 518 st->print_cr("Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)");
518 519
520 // initialize decoder to decode C frames
521 Decoder decoder;
522
519 int count = 0; 523 int count = 0;
520
521 while (count++ < StackPrintLimit) { 524 while (count++ < StackPrintLimit) {
522 fr.print_on_error(st, buf, sizeof(buf)); 525 fr.print_on_error(st, buf, sizeof(buf));
523 st->cr(); 526 st->cr();
524 if (os::is_first_C_frame(&fr)) break; 527 if (os::is_first_C_frame(&fr)) break;
525 fr = os::get_sender_for_C_frame(&fr); 528 fr = os::get_sender_for_C_frame(&fr);