diff options
author | Mark Wielaard <mjw@redhat.com> | 2009-05-20 15:24:02 +0200 |
---|---|---|
committer | Mark Wielaard <mjw@redhat.com> | 2009-05-20 15:24:02 +0200 |
commit | 4285dc9a58fbdae1516c4117a3f9297b822f27ff (patch) | |
tree | dad37f2df6e827565ceb80aadb98426d5b22e817 /runtime/sym.h | |
parent | 78c9d72e18da2d5c930fb39460c236ea24fee423 (diff) | |
download | systemtap-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.h | 8 |
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; |