blob: d1567349795512f790940711e696ba8a8c02888a [file] [log] [blame]
Jason Molendac09b8b92011-10-22 02:31:42 +00001<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2<html xmlns="http://www.w3.org/1999/xhtml">
3<head>
4<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
5<link href="style.css" rel="stylesheet" type="text/css" />
Eli Friedmane31493a2011-12-07 22:09:43 +00006<title>LLDB to GDB Command Map</title>
Jason Molendac09b8b92011-10-22 02:31:42 +00007</head>
8
9<body>
10 <div class="www_title">
11 The <strong>LLDB</strong> Debugger
12 </div>
Jason Molendaa2f701f2011-10-25 01:28:31 +000013
Jason Molendac09b8b92011-10-22 02:31:42 +000014<div id="container">
Jason Molendaa2f701f2011-10-25 01:28:31 +000015 <div id="content">
Jason Molendac09b8b92011-10-22 02:31:42 +000016 <!--#include virtual="sidebar.incl"-->
Jason Molendaa2f701f2011-10-25 01:28:31 +000017 <div id="middle">
18 <div class="post">
Jason Molendac09b8b92011-10-22 02:31:42 +000019
Jason Molendaa2f701f2011-10-25 01:28:31 +000020 <h1 class ="postheader">LLDB to GDB Command Map</h1>
21 <div class="post">
22
23 <p>Below is a table of LLDB commands with the GDB counterparts.
24 The built in GDB compatability aliases in GDB are also
25 listed.</p>
Jason Molendac09b8b92011-10-22 02:31:42 +000026 </div>
Jason Molendaa2f701f2011-10-25 01:28:31 +000027 <div class="postfooter"></div>
Jason Molendac09b8b92011-10-22 02:31:42 +000028
Jason Molendaa2f701f2011-10-25 01:28:31 +000029 <h1 class ="postheader">Execution Commands</h1>
30 <div class="post">
Jason Molendac09b8b92011-10-22 02:31:42 +000031
32 <p>
33
Jason Molendaa2f701f2011-10-25 01:28:31 +000034 <table class="stats" width="620" cellspacing="0">
Jason Molendac09b8b92011-10-22 02:31:42 +000035 <tr>
36 <td class="hed" width="50%">LLDB</td>
37 <td class="hed" width="50%">GDB</td>
38 </tr>
39
40 <tr><td class="header" colspan="2">Launch a process no arguments.</td></tr>
41 <td class="content">
42 <b>(lldb)</b> process launch<br>
43 <b>(lldb)</b> run<br>
44 <b>(lldb)</b> r
45 </td>
46 <td class="content">
47 <b>(gdb)</b> run<br>
48 <b>(gdb)</b> r
49 </td>
50 </tr>
51
Jason Molendaa2f701f2011-10-25 01:28:31 +000052
Jason Molendac09b8b92011-10-22 02:31:42 +000053 <tr><td class="header" colspan="2">Launch a process with arguments <code>&lt;args&gt;</code>.</td></tr>
54 <td class="content">
55 <b>(lldb)</b> process launch -- &lt;args&gt;<br>
Jason Molendac09b8b92011-10-22 02:31:42 +000056 <b>(lldb)</b> r &lt;args&gt;
57 </td>
58 <td class="content">
59 <b>(gdb)</b> run &lt;args&gt;<br>
60 <b>(gdb)</b> r &lt;args&gt;
61 </td>
62 </tr>
63
64 <tr><td class="header" colspan="2">Launch a process for with arguments <b><code>a.out 1 2 3</code></b> without having to supply the args every time.</td></tr>
65 <td class="content">
66 <b>%</b> lldb -- a.out 1 2 3<br>
67 <b>(lldb)</b> run<br>
68 ...<br>
69 <b>(lldb)</b> run<br>
70 ...<br>
71 </td>
72 <td class="content">
73 <b>%</b> gdb --args a.out 1 2 3<br>
74 <b>(gdb)</b> run<br>
75 ...<br>
76 <b>(gdb)</b> run<br>
77 ...<br>
78 </td>
79 </tr>
80
81 <tr><td class="header" colspan="2">Launch a process with arguments in new terminal window (Mac OS X only).</td></tr>
82 <td class="content">
83 <b>(lldb)</b> process launch --tty -- &lt;args&gt;<br>
Jason Molendaa2f701f2011-10-25 01:28:31 +000084 <b>(lldb)</b> pro la -t -- &lt;args&gt;<br>
Jason Molendac09b8b92011-10-22 02:31:42 +000085 </td>
86 <td class="content">
87 </td>
88 </tr>
89
90 <tr><td class="header" colspan="2">Launch a process with arguments in existing terminal <cope>/dev/ttys006</code> (Mac OS X only).</td></tr>
91 <td class="content">
92 <b>(lldb)</b> process launch --tty=/dev/ttys006 -- &lt;args&gt;<br>
Jason Molendaa2f701f2011-10-25 01:28:31 +000093 <b>(lldb)</b> pro la -t/dev/ttys006 -- &lt;args&gt;<br>
Jason Molendac09b8b92011-10-22 02:31:42 +000094 </td>
95 <td class="content">
96 </td>
97 </tr>
98
99 <tr><td class="header" colspan="2">Attach to a process with process ID 123.</td></tr>
100 <tr>
101 <td class="content">
102 <b>(lldb)</b> process attach --pid 123<br>
103 <b>(lldb)</b> attach -p 123
104 </td>
105 <td class="content">
106 <b>(gdb)</b> attach 123
107 </td>
108 </tr>
109
110 <tr><td class="header" colspan="2">Attach to a process named "a.out".</td></tr>
111 <tr>
112 <td class="content">
113 <b>(lldb)</b> process attach --name a.out<br>
Jason Molendaa2f701f2011-10-25 01:28:31 +0000114 <b>(lldb)</b> pro at -n a.out
Jason Molendac09b8b92011-10-22 02:31:42 +0000115 </td>
116 <td class="content">
117 <b>(gdb)</b> attach a.out
118 </td>
119 </tr>
120
121 <tr><td class="header" colspan="2">Wait for a process named "a.out" to launch and attach.</td></tr>
122 <tr>
123 <td class="content">
124 <b>(lldb)</b> process attach --name a.out --waitfor<br>
Jason Molendaa2f701f2011-10-25 01:28:31 +0000125 <b>(lldb)</b> pro at -n a.out -w
Jason Molendac09b8b92011-10-22 02:31:42 +0000126 </td>
127 <td class="content">
128 <b>(gdb)</b> attach -waitfor a.out
129 </td>
130 </tr>
131
132 <tr><td class="header" colspan="2">Do a source level single step in the currently selected thread.</td></tr>
133 <tr>
134 <td class="content">
135 <b>(lldb)</b> thread step-in<br>
136 <b>(lldb)</b> step<br>
137 <b>(lldb)</b> s
138 </td>
139 <td class="content">
140 <b>(gdb)</b> step<br>
141 <b>(gdb)</b> s
142 </td>
143 </tr>
144
145
146 <tr><td class="header" colspan="2">Do a source level single step over in the currently selected thread.</td></tr>
147 <tr>
148 <td class="content">
149 <b>(lldb)</b> thread step-over<br>
150 <b>(lldb)</b> next<br>
151 <b>(lldb)</b> n<br>
152 </td>
153 <td class="content">
154 <b>(gdb)</b> next<br>
155 <b>(gdb)</b> n
156 </td>
157 </tr>
158
159 <tr><td class="header" colspan="2">Do an instruction level single step in the currently selected thread.</td></tr>
160 <tr>
161 <td class="content">
162 <b>(lldb)</b> thread step-inst<br>
163 <b>(lldb)</b> si<br>
164 </td>
165 <td class="content">
166 <b>(gdb)</b> stepi<br>
167 <b>(gdb)</b> si
168 </td>
169 </tr>
170
171 <tr><td class="header" colspan="2">Do an instruction level single step over in the currently selected thread.</td></tr>
172 <tr>
173 <td class="content">
174 <b>(lldb)</b> thread step-inst-over<br>
175 <b>(lldb)</b> ni
176 </td>
177 <td class="content">
178 <b>(gdb)</b> nexti<br>
179 <b>(gdb)</b> ni
180 </td>
181 </tr>
182
183 <tr><td class="header" colspan="2">Step out of the currently selected frame.</td></tr>
184 <tr>
185 <td class="content">
186 <b>(lldb)</b> thread step-out<br>
187 <b>(lldb)</b> finish<br>
188 </td>
189 <td class="content">
190 <b>(gdb)</b> finish<br>
191 </td>
192 </tr>
193
Jason Molendaa2f701f2011-10-25 01:28:31 +0000194 <tr><td class="header" colspan="2">Backtrace and disassemble every time you stop.</td></tr>
195 <tr>
196 <td class="content" colspan="2">
197 <b>(lldb)</b> target stop-hook add<br>
198 Enter your stop hook command(s). Type 'DONE' to end.<br>
199 &gt; bt<br>
200 &gt; disassemble --pc<br>
201 &gt; DONE<br>
202 Stop hook #1 added.<br>
203 </td>
204 </tr>
205
206 </table>
207 <p>
208 </div>
209 <div class="postfooter"></div>
210
211 <h1 class ="postheader">Breakpoint Commands</h1>
212 <div class="post">
213
214 <p>
215
216 <table class="stats" width="620" cellspacing="0">
217 <tr>
218 <td class="hed" width="50%">LLDB</td>
219 <td class="hed" width="50%">GDB</td>
220 </tr>
221
222 <tr><td class="header" colspan="2">Set a breakpoint at all functions named <b>main</b>.</td></tr>
223 <tr>
224 <td class="content">
225 <b>(lldb)</b> breakpoint set --name main<br>
226 <b>(lldb)</b> br s -n main<br>
227 <b>(lldb)</b> b main
228 </td>
229 <td class="content">
230 <b>(gdb)</b> break main
231 </td>
232 </tr>
233
234 <tr><td class="header" colspan="2">Set a breakpoint in file <b>test.c</b> at line <b>12</b>.</td></tr>
235 <tr>
236 <td class="content">
237 <b>(lldb)</b> breakpoint set --file test.c --line 12<br>
238 <b>(lldb)</b> br s -f test.c -l 12<br>
239 <b>(lldb)</b> b test.c:12
240 </td>
241 <td class="content">
242 <b>(gdb)</b> break test.c:12
243 </td>
244 </tr>
245
246 <tr><td class="header" colspan="2">Set a breakpoint at all C++ methods whose basename is <b>main</b>.</td></tr>
247 <tr>
248 <td class="content">
249 <b>(lldb)</b> breakpoint set --method main<br>
250 <b>(lldb)</b> br s -M main<br>
251 </td>
252 <td class="content">
253 <b>(gdb)</b> break main<br>
254 <i>(Hope that there are no C funtions named <b>main</b>)</i>.
255 </td>
256 </tr>
257
258 <tr><td class="header" colspan="2">Set a breakpoint at all Objective C methods whose selector is <b>count</b>.</td></tr>
259 <tr>
260 <td class="content">
261 <b>(lldb)</b> breakpoint set --selector count<br>
262 <b>(lldb)</b> br s -S count<br>
263 </td>
264 <td class="content">
265 <b>(gdb)</b> break count<br>
266 <i>(Hope that there are no C or C++ funtions named <b>count</b>)</i>.
267 </td>
268 </tr>
269
270 </table>
271 <p>
272 </div>
273
274 <div class="postfooter"></div>
275
276 <h1 class ="postheader">Examining Variables</h1>
277 <div class="post">
278 <p>
279 <table class="stats" width="620" cellspacing="0">
280 <tr>
281 <td class="hed" width="50%">LLDB</td>
282 <td class="hed" width="50%">GDB</td>
283 </tr>
284
285 <tr><td class="header" colspan="2">Show the arguments and local variables for the current frame.</td></tr>
286 <tr>
287 <td class="content">
288 <b>(lldb)</b> frame variable<br>
289 </td>
290 <td class="content">
291 <b>(gdb)</b> info args<br>
292 and<br>
293 <b>(gdb)</b> info locals<br>
294 </td>
295 </tr>
296
297 <tr><td class="header" colspan="2">Show the local variables for the current frame.</td></tr>
298 <tr>
299 <td class="content">
300 <b>(lldb)</b> frame variable --no-args<br>
301 <b>(lldb)</b> fr v -a<br>
302 </td>
303 <td class="content">
304 <b>(gdb)</b> info locals<br>
305 </td>
306 </tr>
307
308 <tr><td class="header" colspan="2">Show the contents of local variable "bar".</td></tr>
309 <tr>
310 <td class="content">
311 <b>(lldb)</b> frame variable bar <br>
312 <b>(lldb)</b> fr v bar <br>
313 <b>(lldb)</b> p bar <br>
314 </td>
315 <td class="content">
316 <b>(gdb)</b> p bar<br>
317 </td>
318 </tr>
319
320 <tr><td class="header" colspan="2">Show the contents of local variable "bar" formatted as hex.</td></tr>
321 <tr>
322 <td class="content">
323 <b>(lldb)</b> frame variable --format x bar <br>
324 <b>(lldb)</b> fr v -f x bar <br>
325 </td>
326 <td class="content">
327 <b>(gdb)</b> p/x bar<br>
328 </td>
329 </tr>
330
331 <tr><td class="header" colspan="2">Show the contents of global variable "baz".</td></tr>
332 <tr>
333 <td class="content">
334 <b>(lldb)</b> target variable baz <br>
335 <b>(lldb)</b> ta v baz <br>
336 </td>
337 <td class="content">
338 <b>(gdb)</b> p baz<br>
339 </td>
340 </tr>
341
342 <tr><td class="header" colspan="2">Show the global/static variables defined in the current source file.</td></tr>
343 <tr>
344 <td class="content">
345 <b>(lldb)</b> target variable <br>
346 <b>(lldb)</b> ta v <br>
347 </td>
348 <td class="content">
349 n/a<br>
350 </td>
351 </tr>
352
Jason Molendaa0a10d02011-10-25 01:28:56 +0000353 <tr><td class="header" colspan="2">Display a the variable "argc" and "argv" every time you stop.</td></tr>
Jason Molendac09b8b92011-10-22 02:31:42 +0000354 <tr>
355 <td class="content">
356 <b>(lldb)</b> target stop-hook add --one-liner "frame variable argc argv"<br>
357 <b>(lldb)</b> ta st a -o "fr v argc argv"<br>
Jason Molendaa2f701f2011-10-25 01:28:31 +0000358 <b>(lldb)</b> display argc<br>
359 <b>(lldb)</b> display argv<br>
Jason Molendac09b8b92011-10-22 02:31:42 +0000360 </td>
361 <td class="content">
362 <b>(gdb)</b> display argc<br>
363 <b>(gdb)</b> display argv<br>
364 </td>
365 </tr>
366
367 <tr><td class="header" colspan="2">Display a the variable "argc" and "argv" only when you stop in the function named <b>main</b>.</td></tr>
368 <tr>
369 <td class="content" colspan="2">
370 <b>(lldb)</b> target stop-hook add --name main --one-liner "frame variable argc argv"<br>
371 <b>(lldb)</b> ta st a -n main -o "fr v argc argv"<br>
372 </td>
373 </tr>
374
375 <tr><td class="header" colspan="2">Display the variable "*this" only when you stop in c class named <b>MyClass</b>.</td></tr>
376 <tr>
377 <td class="content" colspan="2">
378 <b>(lldb)</b> target stop-hook add --classname MyClass --one-liner "frame variable *this"<br>
Jason Molendaa2f701f2011-10-25 01:28:31 +0000379 <b>(lldb)</b> ta st a -c MyClass -o "fr v *this"<br>
Jason Molendac09b8b92011-10-22 02:31:42 +0000380 </td>
381 </tr>
382
383 </table>
384 <p>
385 </div>
Jason Molendac09b8b92011-10-22 02:31:42 +0000386
Jason Molendaa2f701f2011-10-25 01:28:31 +0000387 <h1 class ="postheader">Examining Thread State</h1>
388 <div class="post">
Jason Molendac09b8b92011-10-22 02:31:42 +0000389 <p>
Jason Molendaa2f701f2011-10-25 01:28:31 +0000390 <table class="stats" width="620" cellspacing="0">
Jason Molendac09b8b92011-10-22 02:31:42 +0000391 <tr>
392 <td class="hed" width="50%">LLDB</td>
393 <td class="hed" width="50%">GDB</td>
394 </tr>
395
Jason Molendac09b8b92011-10-22 02:31:42 +0000396
397 <tr><td class="header" colspan="2">Show the stack backtrace for the current thread.</td></tr>
398 <tr>
399 <td class="content">
400 <b>(lldb)</b> thread backtrace<br>
401 <b>(lldb)</b> bt<br>
402 </td>
403 <td class="content">
404 <b>(gdb)</b> bt<br>
405 </td>
406 </tr>
407
408 <tr><td class="header" colspan="2">Show the stack backtraces for all threads.</td></tr>
409 <tr>
410 <td class="content">
411 <b>(lldb)</b> thread backtrace all<br>
412 <b>(lldb)</b> bt all
413 </td>
414 <td class="content">
415 <b>(gdb)</b> thread apply all bt
416 </td>
417 </tr>
418
419 <tr><td class="header" colspan="2">Select a different stack frame by index for the current thread.</td></tr>
420 <tr>
421 <td class="content">
422 <b>(lldb)</b> frame select 12<br>
423 </td>
424 <td class="content">
425 <b>(gdb)</b> frame 12
426 </td>
427 </tr>
428
429 <tr><td class="header" colspan="2">Select the stack frame that called the current stack frame.</td></tr>
430 <tr>
431 <td class="content">
432 <b>(lldb)</b> up<br>
433 <b>(lldb)</b> frame select --relative=1<br>
434 </td>
435 <td class="content">
436 <b>(gdb)</b> up
437 </td>
438 </tr>
439
440 <tr><td class="header" colspan="2">Select the stack frame that is called by the current stack frame.</td></tr>
441 <tr>
442 <td class="content">
443 <b>(lldb)</b> down<br>
444 <b>(lldb)</b> frame select --relative=-1<br>
Jason Molendaa2f701f2011-10-25 01:28:31 +0000445 <b>(lldb)</b> fr s -r-1<br>
Jason Molendac09b8b92011-10-22 02:31:42 +0000446 </td>
447 <td class="content">
448 <b>(gdb)</b> down
449 </td>
450 </tr>
451
452 <tr><td class="header" colspan="2">Select a different stack frame using a relative offset.</td></tr>
453 <tr>
454 <td class="content">
455 <b>(lldb)</b> frame select --relative 2<br>
Jason Molendaa2f701f2011-10-25 01:28:31 +0000456 <b>(lldb)</b> fr s -r2<br>
Jason Molendac09b8b92011-10-22 02:31:42 +0000457 <br>
458 <b>(lldb)</b> frame select --relative -3<br>
Jason Molendaa2f701f2011-10-25 01:28:31 +0000459 <b>(lldb)</b> fr s -r-3<br>
Jason Molendac09b8b92011-10-22 02:31:42 +0000460 </td>
461 <td class="content">
462 <b>(gdb)</b> up 2<br>
463 <b>(gdb)</b> down 3<br>
464 </td>
465 </tr>
466
467 <tr><td class="header" colspan="2">Show the general purpose registers for the current thread.</td></tr>
468 <tr>
469 <td class="content">
470 <b>(lldb)</b> register read<br>
471 </td>
472 <td class="content">
473 <b>(gdb)</b> info registers<br>
474 </td>
475 </tr>
476
Jason Molendaa2f701f2011-10-25 01:28:31 +0000477 <tr><td class="header" colspan="2">Show the general purpose registers for the current thread formatted as <b>signed decimal</b>. LLDB tries to use
478 the same format characters as <b>printf(3)</b> when possible. Type "help format" to see the full list of format specifiers.</td></tr>
Jason Molendac09b8b92011-10-22 02:31:42 +0000479 <tr>
480 <td class="content">
481 <b>(lldb)</b> register read --format i<br>
Jason Molendaa2f701f2011-10-25 01:28:31 +0000482 <b>(lldb)</b> re r -f i<br>
Jason Molendac09b8b92011-10-22 02:31:42 +0000483 </td>
484 <td class="content">
485 </td>
486 </tr>
487
488 <tr><td class="header" colspan="2">Show all registers in all register sets for the current thread.</td></tr>
489 <tr>
490 <td class="content">
491 <b>(lldb)</b> register read --all<br>
Jason Molendaa2f701f2011-10-25 01:28:31 +0000492 <b>(lldb)</b> re r -a<br>
Jason Molendac09b8b92011-10-22 02:31:42 +0000493 </td>
494 <td class="content">
495 <b>(gdb)</b> info all-registers<br>
496 </td>
497 </tr>
498
499 <tr><td class="header" colspan="2">Show the values for the registers named "rax", "rsp" and "rbp" in the current thread.</td></tr>
500 <tr>
501 <td class="content">
502 <b>(lldb)</b> register read rax rsp rbp<br>
503 </td>
504 <td class="content">
505 <b>(gdb)</b> info all-registers rax rsp rbp<br>
506 </td>
507 </tr>
508
509 <tr><td class="header" colspan="2">Show the values for the register named "rax" in the current thread formatted as <b>binary</b>.</td></tr>
510 <tr>
511 <td class="content">
512 <b>(lldb)</b> register read --format binary rax<br>
Jason Molendaa2f701f2011-10-25 01:28:31 +0000513 <b>(lldb)</b> re r -f b rax<br>
Jason Molendac09b8b92011-10-22 02:31:42 +0000514 </td>
515 <td class="content">
516 <b>(gdb)</b> p/t $rax<br>
517 </td>
518 </tr>
519
520 <tr><td class="header" colspan="2">Read memory from address 0xbffff3c0 and show 4 hex uint32_t values.</td></tr>
521 <tr>
522 <td class="content">
523 <b>(lldb)</b> memory read --size 4 --format x --count 4 0xbffff3c0<br>
Jason Molendaa2f701f2011-10-25 01:28:31 +0000524 <b>(lldb)</b> me r -s4 -fx -c4 0xbffff3c0<br>
Jason Molendac09b8b92011-10-22 02:31:42 +0000525 <b>(lldb)</b> x -s4 -fx -c4 0xbffff3c0<br>
526 </td>
527 <td class="content">
528 <b>(gdb)</b> x/4xw 0xbffff3c0<br>
529 </td>
530 </tr>
531
532 <tr><td class="header" colspan="2">Read 512 bytes of memory from address 0xbffff3c0 and save results to a local file as <b>text</b>.</td></tr>
533 <tr>
534 <td class="content">
535 <b>(lldb)</b> memory read --outfile /tmp/mem.txt --count 512 0xbffff3c0<br>
Jason Molendaa2f701f2011-10-25 01:28:31 +0000536 <b>(lldb)</b> me r -o/tmp/mem.txt -c512 0xbffff3c0<br>
Jason Molendac09b8b92011-10-22 02:31:42 +0000537 </td>
538 <td class="content">
539 <b>(gdb)</b> set logging on<br>
540 <b>(gdb)</b> set logging file /tmp/mem.txt<br>
541 <b>(gdb)</b> x/512bx 0xbffff3c0<br>
542 <b>(gdb)</b> set logging off<br>
543 </td>
544 </tr>
545
546 <tr><td class="header" colspan="2">Save binary memory data starting at 0x1000 and ending at 0x2000 to a file.</td></tr>
547 <tr>
548 <td class="content"colspan=2>
549 <b>(lldb)</b> memory read --outfile /tmp/mem.bin --binary 0x1000 0x1200<br>
Jason Molendaa2f701f2011-10-25 01:28:31 +0000550 <b>(lldb)</b> me r -o /tmp/mem.bin -b 0x1000 0x1200<br>
Jason Molendac09b8b92011-10-22 02:31:42 +0000551 </td>
552 </tr>
553
554 <tr><td class="header" colspan="2">Disassemble the current function for the current frame.</td></tr>
555 <tr>
556 <td class="content">
557 <b>(lldb)</b> disassemble --frame<br>
Jason Molendaa2f701f2011-10-25 01:28:31 +0000558 <b>(lldb)</b> di -f
Jason Molendac09b8b92011-10-22 02:31:42 +0000559 </td>
560 <td class="content">
561 <b>(gdb)</b> disassemble
562 </td>
563 </tr>
564
565 <tr><td class="header" colspan="2">Disassemble any functions named <b>main</b>.</td></tr>
566 <tr>
567 <td class="content">
568 <b>(lldb)</b> disassemble --name main<br>
Jason Molendaa2f701f2011-10-25 01:28:31 +0000569 <b>(lldb)</b> di -n main
Jason Molendac09b8b92011-10-22 02:31:42 +0000570 </td>
571 <td class="content">
572 <b>(gdb)</b> disassemble main
573 </td>
574 </tr>
575
576 <tr><td class="header" colspan="2">Disassemble an address range.</td></tr>
577 <tr>
578 <td class="content">
579 <b>(lldb)</b> disassemble --start-address 0x1eb8 --end-address 0x1ec3<br>
Jason Molendaa2f701f2011-10-25 01:28:31 +0000580 <b>(lldb)</b> di -s 0x1eb8 -e 0x1ec3<br>
Jason Molendac09b8b92011-10-22 02:31:42 +0000581 </td>
582 <td class="content">
583 <b>(gdb)</b> disassemble 0x1eb8 0x1ec3
584 </td>
585 </tr>
586
587 <tr><td class="header" colspan="2">Disassemble 20 instructions from a given address.</td></tr>
588 <tr>
589 <td class="content">
590 <b>(lldb)</b> disassemble --start-address 0x1eb8 --count 20<br>
Jason Molendaa2f701f2011-10-25 01:28:31 +0000591 <b>(lldb)</b> di -s 0x1eb8 -c 20<br>
Jason Molendac09b8b92011-10-22 02:31:42 +0000592 </td>
593 <td class="content">
594 <b>(gdb)</b> x/20i 0x1eb8
595 </td>
596 </tr>
597
598 <tr><td class="header" colspan="2">Show mixed source and disassembly for the current function for the current frame.</td></tr>
599 <tr>
600 <td class="content">
601 <b>(lldb)</b> disassemble --frame --mixed<br>
Jason Molendaa2f701f2011-10-25 01:28:31 +0000602 <b>(lldb)</b> di -f -m
Jason Molendac09b8b92011-10-22 02:31:42 +0000603 </td>
604 <td class="content">
605 n/a
606 </td>
607 </tr>
608
609 <tr><td class="header" colspan="2">Disassemble the current function for the current frame and show the opcode bytes.</td></tr>
610 <tr>
611 <td class="content">
612 <b>(lldb)</b> disassemble --frame --bytes<br>
Jason Molendaa2f701f2011-10-25 01:28:31 +0000613 <b>(lldb)</b> di -f -b
Jason Molendac09b8b92011-10-22 02:31:42 +0000614 </td>
615 <td class="content">
616 n/a
617 </td>
618 </tr>
619
620 <tr><td class="header" colspan="2">Disassemble the current source line for the current frame.</td></tr>
621 <tr>
622 <td class="content">
623 <b>(lldb)</b> disassemble --line<br>
Jason Molendaa2f701f2011-10-25 01:28:31 +0000624 <b>(lldb)</b> di -l
Jason Molendac09b8b92011-10-22 02:31:42 +0000625 </td>
626 <td class="content">
627 n/a
628 </td>
629 </tr>
630
631 </table>
632 <p>
633 </div>
Jason Molendaa2f701f2011-10-25 01:28:31 +0000634 <div class="postfooter"></div>
Jason Molendac09b8b92011-10-22 02:31:42 +0000635
Jason Molendaa2f701f2011-10-25 01:28:31 +0000636 <h1 class ="postheader">Executable and Shared Library Query Commands</h1>
637 <div class="post">
Jason Molendac09b8b92011-10-22 02:31:42 +0000638
639 <p>
640
Jason Molendaa2f701f2011-10-25 01:28:31 +0000641 <table class="stats" width="620" cellspacing="0">
Jason Molendac09b8b92011-10-22 02:31:42 +0000642 <tr>
643 <td class="hed" width="50%">LLDB</td>
644 <td class="hed" width="50%">GDB</td>
645 </tr>
646
647
648 <tr><td class="header" colspan="2">List the main executable and all dependent shared libraries.</td></tr>
649 <tr>
650 <td class="content">
651 <b>(lldb)</b> image list<br>
652 </td>
653 <td class="content">
654 <b>(gdb)</b> info shared<br>
655 </td>
656 </tr>
657
658 <tr><td class="header" colspan="2">Lookup information for a raw address in the executable or any shared libraries.</td></tr>
659 <tr>
660 <td class="content">
661 <b>(lldb)</b> image lookup --address 0x1ec4<br>
Jason Molendaa2f701f2011-10-25 01:28:31 +0000662 <b>(lldb)</b> im loo -a 0x1ec4<br>
Jason Molendac09b8b92011-10-22 02:31:42 +0000663 </td>
664 <td class="content">
665 <b>(gdb)</b> info symbol 0x1ec4<br>
666 </td>
667 </tr>
668
669 <tr><td class="header" colspan="2">Lookup information for an address in <b>a.out</a> only.</td></tr>
670 <tr>
671 <td class="content">
672 <b>(lldb)</b> image lookup --address 0x1ec4 a.out<br>
Jason Molendaa2f701f2011-10-25 01:28:31 +0000673 <b>(lldb)</b> im loo -a 0x1ec4 a.out<br>
Jason Molendac09b8b92011-10-22 02:31:42 +0000674 </td>
675 <td class="content">
676 </td>
677 </tr>
678
679 <tr><td class="header" colspan="2">Lookup information for for a type <code>Point</code> by name.</td></tr>
680 <tr>
681 <td class="content">
682 <b>(lldb)</b> image lookup --type Point<br>
Jason Molendaa2f701f2011-10-25 01:28:31 +0000683 <b>(lldb)</b> im loo -t Point<br>
Jason Molendac09b8b92011-10-22 02:31:42 +0000684 </td>
685 <td class="content">
686 <b>(lldb)</b> ptype Point<br>
687 </td>
688 </tr>
689
690 <tr><td class="header" colspan="2">Dump all sections from the main executable and any shared libraries.</td></tr>
691 <tr>
692 <td class="content">
693 <b>(lldb)</b> image dump sections<br>
694 </td>
695 <td class="content">
696 <b>(gdb)</b> maintenance info sections<br>
697 </td>
698 </tr>
699
700 <tr><td class="header" colspan="2">Dump all sections in the <b>a.out</b> module.</td></tr>
701 <tr>
702 <td class="content">
703 <b>(lldb)</b> image dump sections a.out<br>
704 </td>
705 <td class="content">
706 </td>
707 </tr>
708
709 <tr><td class="header" colspan="2">Dump all symbols from the main executable and any shared libraries.</td></tr>
710 <tr>
711 <td class="content">
712 <b>(lldb)</b> image dump symtab<br>
713 </td>
714 <td class="content">
715 </td>
716 </tr>
717
718 <tr><td class="header" colspan="2">Dump all symbols in <b>a.out</b> and <b>liba.so</b>.</td></tr>
719 <tr>
720 <td class="content">
721 <b>(lldb)</b> image dump symtab a.out liba.so<br>
722 </td>
723 <td class="content">
724 </td>
725 </tr>
726
727 </table>
728 <p>
729 </div>
Jason Molendaa2f701f2011-10-25 01:28:31 +0000730 <div class="postfooter"></div>
Jason Molendac09b8b92011-10-22 02:31:42 +0000731
732 <p>
733
Jason Molendaa2f701f2011-10-25 01:28:31 +0000734
Jason Molendac09b8b92011-10-22 02:31:42 +0000735 </div>
Jason Molendaa2f701f2011-10-25 01:28:31 +0000736 </div>
737 </div>
Jason Molendac09b8b92011-10-22 02:31:42 +0000738</div>
739</body>
740</html>