x86: 0.935 debug: 0.887 architecture: 0.843 files: 0.829 ppc: 0.801 PID: 0.792 permissions: 0.779 device: 0.758 user-level: 0.722 i386: 0.717 hypervisor: 0.703 graphic: 0.694 kernel: 0.682 semantic: 0.655 arm: 0.634 performance: 0.632 network: 0.612 socket: 0.605 peripherals: 0.576 KVM: 0.556 TCG: 0.549 VMM: 0.538 risc-v: 0.520 vnc: 0.519 assembly: 0.481 boot: 0.470 mistranslation: 0.433 register: 0.396 virtual: 0.353 -------------------- debug: 0.987 x86: 0.987 performance: 0.703 files: 0.052 user-level: 0.052 PID: 0.050 TCG: 0.048 virtual: 0.041 register: 0.026 hypervisor: 0.023 kernel: 0.018 architecture: 0.016 assembly: 0.014 boot: 0.011 semantic: 0.010 permissions: 0.009 device: 0.008 graphic: 0.004 peripherals: 0.003 ppc: 0.003 network: 0.003 mistranslation: 0.002 VMM: 0.001 socket: 0.001 risc-v: 0.001 KVM: 0.001 vnc: 0.001 arm: 0.000 i386: 0.000 qemu-system-x86_64: stuck on watchpoint hit Description of problem: Steps to reproduce: 1. `gcc -O0 -g watch-bug.c -o watch-bug` 2. `gdb watch-bug` 3. gdb commands: ``` b main r watch l1 next [ correct stop on the next line ] next [ qemu is stuck as watchpoint should be hit ] ``` Additional information: * NOTE: it works correctly, if 'continue' command is used instead of 'next' `watch-bug.c` ```c int i0; long l1; int main(int argc, char* argv[]) { i0 = argc; l1 = i0 * 7; return 0; } ``` Log: ```c Log: root@qemux86-64:~# gdb watch-bug GNU gdb (GDB) 13.2 Copyright (C) 2023 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "x86_64-poky-linux". Type "show configuration" for configuration details. For bug reporting instructions, please see: . Find the GDB manual and other documentation resources online at: . For help, type "help". Type "apropos word" to search for commands related to "word"... Reading symbols from watch-bug... (gdb) b main Breakpoint 1 at 0x1134: file watch-bug.c, line 8. (gdb) r Starting program: /home/root/watch-bug [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/libthread_db.so.1". Breakpoint 1, main (argc=1, argv=0x7fffffffecd8) at watch-bug.c:8 8 i0 = argc; (gdb) watch l1 Hardware watchpoint 2: l1 (gdb) next 9 l1 = i0 * 7; (gdb) next ```