From 29e2f796f28cbfab66d7e7977b844adc4e659f50 Mon Sep 17 00:00:00 2001 From: Stefan Berger Date: Mon, 22 Jun 2020 22:00:38 +0000 Subject: [PATCH] [LibOS] Implement arch-specific shim_regs_get_ip() --- LibOS/shim/include/arch/x86_64/shim_tcb-arch.h | 4 ++++ LibOS/shim/src/sys/shim_clone.c | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/LibOS/shim/include/arch/x86_64/shim_tcb-arch.h b/LibOS/shim/include/arch/x86_64/shim_tcb-arch.h index 630eceb3..17acc31b 100644 --- a/LibOS/shim/include/arch/x86_64/shim_tcb-arch.h +++ b/LibOS/shim/include/arch/x86_64/shim_tcb-arch.h @@ -34,6 +34,10 @@ static inline void shim_regs_set_sp(struct shim_regs* sr, uint64_t sp) { sr->rsp = sp; } +static inline uint64_t shim_regs_get_ip(struct shim_regs* sr) { + return sr->rip; +} + static inline uint64_t shim_regs_get_syscallnr(struct shim_regs* sr) { return sr->orig_rax; } diff --git a/LibOS/shim/src/sys/shim_clone.c b/LibOS/shim/src/sys/shim_clone.c index 13246b79..7564b1b7 100644 --- a/LibOS/shim/src/sys/shim_clone.c +++ b/LibOS/shim/src/sys/shim_clone.c @@ -131,7 +131,7 @@ static int clone_implementation_wrapper(struct shim_clone_args * arg) //user_stack_addr[1] ==> arguments to user provided function. debug("child swapping stack to %p return 0x%lx: %d\n", - stack, regs.rip, my_thread->tid); + stack, shim_regs_get_ip(®s), my_thread->tid); tcb->context.regs = ®s; fixup_child_context(tcb->context.regs);