mirror of
https://github.com/mborgerson/xemu.git
synced 2025-12-01 16:10:01 +00:00
gdbstub: move guest debug support check to ops
This removes the final hard coding of kvm_enabled() in gdbstub and moves the check to an AccelOps. Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Signed-off-by: Alex Bennée <alex.bennee@linaro.org> Reviewed-by: Mads Ynddal <mads@ynddal.dk> Message-Id: <20220929114231.583801-46-alex.bennee@linaro.org>
This commit is contained in:
@ -45,7 +45,6 @@
|
||||
|
||||
#include "qemu/sockets.h"
|
||||
#include "sysemu/hw_accel.h"
|
||||
#include "sysemu/kvm.h"
|
||||
#include "sysemu/runstate.h"
|
||||
#include "semihosting/semihost.h"
|
||||
#include "exec/exec-all.h"
|
||||
@ -3447,8 +3446,8 @@ int gdbserver_start(const char *device)
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (kvm_enabled() && !kvm_supports_guest_debug()) {
|
||||
error_report("gdbstub: KVM doesn't support guest debugging");
|
||||
if (!gdb_supports_guest_debug()) {
|
||||
error_report("gdbstub: current accelerator doesn't support guest debugging");
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
||||
@ -9,6 +9,7 @@
|
||||
#ifndef _INTERNALS_H_
|
||||
#define _INTERNALS_H_
|
||||
|
||||
bool gdb_supports_guest_debug(void);
|
||||
int gdb_breakpoint_insert(CPUState *cs, int type, hwaddr addr, hwaddr len);
|
||||
int gdb_breakpoint_remove(CPUState *cs, int type, hwaddr addr, hwaddr len);
|
||||
void gdb_breakpoint_remove_all(CPUState *cs);
|
||||
|
||||
@ -15,6 +15,15 @@
|
||||
#include "sysemu/cpus.h"
|
||||
#include "internals.h"
|
||||
|
||||
bool gdb_supports_guest_debug(void)
|
||||
{
|
||||
const AccelOpsClass *ops = cpus_get_accel();
|
||||
if (ops->supports_guest_debug) {
|
||||
return ops->supports_guest_debug();
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
int gdb_breakpoint_insert(CPUState *cs, int type, hwaddr addr, hwaddr len)
|
||||
{
|
||||
const AccelOpsClass *ops = cpus_get_accel();
|
||||
|
||||
@ -14,6 +14,12 @@
|
||||
#include "hw/core/cpu.h"
|
||||
#include "internals.h"
|
||||
|
||||
bool gdb_supports_guest_debug(void)
|
||||
{
|
||||
/* user-mode == TCG == supported */
|
||||
return true;
|
||||
}
|
||||
|
||||
int gdb_breakpoint_insert(CPUState *cs, int type, hwaddr addr, hwaddr len)
|
||||
{
|
||||
CPUState *cpu;
|
||||
|
||||
Reference in New Issue
Block a user