Created
July 9, 2014 09:53
-
-
Save rais38/6ecead686af9291da542 to your computer and use it in GitHub Desktop.
Watchpoint in LLDB
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Set a watchpoint on a variable when it is written to. | |
(lldb) watchpoint set variable -w write global_var | |
(lldb) watch set var -w write global_var | |
(gdb) watch global_var | |
Set a watchpoint on a memory location when it is written into. The size of the region to watch for defaults to the pointer size if no '-x byte_size' is specified. This command takes raw input, evaluated as an expression returning an unsigned integer pointing to the start of the region, after the '--' option terminator. | |
(lldb) watchpoint set expression -w write -- my_ptr | |
(lldb) watch set exp -w write -- my_ptr | |
(gdb) watch -location g_char_ptr | |
Set a condition on a watchpoint. | |
(lldb) watch set var -w write global | |
(lldb) watchpoint modify -c '(global==5)' | |
(lldb) c | |
... | |
(lldb) bt | |
* thread #1: tid = 0x1c03, 0x0000000100000ef5 a.out`modify + 21 at main.cpp:16, stop reason = watchpoint 1 | |
frame #0: 0x0000000100000ef5 a.out`modify + 21 at main.cpp:16 | |
frame #1: 0x0000000100000eac a.out`main + 108 at main.cpp:25 | |
frame #2: 0x00007fff8ac9c7e1 libdyld.dylib`start + 1 | |
(lldb) frame var global | |
(int32_t) global = 5 | |
List all watchpoints. | |
(lldb) watchpoint list | |
(lldb) watch l | |
(gdb) info break | |
Delete a watchpoint. | |
(lldb) watchpoint delete 1 | |
(lldb) watch del 1 | |
(gdb) delete 1 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment