added support to dump registers on crash on Linux x32

This commit is contained in:
antirez 2012-01-20 14:37:50 +01:00
parent eea8c7a4f8
commit 632da60583

View File

@ -496,7 +496,30 @@ void logRegisters(ucontext_t *uc) {
logStackContent((void**)uc->uc_mcontext->__ss.__esp);
#endif
#elif defined(__i386__)
return (void*) uc->uc_mcontext.gregs[14]; /* Linux 32 */
redisLog(REDIS_WARNING,
"\n"
"EAX:%p EBX:%p ECX:%p EDX:%p\n"
"EDI:%p ESI:%p EBP:%p ESP:%p\n"
"SS:%p EFL:%p EIP:%p CS:%p\n"
"DS:%p ES:%p FS:%p GS:%p",
uc->uc_mcontext.gregs[11],
uc->uc_mcontext.gregs[8],
uc->uc_mcontext.gregs[10],
uc->uc_mcontext.gregs[9],
uc->uc_mcontext.gregs[4],
uc->uc_mcontext.gregs[5],
uc->uc_mcontext.gregs[6],
uc->uc_mcontext.gregs[7],
uc->uc_mcontext.gregs[18],
uc->uc_mcontext.gregs[17],
uc->uc_mcontext.gregs[14],
uc->uc_mcontext.gregs[15],
uc->uc_mcontext.gregs[3],
uc->uc_mcontext.gregs[2],
uc->uc_mcontext.gregs[1],
uc->uc_mcontext.gregs[0]
);
logStackContent((void**)uc->uc_mcontext.gregs[7]);
#elif defined(__X86_64__) || defined(__x86_64__)
redisLog(REDIS_WARNING,
"\n"