[Lldb-commits] [lldb] r152882 - in /lldb/trunk/www: lldb-gdb.html tutorial.html
Johnny Chen
johnny.chen at apple.com
Thu Mar 15 17:44:02 PDT 2012
Author: johnny
Date: Thu Mar 15 19:44:02 2012
New Revision: 152882
URL: http://llvm.org/viewvc/llvm-project?rev=152882&view=rev
Log:
rdar://problem/11057400
Add documentation for watchpoint commands.
Modified:
lldb/trunk/www/lldb-gdb.html
lldb/trunk/www/tutorial.html
Modified: lldb/trunk/www/lldb-gdb.html
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/www/lldb-gdb.html?rev=152882&r1=152881&r2=152882&view=diff
==============================================================================
--- lldb/trunk/www/lldb-gdb.html (original)
+++ lldb/trunk/www/lldb-gdb.html Thu Mar 15 19:44:02 2012
@@ -303,9 +303,86 @@
</table>
<p>
</div>
+ <div class="postfooter"></div>
- <div class="postfooter"></div>
+ <h1 class ="postheader">Watchpoint Commands</h1>
+ <div class="post">
+
+ <p>
+
+ <table class="stats" width="620" cellspacing="0">
+ <tr>
+ <td class="hed" width="50%">LLDB</td>
+ <td class="hed" width="50%">GDB</td>
+ </tr>
+
+ <tr><td class="header" colspan="2">Set a watchpoint on a variable when it is written to.</td></tr>
+ <tr>
+ <td class="content">
+ <b>(lldb)</b> watchpoint set variable -w write global_var<br>
+ <b>(lldb)</b> watch set var -w write global_var<br>
+ </td>
+ <td class="content">
+ <b>(gdb)</b> watch global_var
+ </td>
+ </tr>
+
+ <tr><td class="header" colspan="2">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.</td></tr>
+ <tr>
+ <td class="content">
+ <b>(lldb)</b> watchpoint set expression -w write -- my_ptr<br>
+ <b>(lldb)</b> watch set exp -w write -- my_ptr<br>
+ </td>
+ <td class="content">
+ <b>(gdb)</b> watch -location g_char_ptr
+ </td>
+ </tr>
+ <tr><td class="header" colspan="2">Set a condition on a watchpoint</b>.</td></tr>
+ <tr>
+ <td class="content" colspan="2">
+ <b>(lldb)</b> watch set var -w write global<br>
+ <b>(lldb)</b> watchpoint modify -c '(global==5)'<br>
+ <b>(lldb)</b> c<br>
+ ...<br>
+ <b>(lldb)</b> bt<br>
+ * thread #1: tid = 0x1c03, 0x0000000100000ef5 a.out`modify + 21 at main.cpp:16, stop reason = watchpoint 1<br>
+ frame #0: 0x0000000100000ef5 a.out`modify + 21 at main.cpp:16<br>
+ frame #1: 0x0000000100000eac a.out`main + 108 at main.cpp:25<br>
+ frame #2: 0x00007fff8ac9c7e1 libdyld.dylib`start + 1<br>
+ <b>(lldb)</b> frame var global<br>
+ (int32_t) global = 5<br>
+ </td>
+ </tr>
+
+ <tr><td class="header" colspan="2">List all watchpoints.</td></tr>
+ <tr>
+ <td class="content">
+ <b>(lldb)</b> watchpoint list<br>
+ <b>(lldb)</b> watch l<br>
+ </td>
+ <td class="content">
+ <b>(gdb)</b> info break<br>
+ </td>
+ </tr>
+
+ <tr><td class="header" colspan="2">Delete a watchpoint.</td></tr>
+ <tr>
+ <td class="content">
+ <b>(lldb)</b> watchpoint delete 1<br>
+ <b>(lldb)</b> watch del 1<br>
+ </td>
+ <td class="content">
+ <b>(gdb)</b> delete 1<br>
+ </td>
+ </tr>
+
+ </table>
+ <p>
+ </div>
+
+ <div class="postfooter"></div>
<h1 class ="postheader">Examining Variables</h1>
<div class="post">
<p>
Modified: lldb/trunk/www/tutorial.html
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/www/tutorial.html?rev=152882&r1=152881&r2=152882&view=diff
==============================================================================
--- lldb/trunk/www/tutorial.html (original)
+++ lldb/trunk/www/tutorial.html Thu Mar 15 19:44:02 2012
@@ -336,7 +336,58 @@
<br> etc...
</code>
- </div>
+ </div>
+ <div class="postfooter"></div>
+
+ <div class="post">
+ <h1 class ="postheader">Setting watchpoints</h1>
+ <div class="postcontent">
+
+ <p>In addition to breakpoints, you can use <code>help watchpoint</code>
+ to see all the commands for watchpoint manipulations. For instance, we might do the following to watch
+ a variable called 'global' for write operation, but only stop if the condition '(global==5)' is true:</p>
+
+ <pre><tt>(lldb) watch set var -w write global
+Watchpoint created: Watchpoint 1: addr = 0x100001018 size = 4 state = enabled type = w
+ declare @ '/Volumes/data/lldb/svn/ToT/test/functionalities/watchpoint/watchpoint_commands/condition/main.cpp:12'
+(lldb) watch modify -c '(global==5)'
+(lldb) watch list
+Current watchpoints:
+Watchpoint 1: addr = 0x100001018 size = 4 state = enabled type = w
+ declare @ '/Volumes/data/lldb/svn/ToT/test/functionalities/watchpoint/watchpoint_commands/condition/main.cpp:12'
+ condition = '(global==5)'
+(lldb) c
+Process 15562 resuming
+(lldb) about to write to 'global'...
+Process 15562 stopped and was programmatically restarted.
+Process 15562 stopped and was programmatically restarted.
+Process 15562 stopped and was programmatically restarted.
+Process 15562 stopped and was programmatically restarted.
+Process 15562 stopped
+* 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
+ 13
+ 14 static void modify(int32_t &var) {
+ 15 ++var;
+-> 16 }
+ 17
+ 18 int main(int argc, char** argv) {
+ 19 int local = 0;
+(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
+(lldb) watch list -v
+Current watchpoints:
+Watchpoint 1: addr = 0x100001018 size = 4 state = enabled type = w
+ declare @ '/Volumes/data/lldb/svn/ToT/test/functionalities/watchpoint/watchpoint_commands/condition/main.cpp:12'
+ condition = '(global==5)'
+ hw_index = 0 hit_count = 5 ignore_count = 0
+(lldb) </tt></pre>
+ </div>
<div class="postfooter"></div>
<div class="post">
More information about the lldb-commits
mailing list