summaryrefslogtreecommitdiff
path: root/gdbstub.c
diff options
context:
space:
mode:
authorIvan Shcherbakov <ivan@sysprogs.com>2022-03-02 17:28:33 -0800
committerPaolo Bonzini <pbonzini@redhat.com>2022-04-06 14:31:55 +0200
commitd7482ffe9756919531307330fd1c6dbec66e8c32 (patch)
tree96388804c4a7aa891af8f29110c132538babdfb2 /gdbstub.c
parent9d734b85ed8d89bb9ab8c456b4df23dedf8dbf76 (diff)
whpx: Added support for breakpoints and stepping
Below is the updated version of the patch adding debugging support to WHPX. It incorporates feedback from Alex Bennée and Peter Maydell regarding not changing the emulation logic depending on the gdb connection status. Instead of checking for an active gdb connection to determine whether QEMU should intercept the INT1 exceptions, it now checks whether any breakpoints have been set, or whether gdb has explicitly requested one or more CPUs to do single-stepping. Having none of these condition present now has the same effect as not using gdb at all. Message-Id: <0e7f01d82e9e$00e9c360$02bd4a20$@sysprogs.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'gdbstub.c')
-rw-r--r--gdbstub.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/gdbstub.c b/gdbstub.c
index 2c804d5066..a3ff8702ce 100644
--- a/gdbstub.c
+++ b/gdbstub.c
@@ -518,7 +518,15 @@ static int gdb_continue_partial(char *newstates)
int flag = 0;
if (!runstate_needs_reset()) {
- if (vm_prepare_start()) {
+ bool step_requested = false;
+ CPU_FOREACH(cpu) {
+ if (newstates[cpu->cpu_index] == 's') {
+ step_requested = true;
+ break;
+ }
+ }
+
+ if (vm_prepare_start(step_requested)) {
return 0;
}