mirror of
https://github.com/tobast/libunwind-eh_elf.git
synced 2025-01-06 01:23:41 +01:00
Local resume is enabled
This commit is contained in:
parent
08d42049e2
commit
c7544f5e44
2 changed files with 6 additions and 6 deletions
|
@ -249,11 +249,7 @@ x86_64_local_addr_space_init (void)
|
|||
local_addr_space.acc.access_mem = access_mem;
|
||||
local_addr_space.acc.access_reg = access_reg;
|
||||
local_addr_space.acc.access_fpreg = access_fpreg;
|
||||
#ifdef __linux__
|
||||
local_addr_space.acc.resume = x86_64_local_resume;
|
||||
#else // __linux__
|
||||
local_addr_space.acc.resume = 0; // FIXME
|
||||
#endif // __linux__
|
||||
local_addr_space.acc.get_proc_name = get_static_proc_name;
|
||||
unw_flush_cache (&local_addr_space, 0, 0);
|
||||
|
||||
|
|
|
@ -48,6 +48,8 @@ my_rt_sigreturn (void *new_sp)
|
|||
abort ();
|
||||
}
|
||||
|
||||
#endif // __linux__
|
||||
|
||||
HIDDEN inline int
|
||||
x86_64_local_resume (unw_addr_space_t as, unw_cursor_t *cursor, void *arg)
|
||||
{
|
||||
|
@ -62,11 +64,15 @@ x86_64_local_resume (unw_addr_space_t as, unw_cursor_t *cursor, void *arg)
|
|||
|
||||
if (unlikely (c->sigcontext_format != X86_64_SCF_NONE))
|
||||
{
|
||||
#ifdef __linux__
|
||||
struct sigcontext *sc = (struct sigcontext *) c->sigcontext_addr;
|
||||
|
||||
Debug (8, "resuming at ip=%llx via sigreturn(%p)\n",
|
||||
(unsigned long long) c->dwarf.ip, sc);
|
||||
my_rt_sigreturn (sc);
|
||||
#else // __linux__
|
||||
assert(0 && "Unimplemented");
|
||||
#endif // __linux__
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -77,8 +83,6 @@ x86_64_local_resume (unw_addr_space_t as, unw_cursor_t *cursor, void *arg)
|
|||
return -UNW_EINVAL;
|
||||
}
|
||||
|
||||
#endif // __linux__
|
||||
|
||||
#endif /* !UNW_REMOTE_ONLY */
|
||||
|
||||
/* This routine is responsible for copying the register values in
|
||||
|
|
Loading…
Reference in a new issue