summary refs log tree commit diff stats
path: root/gitlab/issues/target_missing/host_missing/accel_TCG/1184.toml
diff options
context:
space:
mode:
Diffstat (limited to 'gitlab/issues/target_missing/host_missing/accel_TCG/1184.toml')
-rw-r--r--gitlab/issues/target_missing/host_missing/accel_TCG/1184.toml77
1 files changed, 0 insertions, 77 deletions
diff --git a/gitlab/issues/target_missing/host_missing/accel_TCG/1184.toml b/gitlab/issues/target_missing/host_missing/accel_TCG/1184.toml
deleted file mode 100644
index f9d6e24eb..000000000
--- a/gitlab/issues/target_missing/host_missing/accel_TCG/1184.toml
+++ /dev/null
@@ -1,77 +0,0 @@
-id = 1184
-title = "Extra SIGTRAP when breakpoint + watchpoint occur on same instruction"
-state = "opened"
-created_at = "2022-08-31T18:52:40.414Z"
-closed_at = "n/a"
-labels = ["GDB", "accel: TCG"]
-url = "https://gitlab.com/qemu-project/qemu/-/issues/1184"
-host-os = "Ubuntu 18"
-host-arch = "x86, but likely platform-agnostic"
-qemu-version = "7.1.0"
-guest-os = "x86 multiboot stub"
-guest-arch = "x86, but likely platform-agnostic"
-description = """If a breakpoint and watchpoint occur on the same instruction in TCG, gdb receives a breakpoint notification, a watchpoint notification, and then a SIGTRAP not corresponding to any set breakpoint/watchpoint."""
-reproduce = """Start QEMU via:
-
-```
-./qemu-system-i386 -display none -accel tcg -kernel kernel.elf -s -S
-```
-
-Here's the gdb session:
-
-```
-(gdb) file kernel.elf
-Reading symbols from kernel.elf...done.
-(gdb) tar rem :1234
-Remote debugging using :1234
-0x0000fff0 in ?? ()
-(gdb) b _start
-Breakpoint 1 at 0x10000c: file kernel.s, line 17.
-(gdb) c
-Continuing.
-
-Breakpoint 1, _start () at kernel.s:17
-17          mov eax, 3
-(gdb) b bp
-Breakpoint 2 at 0x100011: file kernel.s, line 20.
-(gdb) watch *(int*)&value
-Hardware watchpoint 3: *(int*)&value
-(gdb) c
-Continuing.
-
-Breakpoint 2, bp () at kernel.s:20
-20          mov dword ptr value, eax
-(gdb) c
-Continuing.
-
-Hardware watchpoint 3: *(int*)&value
-
-Old value = 0
-New value = 3
-done () at kernel.s:23
-23          jmp done
-(gdb) c
-Continuing.
-
-Program received signal SIGTRAP, Trace/breakpoint trap.
-done () at kernel.s:23
-23          jmp done
-```"""
-additional = """This patch fixes it by disabling the extra debug interrupt if the CPU is already singlestepping, but I'm not certain it's the 'correct' fix?
-
-```patch
---- a/softmmu/physmem.c
-+++ b/softmmu/physmem.c
-@@ -894,7 +894,9 @@ void cpu_check_watchpoint(CPUState *cpu, vaddr addr, vaddr len,
-          * trigger after the current instruction.
-          */
-         qemu_mutex_lock_iothread();
--        cpu_interrupt(cpu, CPU_INTERRUPT_DEBUG);
-+        if ((cpu->singlestep_enabled & SSTEP_NOIRQ) == 0) {
-+            cpu_interrupt(cpu, CPU_INTERRUPT_DEBUG);
-+        }
-         qemu_mutex_unlock_iothread();
-         return;
-     }
-
-```"""