[Lldb-commits] [PATCH] D25057: Fix ARM/AArch64 Step-Over watchpoint issue remove provision for duplicate watchpoints

Jim Ingham via lldb-commits lldb-commits at lists.llvm.org
Wed Oct 19 10:34:15 PDT 2016


> On Oct 4, 2016, at 9:28 AM, Pavel Labath via lldb-commits <lldb-commits at lists.llvm.org> wrote:
> 
> Also, apparently lldb has a bug, where it mishandles the case where you do a (user-level) single step over an instruction triggering a watchpoint. That would be pretty important to fix as well.

Do you have a reference for this?  In a trivial case, it works correctly on MacOS so far as I can tell:

(lldb) si
Process 99358 stopped
* thread #1: tid = 0x148d67e, function: main , stop reason = instruction step into
    frame #0: 0x0000000100000f5e changeit`main at changeit.c:9
   6   	
   7   	  printf("my_var is: %d.\n", my_var);
   8   	
-> 9   	  my_var = 20;
   10  	
   11  	  printf("my_var is: %d.\n", my_var);
   12  	
changeit`main:
->  0x100000f5e <+46>: movl   $0x14, -0x8(%rbp)
    0x100000f65 <+53>: movl   -0x8(%rbp), %esi
    0x100000f68 <+56>: movl   %eax, -0xc(%rbp)
    0x100000f6b <+59>: movb   $0x0, %al
(lldb) si

Watchpoint 1 hit:
old value: 10
new value: 20
Process 99358 stopped
* thread #1: tid = 0x148d67e, function: main , stop reason = watchpoint 1
    frame #0: 0x0000000100000f65 changeit`main at changeit.c:11
   8   	
   9   	  my_var = 20;
   10  	
-> 11  	  printf("my_var is: %d.\n", my_var);
   12  	
   13  	  return 0;
   14  	}
changeit`main:
->  0x100000f65 <+53>: movl   -0x8(%rbp), %esi
    0x100000f68 <+56>: movl   %eax, -0xc(%rbp)
    0x100000f6b <+59>: movb   $0x0, %al
    0x100000f6d <+61>: callq  0x100000f80               ; symbol stub for: printf

Jim



More information about the lldb-commits mailing list