7003748: Decode C stack frames when symbols are presented (PhoneHome project)

Implemented in-process C native stack frame decoding when symbols are available.

Reviewed-by: coleenp, never
This commit is contained in:
Zhengyu Gu 2010-12-11 13:20:56 -05:00
parent 8006fe8f75
commit 61a4658b22
17 changed files with 1177 additions and 34 deletions

View file

@ -41,6 +41,8 @@
#include "runtime/signature.hpp"
#include "runtime/stubCodeGenerator.hpp"
#include "runtime/stubRoutines.hpp"
#include "utilities/decoder.hpp"
#ifdef TARGET_ARCH_x86
# include "nativeInst_x86.hpp"
#endif
@ -652,7 +654,7 @@ static void print_C_frame(outputStream* st, char* buf, int buflen, address pc) {
// names if pc is within jvm.dll or libjvm.so, because JVM only has
// JVM_xxxx and a few other symbols in the dynamic symbol table. Do this
// only for native libraries.
if (!in_vm) {
if (!in_vm || Decoder::can_decode_C_frame_in_vm()) {
found = os::dll_address_to_function_name(pc, buf, buflen, &offset);
if (found) {