On Tue, 17 Jun 2014 21:18:50 +0200, Jan Kratochvil wrote: > On Thu, 20 Mar 2014 14:57:36 +0100, Pedro Alves wrote: > > Here's what I pushed (nothing else changed). > > 31e77af205cf6564c2bf4c18400b4ca16bdf92cd is the first bad commit > commit 31e77af205cf6564c2bf4c18400b4ca16bdf92cd > Author: Pedro Alves > Date: Thu Mar 20 13:26:32 2014 +0000 > PR breakpoints/7143 - Watchpoint does not trigger when first set > > PASS kernel-3.14.6-200.fc20.x86_64 > FAIL kernel-3.13.10-200.dentrybuflen.fc20.x86_64 That was a red herring, in fact it was due to different GCC. (gdb) disas marker Dump of assembler code for function marker: 0x0000000000400826 <+0>: push %rbp 0x0000000000400827 <+1>: mov %rsp,%rbp => 0x000000000040082a <+4>: pop %rbp 0x000000000040082b <+5>: retq End of assembler dump. ptrace(PTRACE_POKEUSER, 24574, offsetof(struct user, u_debugreg), 0x40082a) = -1 EINVAL (Invalid argument) New GDB in the 'hbreak' case does not align the breakpoint address. Attaching gzipped gdb.threads/watchpoint-fork-parent-st from gcc-4.9.0-9.fc21.x86_64. Jan ../gdb gdb.threads/watchpoint-fork-parent-st -ex 'set pagination off' -ex start -ex 'hbreak marker' -ex 'watch var' -ex c -ex c -ex c GNU gdb (GDB) 7.8.50.20140619-cvs Copyright (C) 2014 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-unknown-linux-gnu". 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 gdb.threads/watchpoint-fork-parent-st...done. Temporary breakpoint 1 at 0x400836: file ./gdb.threads/watchpoint-fork-st.c, line 43. Starting program: /home/jkratoch/redhat/gdb-test-f20-noasan/gdb/testsuite/gdb.threads/watchpoint-fork-parent-st Temporary breakpoint 1, main () at ./gdb.threads/watchpoint-fork-st.c:43 43 setbuf (stdout, NULL); Hardware assisted breakpoint 2 at 0x40082a: file ./gdb.threads/watchpoint-fork-st.c, line 33. Hardware watchpoint 3: var Continuing. main: 26352 Breakpoint 2, marker () at ./gdb.threads/watchpoint-fork-st.c:33 33 } Continuing. Hardware watchpoint 3: var Old value = 0 New value = 1 main () at ./gdb.threads/watchpoint-fork-st.c:50 50 forkoff (1); Continuing. main () at ./gdb.threads/watchpoint-fork-st.c:50 50 forkoff (1); Couldn't write debug register: Invalid argument. (gdb) _