[Bug breakpoints/27423] Watchpoint could be hw but is sw

vries at gcc dot gnu.org sourceware-bugzilla@sourceware.org
Mon Feb 15 16:19:44 GMT 2021


https://sourceware.org/bugzilla/show_bug.cgi?id=27423

--- Comment #1 from Tom de Vries <vries at gcc dot gnu.org> ---
The behaviour can be observed in can_use_hardware_watchpoint.

In all cases expect IV, we hit target_region_ok_for_hw_watchpoint, where true
is returned.

In case IV, we hit instead the ';' here:
...
      if (VALUE_LVAL (v) == lval_memory)
        {
          if (v != head && value_lazy (v))
            /* A lazy memory lvalue in the chain is one that GDB never          
               needed to fetch; we either just used its address (e.g.,          
               `a' in `a.b') or we never needed it at all (e.g., `a'            
               in `a,b').  This doesn't apply to HEAD; if that is               
               lazy then it was not readable, but watch it anyway.  */
            ;
          else
            {
              /* Ahh, memory we actually used!  Check if we can cover          
              ...

I can force choosing the else clause, and then observe a hw watchpoint instead.
 But it never triggers.  So, either more fixes are required, or this is the
wrong way to fix it and instead the value chain needs fixing.

-- 
You are receiving this mail because:
You are on the CC list for the bug.


More information about the Gdb-prs mailing list