linux-user: Add guest memory layout to exception dump
commitbd5ccd61080abf976a6a6cc2d09d31299bea0cee
authorHelge Deller <deller@gmx.de>
Mon, 24 Oct 2022 20:18:09 +0000 (24 22:18 +0200)
committerLaurent Vivier <laurent@vivier.eu>
Tue, 25 Oct 2022 07:20:40 +0000 (25 09:20 +0200)
tree3fce456ccb09b725ad1b32d7bfd7ab99a3529f0a
parent35a2c85f7d691db7aa2c47181902ac87478eef7a
linux-user: Add guest memory layout to exception dump

When the emulation stops with a hard exception it's very useful for
debugging purposes to dump the current guest memory layout (for an
example see /proc/self/maps) beside the CPU registers.

The open_self_maps() function provides such a memory dump, but since
it's located in the syscall.c file, various changes (add #includes, make
this function externally visible, ...) are needed to be able to call it
from the existing EXCP_DUMP() macro.

This patch takes another approach by re-defining EXCP_DUMP() to call
target_exception_dump(), which is in syscall.c, consolidates the log
print functions and allows to add the call to dump the memory layout.

Beside a reduced code footprint, this approach keeps the changes across
the various callers minimal, and keeps EXCP_DUMP() highlighted as
important macro/function.

Signed-off-by: Helge Deller <deller@gmx.de>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <Y1bzAWbw07WBKPxw@p100>
[lv: remove pc declaration and setting]
Signed-off-by: Laurent Vivier <laurent@vivier.eu>
linux-user/cpu_loop-common.h
linux-user/i386/cpu_loop.c
linux-user/syscall.c