When I restricted the section where the current monitor is set to only the command handler, I missed that monitor_parse_arguments() can use it indirectly, too, when evaluating register variables. These cases get NULL now and crash (easy to reproduce with "x $pc").
This series passes the right monitor object down instead of using monitor_cur(), which fixes the crash. Kevin Wolf (3): hmp: Pass monitor to mon_get_cpu() hmp: Pass monitor to MonitorDef.get_value() hmp: Pass monitor to mon_get_cpu_env() include/monitor/hmp-target.h | 7 ++++--- monitor/monitor-internal.h | 2 +- monitor/hmp.c | 2 +- monitor/misc.c | 24 ++++++++++++------------ target/i386/monitor.c | 11 ++++++----- target/m68k/monitor.c | 2 +- target/nios2/monitor.c | 2 +- target/ppc/monitor.c | 22 +++++++++++++--------- target/riscv/monitor.c | 2 +- target/sh4/monitor.c | 2 +- target/sparc/monitor.c | 12 +++++++----- target/xtensa/monitor.c | 2 +- 12 files changed, 49 insertions(+), 41 deletions(-) -- 2.28.0