From 57f1f82d761e38ff1177edb4d7fcb6c86f367cac Mon Sep 17 00:00:00 2001 From: ptitSeb Date: Sat, 25 Jun 2022 13:51:53 +0200 Subject: [DYNAREC] Added CPU Dump on Signal to help debugging (only if signal inside a DynaBlock for now) --- src/libtools/signals.c | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'src/libtools') diff --git a/src/libtools/signals.c b/src/libtools/signals.c index 92f973b4..744a9a6e 100755 --- a/src/libtools/signals.c +++ b/src/libtools/signals.c @@ -998,6 +998,16 @@ exit(-1); getAddrFunctionName((uintptr_t)(db?db->x64_addr:0)), (db?db->need_test:0)?"need_stest":"clean", db?db->hash:0, hash, (void*)my_context->signals[sig]); +#if defined(ARM64) + static const char* reg_name[] = {"RAX", "RCX", "RDX", "RBX", "RSP", "RBP", "RSI", "RDI", " R8", " R9","R10","R11", "R12","R13","R14","R15"}; + if(db) + for (int i=0; i<16; ++i) { + if(!(i%4)) printf_log(log_minimum, "\n"); + printf_log(log_minimum, "%s:0x%016lx ", reg_name[i], p->uc_mcontext.regs[10+i]); + } +#else + #warning TODO +#endif #else printf_log(log_minimum, "%04d|%s @%p (%s) (x64pc=%p/%s:\"%s\", rsp=%p), for accessing %p (code=%d)", GetTID(), signame, pc, name, (void*)x64pc, elfname?elfname:"???", x64name?x64name:"???", rsp, addr, info->si_code); #endif -- cgit 1.4.1