mirror of
https://github.com/tobast/libunwind-eh_elf.git
synced 2025-01-11 11:33:43 +01:00
(unw_is_signal_frame): Need to (re-)create state record before we can check
IA64_FLAG_SIGTRAMP. (Logical change 1.18)
This commit is contained in:
parent
83da1e6ac1
commit
118746f9e5
1 changed files with 10 additions and 1 deletions
|
@ -27,6 +27,15 @@ int
|
||||||
unw_is_signal_frame (unw_cursor_t *cursor)
|
unw_is_signal_frame (unw_cursor_t *cursor)
|
||||||
{
|
{
|
||||||
struct ia64_cursor *c = (struct ia64_cursor *) cursor;
|
struct ia64_cursor *c = (struct ia64_cursor *) cursor;
|
||||||
|
struct ia64_state_record sr;
|
||||||
|
int ret;
|
||||||
|
|
||||||
return (c->flags & IA64_FLAG_SIGTRAMP) != 0;
|
/* Crude and slow, but we need to peek ahead into the unwind
|
||||||
|
descriptors to find out if the current IP is inside the signal
|
||||||
|
trampoline. */
|
||||||
|
ret = ia64_create_state_record (c, &sr);
|
||||||
|
if (ret < 0)
|
||||||
|
return ret;
|
||||||
|
|
||||||
|
return (c->pi.flags & IA64_FLAG_SIGTRAMP) != 0;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue