diff --git a/framework/context.h b/framework/context.h index 7dc151b..e07211f 100644 --- a/framework/context.h +++ b/framework/context.h @@ -24,7 +24,6 @@ typedef struct __pst_context { sp = 0; cfa = 0; curr_frame = NULL; - next_frame = NULL; frame = NULL; dwfl = NULL; module = NULL; @@ -48,11 +47,11 @@ typedef struct __pst_context { unw_context_t context; // context of stack trace unw_cursor_t cursor; unw_cursor_t* curr_frame; // callee libunwind frame - unw_cursor_t* next_frame; // caller libunwind frame Dwarf_Addr base_addr; // base address where process loaded - Dwarf_Addr sp; - Dwarf_Addr cfa; + Dwarf_Addr sp; // stack pointer of currently processed stack frame + Dwarf_Addr cfa; // CFA (Canonical Frame Address) of currently processed stack + Dwarf_Frame* frame; // currently examined libdwfl frame Dwfl* dwfl; // DWARF context Dwfl_Module* module; // currently processed CU diff --git a/framework/sysutils.cpp b/framework/sysutils.cpp index db2764f..02ddcad 100644 --- a/framework/sysutils.cpp +++ b/framework/sysutils.cpp @@ -1092,19 +1092,9 @@ bool __pst_handler::handle_dwarf() ctx.log(SEVERITY_INFO, "Function %s(...): module name: %s, base address: %p, CFA: %#lX", fun->name.c_str(), info.dli_fname, info.dli_fbase, fun->parent ? fun->parent->sp : 0); ctx.curr_frame = &fun->cursor; ctx.sp = fun->sp; - //ctx.cfa = fun->parent ? fun->parent->sp : 0; - if(fun->parent) { - ctx.next_frame = &fun->parent->cursor; - } else { - ctx.next_frame = 0; - } ctx.cfa = fun->cfa; ctx.curr_frame = &fun->cursor; - ctx.next_frame = NULL; - if(fun->parent) { - ctx.next_frame = &fun->parent->cursor; - } get_dwarf_function(fun); }