diff options
author | Lassi Tuura <lat@cern.ch> | 2010-04-24 19:16:09 -0700 |
---|---|---|
committer | Arun Sharma <arun@sharma-home.net> | 2010-04-24 19:16:09 -0700 |
commit | a9dce3c06e6ffcb83957e734d960505415118f00 (patch) | |
tree | 8ee730d1a61bdb843942b5efa916f9b9cfec6bb0 /include/dwarf.h | |
parent | 4c553ceb2c3fcde6248b05953abc34e162917c4a (diff) | |
download | libunwind-a9dce3c06e6ffcb83957e734d960505415118f00.tar.gz |
During the stack unwinding process, the return address points to
the instruction after the call for a normal frame. libunwind uses
IP-1 to lookup unwind information. However, this is not necessary for
interrupted frames such as signal frames (or interrupt frames) in
the kernel context.
This patch handles both cases correctly.
Based on work by Mark Wielaard <mwielaard@redhat.com>
Diffstat (limited to 'include/dwarf.h')
-rw-r--r-- | include/dwarf.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/include/dwarf.h b/include/dwarf.h index 53c803b2..5dcc6ec9 100644 --- a/include/dwarf.h +++ b/include/dwarf.h @@ -295,6 +295,7 @@ typedef struct dwarf_cursor dwarf_loc_t loc[DWARF_NUM_PRESERVED_REGS]; + unsigned int use_prev_instr :1; /* use previous (= call) or current (= signal) instruction? */ unsigned int pi_valid :1; /* is proc_info valid? */ unsigned int pi_is_dynamic :1; /* proc_info found via dynamic proc info? */ unw_proc_info_t pi; /* info about current procedure */ |