summaryrefslogtreecommitdiffstats
path: root/runtime/sym.h
diff options
context:
space:
mode:
authorMark Wielaard <mjw@redhat.com>2009-05-20 15:24:02 +0200
committerMark Wielaard <mjw@redhat.com>2009-05-20 15:24:02 +0200
commit4285dc9a58fbdae1516c4117a3f9297b822f27ff (patch)
treedad37f2df6e827565ceb80aadb98426d5b22e817 /runtime/sym.h
parent78c9d72e18da2d5c930fb39460c236ea24fee423 (diff)
downloadsystemtap-steved-4285dc9a58fbdae1516c4117a3f9297b822f27ff.tar.gz
systemtap-steved-4285dc9a58fbdae1516c4117a3f9297b822f27ff.tar.xz
systemtap-steved-4285dc9a58fbdae1516c4117a3f9297b822f27ff.zip
Fetch and store both debug_frame and eh_frame tables.
* runtime/sym.h (_stp_module): Remove unwind_data, unwind_data_len and unwind_is_ehframe fields. Add debug_frame, eh_frame, debug_frame_len, eh_frame_len and eh_frame_addr fields. * runtime/unwind.c: Use debug_frame and debug_frame_len instead of unwind_data and unwind_data_len throughout. (cie_for_fde): Take unwind_data and is_ehframe as direct arguments. * runtime/unwind/unwind.h (cie_for_fde): New function declaration. * translate.cxx (get_unwind_data): Fetch and return both debug_frame and eh_frame tables. (dump_unwindsyms): Dump both debug_frame and eh_frame tables.
Diffstat (limited to 'runtime/sym.h')
-rw-r--r--runtime/sym.h8
1 files changed, 5 insertions, 3 deletions
diff --git a/runtime/sym.h b/runtime/sym.h
index 80c334fb..7e28ebe6 100644
--- a/runtime/sym.h
+++ b/runtime/sym.h
@@ -42,11 +42,13 @@ struct _stp_module {
unsigned long dwarf_module_base;
/* the stack unwind data for this module */
- void *unwind_data;
+ void *debug_frame;
+ void *eh_frame;
void *unwind_hdr;
- uint32_t unwind_data_len;
+ uint32_t debug_frame_len;
+ uint32_t eh_frame_len;
uint32_t unwind_hdr_len;
- uint32_t unwind_is_ehframe; /* unwind data comes from .eh_frame */
+ unsigned long eh_frame_addr; /* Orig load address (offset) .eh_frame */
/* build-id information */
unsigned char *build_id_bits;
unsigned long build_id_offset;