xref: /llvm-project/lldb/docs/use/map.rst (revision b0c0a148dbad9f4d9a2e855deec05669269d30c7)
1edb874b2SJonas DevlieghereGDB to LLDB command map
2edb874b2SJonas Devlieghere=======================
3edb874b2SJonas Devlieghere
493ccccb0SSaagar JhaBelow is a table of GDB commands with their LLDB counterparts. The built in
5edb874b2SJonas DevlieghereGDB-compatibility aliases in LLDB are also listed. The full lldb command names
6edb874b2SJonas Devlieghereare often long, but any unique short form can be used. Instead of "**breakpoint
7edb874b2SJonas Devlieghereset**", "**br se**" is also acceptable.
8edb874b2SJonas Devlieghere
93aa678a7SJonas Devlieghere* `Execution Commands`_
103aa678a7SJonas Devlieghere* `Breakpoint Commands`_
113aa678a7SJonas Devlieghere* `Watchpoint Commands`_
123aa678a7SJonas Devlieghere* `Examining Variables`_
133aa678a7SJonas Devlieghere* `Evaluating Expressions`_
143aa678a7SJonas Devlieghere* `Examining Thread State`_
153aa678a7SJonas Devlieghere* `Executable and Shared Library Query Commands`_
163aa678a7SJonas Devlieghere* `Miscellaneous`_
173aa678a7SJonas Devlieghere
18edb874b2SJonas DevlieghereExecution Commands
19edb874b2SJonas Devlieghere------------------
20edb874b2SJonas Devlieghere
216a2552a1SMed Ismail BennaniLaunch a process no arguments
226a2552a1SMed Ismail Bennani~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
23edb874b2SJonas Devlieghere
246a2552a1SMed Ismail Bennani.. code-block:: shell
25edb874b2SJonas Devlieghere
266a2552a1SMed Ismail Bennani  (gdb) run
276a2552a1SMed Ismail Bennani  (gdb) r
28edb874b2SJonas Devlieghere
296a2552a1SMed Ismail Bennani.. code-block:: shell
30edb874b2SJonas Devlieghere
316a2552a1SMed Ismail Bennani  (lldb) process launch
326a2552a1SMed Ismail Bennani  (lldb) run
336a2552a1SMed Ismail Bennani  (lldb) r
34edb874b2SJonas Devlieghere
356a2552a1SMed Ismail BennaniLaunch a process with arguments ``<args>``
366a2552a1SMed Ismail Bennani~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
37edb874b2SJonas Devlieghere
386a2552a1SMed Ismail Bennani.. code-block:: shell
39edb874b2SJonas Devlieghere
406a2552a1SMed Ismail Bennani  (gdb) run <args>
416a2552a1SMed Ismail Bennani  (gdb) r <args>
42edb874b2SJonas Devlieghere
43edb874b2SJonas Devlieghere
446a2552a1SMed Ismail Bennani.. code-block:: shell
45edb874b2SJonas Devlieghere
466a2552a1SMed Ismail Bennani  (lldb) process launch -- <args>
476a2552a1SMed Ismail Bennani  (lldb) run <args>
486a2552a1SMed Ismail Bennani  (lldb) r <args>
49edb874b2SJonas Devlieghere
506a2552a1SMed Ismail BennaniLaunch process ``a.out`` with arguments ``1 2 3`` by passing the args to the debugger
516a2552a1SMed Ismail Bennani~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
52edb874b2SJonas Devlieghere
536a2552a1SMed Ismail Bennani.. code-block:: shell
54edb874b2SJonas Devlieghere
556a2552a1SMed Ismail Bennani  % gdb --args a.out 1 2 3
566a2552a1SMed Ismail Bennani  (gdb) run
576a2552a1SMed Ismail Bennani  ...
586a2552a1SMed Ismail Bennani  (gdb) run
596a2552a1SMed Ismail Bennani  ...
60edb874b2SJonas Devlieghere
616a2552a1SMed Ismail Bennani.. code-block:: shell
62edb874b2SJonas Devlieghere
636a2552a1SMed Ismail Bennani  % lldb -- a.out 1 2 3
646a2552a1SMed Ismail Bennani  (lldb) run
656a2552a1SMed Ismail Bennani  ...
666a2552a1SMed Ismail Bennani  (lldb) run
676a2552a1SMed Ismail Bennani  ...
68edb874b2SJonas Devlieghere
69edb874b2SJonas Devlieghere
706a2552a1SMed Ismail BennaniLaunch process a.out with arguments ``1 2 3`` by setting the args in the debugger
716a2552a1SMed Ismail Bennani~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
72edb874b2SJonas Devlieghere
736a2552a1SMed Ismail Bennani.. code-block:: shell
74edb874b2SJonas Devlieghere
756a2552a1SMed Ismail Bennani  (gdb) set args 1 2 3
766a2552a1SMed Ismail Bennani  (gdb) run
776a2552a1SMed Ismail Bennani  ...
786a2552a1SMed Ismail Bennani  (gdb) run
796a2552a1SMed Ismail Bennani  ...
80edb874b2SJonas Devlieghere
816a2552a1SMed Ismail Bennani.. code-block:: shell
82eea88740SMed Ismail Bennani
836a2552a1SMed Ismail Bennani  (lldb) settings set target.run-args 1 2 3
846a2552a1SMed Ismail Bennani  (lldb) run
856a2552a1SMed Ismail Bennani  ...
866a2552a1SMed Ismail Bennani  (lldb) run
876a2552a1SMed Ismail Bennani  ...
88eea88740SMed Ismail Bennani
896a2552a1SMed Ismail BennaniLaunch a process with arguments in new terminal window (macOS only)
906a2552a1SMed Ismail Bennani~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
91eea88740SMed Ismail Bennani
926a2552a1SMed Ismail Bennani.. code-block:: shell
93eea88740SMed Ismail Bennani
946a2552a1SMed Ismail Bennani  (lldb) process launch --tty -- <args>
956a2552a1SMed Ismail Bennani  (lldb) pro la -t -- <args>
96eea88740SMed Ismail Bennani
976a2552a1SMed Ismail BennaniLaunch a process with arguments ``<args>`` in existing terminal ``/dev/ttys006``
986a2552a1SMed Ismail Bennani~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
99eea88740SMed Ismail Bennani
1006a2552a1SMed Ismail Bennani.. code-block:: shell
101eea88740SMed Ismail Bennani
1026a2552a1SMed Ismail Bennani  (lldb) process launch --tty=/dev/ttys006 -- <args>
1036a2552a1SMed Ismail Bennani  (lldb) pro la -t/dev/ttys006 -- <args>
1046a2552a1SMed Ismail Bennani
1056a2552a1SMed Ismail Bennani
1066a2552a1SMed Ismail BennaniSet environment variables for process before launching
1076a2552a1SMed Ismail Bennani~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1086a2552a1SMed Ismail Bennani
1096a2552a1SMed Ismail Bennani.. code-block:: shell
1106a2552a1SMed Ismail Bennani
1116a2552a1SMed Ismail Bennani  (gdb) set env DEBUG 1
1126a2552a1SMed Ismail Bennani
1136a2552a1SMed Ismail Bennani.. code-block:: shell
1146a2552a1SMed Ismail Bennani
1156a2552a1SMed Ismail Bennani  (lldb) settings set target.env-vars DEBUG=1
1166a2552a1SMed Ismail Bennani  (lldb) set se target.env-vars DEBUG=1
1176a2552a1SMed Ismail Bennani  (lldb) env DEBUG=1
1186a2552a1SMed Ismail Bennani
1196a2552a1SMed Ismail Bennani
1206a2552a1SMed Ismail BennaniUnset environment variables for process before launching
1216a2552a1SMed Ismail Bennani~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1226a2552a1SMed Ismail Bennani
1236a2552a1SMed Ismail Bennani.. code-block:: shell
1246a2552a1SMed Ismail Bennani
1256a2552a1SMed Ismail Bennani  (gdb) unset env DEBUG
1266a2552a1SMed Ismail Bennani
1276a2552a1SMed Ismail Bennani.. code-block:: shell
1286a2552a1SMed Ismail Bennani
1296a2552a1SMed Ismail Bennani  (lldb) settings remove target.env-vars DEBUG
1306a2552a1SMed Ismail Bennani  (lldb) set rem target.env-vars DEBUG
1316a2552a1SMed Ismail Bennani
1326a2552a1SMed Ismail BennaniShow the arguments that will be or were passed to the program when run
1336a2552a1SMed Ismail Bennani~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1346a2552a1SMed Ismail Bennani
1356a2552a1SMed Ismail Bennani.. code-block:: shell
1366a2552a1SMed Ismail Bennani
1376a2552a1SMed Ismail Bennani  (gdb) show args
1386a2552a1SMed Ismail Bennani  Argument list to give program being debugged when it is started is "1 2 3".
1396a2552a1SMed Ismail Bennani
1406a2552a1SMed Ismail Bennani.. code-block:: shell
1416a2552a1SMed Ismail Bennani
1426a2552a1SMed Ismail Bennani  (lldb) settings show target.run-args
1436a2552a1SMed Ismail Bennani  target.run-args (array of strings) =
1446a2552a1SMed Ismail Bennani  [0]: "1"
1456a2552a1SMed Ismail Bennani  [1]: "2"
1466a2552a1SMed Ismail Bennani  [2]: "3"
1476a2552a1SMed Ismail Bennani
1486a2552a1SMed Ismail BennaniSet environment variables for process and launch process in one command
1496a2552a1SMed Ismail Bennani~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1506a2552a1SMed Ismail Bennani
1516a2552a1SMed Ismail Bennani.. code-block:: shell
1526a2552a1SMed Ismail Bennani
1536a2552a1SMed Ismail Bennani  (lldb) process launch -E DEBUG=1
1546a2552a1SMed Ismail Bennani
1556a2552a1SMed Ismail BennaniAttach to the process with process ID 123
1566a2552a1SMed Ismail Bennani~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1576a2552a1SMed Ismail Bennani
1586a2552a1SMed Ismail Bennani.. code-block:: shell
1596a2552a1SMed Ismail Bennani
1606a2552a1SMed Ismail Bennani  (gdb) attach 123
1616a2552a1SMed Ismail Bennani
1626a2552a1SMed Ismail Bennani.. code-block:: shell
1636a2552a1SMed Ismail Bennani
1646a2552a1SMed Ismail Bennani  (lldb) process attach --pid 123
1656a2552a1SMed Ismail Bennani  (lldb) attach -p 123
1666a2552a1SMed Ismail Bennani
1676a2552a1SMed Ismail BennaniAttach to the process named ``a.out``
1686a2552a1SMed Ismail Bennani~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1696a2552a1SMed Ismail Bennani
1706a2552a1SMed Ismail Bennani.. code-block:: shell
1716a2552a1SMed Ismail Bennani
1726a2552a1SMed Ismail Bennani  (gdb) attach a.out
1736a2552a1SMed Ismail Bennani
1746a2552a1SMed Ismail Bennani.. code-block:: shell
1756a2552a1SMed Ismail Bennani
1766a2552a1SMed Ismail Bennani  (lldb) process attach --name a.out
1776a2552a1SMed Ismail Bennani  (lldb) pro at -n a.out
1786a2552a1SMed Ismail Bennani
1796a2552a1SMed Ismail BennaniWait for a process named ``a.out`` to launch and attach
1806a2552a1SMed Ismail Bennani~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1816a2552a1SMed Ismail Bennani
1826a2552a1SMed Ismail Bennani.. code-block:: shell
1836a2552a1SMed Ismail Bennani
1846a2552a1SMed Ismail Bennani  (gdb) attach -waitfor a.out
1856a2552a1SMed Ismail Bennani
1866a2552a1SMed Ismail Bennani.. code-block:: shell
1876a2552a1SMed Ismail Bennani
1886a2552a1SMed Ismail Bennani  (lldb) process attach --name a.out --waitfor
1896a2552a1SMed Ismail Bennani  (lldb) pro at -n a.out -w
1906a2552a1SMed Ismail Bennani
1916a2552a1SMed Ismail BennaniAttach to a remote gdb protocol server running on system ``eorgadd``, port ``8000``
1926a2552a1SMed Ismail Bennani~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1936a2552a1SMed Ismail Bennani
1946a2552a1SMed Ismail Bennani.. code-block:: shell
1956a2552a1SMed Ismail Bennani
1966a2552a1SMed Ismail Bennani  (gdb) target remote eorgadd:8000
1976a2552a1SMed Ismail Bennani
1986a2552a1SMed Ismail Bennani.. code-block:: shell
1996a2552a1SMed Ismail Bennani
2006a2552a1SMed Ismail Bennani  (lldb) gdb-remote eorgadd:8000
2016a2552a1SMed Ismail Bennani
2026a2552a1SMed Ismail BennaniAttach to a remote gdb protocol server running on the local system, port ``8000``
2036a2552a1SMed Ismail Bennani~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2046a2552a1SMed Ismail Bennani
2056a2552a1SMed Ismail Bennani.. code-block:: shell
2066a2552a1SMed Ismail Bennani
2076a2552a1SMed Ismail Bennani  (gdb) target remote localhost:8000
2086a2552a1SMed Ismail Bennani
2096a2552a1SMed Ismail Bennani.. code-block:: shell
2106a2552a1SMed Ismail Bennani
2116a2552a1SMed Ismail Bennani  (lldb) gdb-remote 8000
2126a2552a1SMed Ismail Bennani
2136a2552a1SMed Ismail BennaniAttach to a Darwin kernel in kdp mode on system ``eorgadd``
2146a2552a1SMed Ismail Bennani~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2156a2552a1SMed Ismail Bennani
2166a2552a1SMed Ismail Bennani.. code-block:: shell
2176a2552a1SMed Ismail Bennani
2186a2552a1SMed Ismail Bennani  (gdb) kdp-reattach eorgadd
2196a2552a1SMed Ismail Bennani
2206a2552a1SMed Ismail Bennani.. code-block:: shell
2216a2552a1SMed Ismail Bennani
2226a2552a1SMed Ismail Bennani  (lldb) kdp-remote eorgadd
2236a2552a1SMed Ismail Bennani
2246a2552a1SMed Ismail BennaniDo a source level single step in the currently selected thread
2256a2552a1SMed Ismail Bennani~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2266a2552a1SMed Ismail Bennani
2276a2552a1SMed Ismail Bennani.. code-block:: shell
2286a2552a1SMed Ismail Bennani
2296a2552a1SMed Ismail Bennani  (gdb) step
2306a2552a1SMed Ismail Bennani  (gdb) s
2316a2552a1SMed Ismail Bennani
2326a2552a1SMed Ismail Bennani.. code-block:: shell
2336a2552a1SMed Ismail Bennani
2346a2552a1SMed Ismail Bennani  (lldb) thread step-in
2356a2552a1SMed Ismail Bennani  (lldb) step
2366a2552a1SMed Ismail Bennani  (lldb) s
2376a2552a1SMed Ismail Bennani
238*b0c0a148SDavid SpickettIgnore a function when doing a source level single step in
239*b0c0a148SDavid Spickett~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
240*b0c0a148SDavid Spickett
241*b0c0a148SDavid Spickett.. code-block:: shell
242*b0c0a148SDavid Spickett
243*b0c0a148SDavid Spickett  (gdb) skip abc
244*b0c0a148SDavid Spickett  Function abc will be skipped when stepping.
245*b0c0a148SDavid Spickett
246*b0c0a148SDavid Spickett.. code-block:: shell
247*b0c0a148SDavid Spickett
248*b0c0a148SDavid Spickett  (lldb) settings show target.process.thread.step-avoid-regexp
249*b0c0a148SDavid Spickett  target.process.thread.step-avoid-regexp (regex) = ^std::
250*b0c0a148SDavid Spickett  (lldb) settings set target.process.thread.step-avoid-regexp ^std::|^abc
251*b0c0a148SDavid Spickett
252*b0c0a148SDavid SpickettYou can ignore a function once using:
253*b0c0a148SDavid Spickett
254*b0c0a148SDavid Spickett.. code-block:: shell
255*b0c0a148SDavid Spickett
256*b0c0a148SDavid Spickett  (lldb) thread step-in -r ^abc
257*b0c0a148SDavid Spickett
258*b0c0a148SDavid SpickettOr you can do the opposite, only step into functions matching a certain name:
259*b0c0a148SDavid Spickett
260*b0c0a148SDavid Spickett.. code-block:: shell
261*b0c0a148SDavid Spickett
262*b0c0a148SDavid Spickett  # Step in if abc is a substring of the function name.
263*b0c0a148SDavid Spickett  (lldb) sif abc
264*b0c0a148SDavid Spickett  # Which is equivalent to:
265*b0c0a148SDavid Spickett  (lldb) thread step-in -t abc
266*b0c0a148SDavid Spickett
267*b0c0a148SDavid Spickett``thread step-in`` has more options which cover some of ``skip``'s other
268*b0c0a148SDavid Spickettfeatures. See ``help thread step-in`` for details.
269*b0c0a148SDavid Spickett
2706a2552a1SMed Ismail BennaniDo a source level single step over in the currently selected thread
2716a2552a1SMed Ismail Bennani~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2726a2552a1SMed Ismail Bennani
2736a2552a1SMed Ismail Bennani.. code-block:: shell
2746a2552a1SMed Ismail Bennani
2756a2552a1SMed Ismail Bennani  (gdb) next
2766a2552a1SMed Ismail Bennani  (gdb) n
2776a2552a1SMed Ismail Bennani
2786a2552a1SMed Ismail Bennani.. code-block:: shell
2796a2552a1SMed Ismail Bennani
2806a2552a1SMed Ismail Bennani  (lldb) thread step-over
2816a2552a1SMed Ismail Bennani  (lldb) next
2826a2552a1SMed Ismail Bennani  (lldb) n
2836a2552a1SMed Ismail Bennani
2846a2552a1SMed Ismail BennaniDo an instruction level single step in the currently selected thread
2856a2552a1SMed Ismail Bennani~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2866a2552a1SMed Ismail Bennani
2876a2552a1SMed Ismail Bennani.. code-block:: shell
2886a2552a1SMed Ismail Bennani
2896a2552a1SMed Ismail Bennani  (gdb) stepi
2906a2552a1SMed Ismail Bennani  (gdb) si
2916a2552a1SMed Ismail Bennani
2926a2552a1SMed Ismail Bennani.. code-block:: shell
2936a2552a1SMed Ismail Bennani
2946a2552a1SMed Ismail Bennani  (lldb) thread step-inst
2956a2552a1SMed Ismail Bennani  (lldb) si
2966a2552a1SMed Ismail Bennani
2976a2552a1SMed Ismail BennaniDo an instruction level single step over in the currently selected thread
2986a2552a1SMed Ismail Bennani~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2996a2552a1SMed Ismail Bennani
3006a2552a1SMed Ismail Bennani.. code-block:: shell
3016a2552a1SMed Ismail Bennani
3026a2552a1SMed Ismail Bennani  (gdb) nexti
3036a2552a1SMed Ismail Bennani  (gdb) ni
3046a2552a1SMed Ismail Bennani
3056a2552a1SMed Ismail Bennani.. code-block:: shell
3066a2552a1SMed Ismail Bennani
3076a2552a1SMed Ismail Bennani  (lldb) thread step-inst-over
3086a2552a1SMed Ismail Bennani  (lldb) ni
3096a2552a1SMed Ismail Bennani
3106a2552a1SMed Ismail BennaniStep out of the currently selected frame
3116a2552a1SMed Ismail Bennani~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3126a2552a1SMed Ismail Bennani
3136a2552a1SMed Ismail Bennani.. code-block:: shell
3146a2552a1SMed Ismail Bennani
3156a2552a1SMed Ismail Bennani  (gdb) finish
3166a2552a1SMed Ismail Bennani
3176a2552a1SMed Ismail Bennani.. code-block:: shell
3186a2552a1SMed Ismail Bennani
3196a2552a1SMed Ismail Bennani  (lldb) thread step-out
3206a2552a1SMed Ismail Bennani  (lldb) finish
3216a2552a1SMed Ismail Bennani
3226a2552a1SMed Ismail BennaniReturn immediately from the currently selected frame, with an optional return value
3236a2552a1SMed Ismail Bennani~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3246a2552a1SMed Ismail Bennani
3256a2552a1SMed Ismail Bennani.. code-block:: shell
3266a2552a1SMed Ismail Bennani
3276a2552a1SMed Ismail Bennani  (gdb) return <RETURN EXPRESSION>
3286a2552a1SMed Ismail Bennani
3296a2552a1SMed Ismail Bennani.. code-block:: shell
3306a2552a1SMed Ismail Bennani
3316a2552a1SMed Ismail Bennani  (lldb) thread return <RETURN EXPRESSION>
3326a2552a1SMed Ismail Bennani
3336a2552a1SMed Ismail BennaniBacktrace and disassemble every time you stop
3346a2552a1SMed Ismail Bennani~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3356a2552a1SMed Ismail Bennani
3366a2552a1SMed Ismail Bennani.. code-block:: shell
3376a2552a1SMed Ismail Bennani
3386a2552a1SMed Ismail Bennani  (lldb) target stop-hook add
3396a2552a1SMed Ismail Bennani  Enter your stop hook command(s). Type 'DONE' to end.
3406a2552a1SMed Ismail Bennani  > bt
3416a2552a1SMed Ismail Bennani  > disassemble --pc
3426a2552a1SMed Ismail Bennani  > DONE
3436a2552a1SMed Ismail Bennani  Stop hook #1 added.
3446a2552a1SMed Ismail Bennani
3456a2552a1SMed Ismail BennaniRun until we hit line 12 or control leaves the current function
3466a2552a1SMed Ismail Bennani~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3476a2552a1SMed Ismail Bennani
3486a2552a1SMed Ismail Bennani.. code-block:: shell
3496a2552a1SMed Ismail Bennani
3506a2552a1SMed Ismail Bennani  (gdb) until 12
3516a2552a1SMed Ismail Bennani
3526a2552a1SMed Ismail Bennani.. code-block:: shell
3536a2552a1SMed Ismail Bennani
3546a2552a1SMed Ismail Bennani  (lldb) thread until 12
3556a2552a1SMed Ismail Bennani
3566a2552a1SMed Ismail BennaniShow the current frame and source line
3576a2552a1SMed Ismail Bennani~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3586a2552a1SMed Ismail Bennani
3596a2552a1SMed Ismail Bennani.. code-block:: shell
3606a2552a1SMed Ismail Bennani
3616a2552a1SMed Ismail Bennani  (gdb) frame
3626a2552a1SMed Ismail Bennani
3636a2552a1SMed Ismail Bennani.. code-block:: shell
3646a2552a1SMed Ismail Bennani
3656a2552a1SMed Ismail Bennani  (lldb) frame select
3666a2552a1SMed Ismail Bennani  (lldb) f
3676a2552a1SMed Ismail Bennani  (lldb) process status
368edb874b2SJonas Devlieghere
369edb874b2SJonas DevlieghereBreakpoint Commands
370edb874b2SJonas Devlieghere-------------------
371edb874b2SJonas Devlieghere
3726a2552a1SMed Ismail BennaniSet a breakpoint at all functions named main
3736a2552a1SMed Ismail Bennani~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
374edb874b2SJonas Devlieghere
3756a2552a1SMed Ismail Bennani.. code-block:: shell
376edb874b2SJonas Devlieghere
3776a2552a1SMed Ismail Bennani  (gdb) break main
378edb874b2SJonas Devlieghere
3796a2552a1SMed Ismail Bennani.. code-block:: shell
380edb874b2SJonas Devlieghere
3816a2552a1SMed Ismail Bennani  (lldb) breakpoint set --name main
3826a2552a1SMed Ismail Bennani  (lldb) br s -n main
3836a2552a1SMed Ismail Bennani  (lldb) b main
384edb874b2SJonas Devlieghere
3856a2552a1SMed Ismail BennaniSet a breakpoint in file ``test.c`` at line ``12``
3866a2552a1SMed Ismail Bennani~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
387edb874b2SJonas Devlieghere
3886a2552a1SMed Ismail Bennani.. code-block:: shell
389edb874b2SJonas Devlieghere
3906a2552a1SMed Ismail Bennani  (gdb) break test.c:12
391edb874b2SJonas Devlieghere
3926a2552a1SMed Ismail Bennani.. code-block:: shell
393edb874b2SJonas Devlieghere
3946a2552a1SMed Ismail Bennani  (lldb) breakpoint set --file test.c --line 12
3956a2552a1SMed Ismail Bennani  (lldb) br s -f test.c -l 12
3966a2552a1SMed Ismail Bennani  (lldb) b test.c:12
397edb874b2SJonas Devlieghere
3986a2552a1SMed Ismail BennaniSet a breakpoint at all C++ methods whose basename is ``main``
3996a2552a1SMed Ismail Bennani~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
400edb874b2SJonas Devlieghere
4016a2552a1SMed Ismail Bennani.. code-block:: shell
402edb874b2SJonas Devlieghere
4036a2552a1SMed Ismail Bennani  (gdb) break main
4046a2552a1SMed Ismail Bennani  (Hope that there are no C functions named main)
405edb874b2SJonas Devlieghere
4066a2552a1SMed Ismail Bennani.. code-block:: shell
407edb874b2SJonas Devlieghere
4086a2552a1SMed Ismail Bennani  (lldb) breakpoint set --method main
4096a2552a1SMed Ismail Bennani  (lldb) br s -M main
410edb874b2SJonas Devlieghere
4116a2552a1SMed Ismail BennaniSet a breakpoint at an Objective-C function ``-[NSString stringWithFormat:]``
4126a2552a1SMed Ismail Bennani~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
413edb874b2SJonas Devlieghere
4146a2552a1SMed Ismail Bennani.. code-block:: shell
41524fca5cdSCyndy Ishida
4166a2552a1SMed Ismail Bennani  (gdb) break -[NSString stringWithFormat:]
41724fca5cdSCyndy Ishida
4186a2552a1SMed Ismail Bennani.. code-block:: shell
4196a2552a1SMed Ismail Bennani
4206a2552a1SMed Ismail Bennani  (lldb) breakpoint set --name "-[NSString stringWithFormat:]"
4216a2552a1SMed Ismail Bennani  (lldb) b -[NSString stringWithFormat:]
4226a2552a1SMed Ismail Bennani
4236a2552a1SMed Ismail BennaniSet a breakpoint at all Objective-C methods whose selector is ``count``
4246a2552a1SMed Ismail Bennani~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
4256a2552a1SMed Ismail Bennani
4266a2552a1SMed Ismail Bennani.. code-block:: shell
4276a2552a1SMed Ismail Bennani
4286a2552a1SMed Ismail Bennani  (gdb) break count
4296a2552a1SMed Ismail Bennani  (Hope that there are no C or C++ functions named count)
4306a2552a1SMed Ismail Bennani
4316a2552a1SMed Ismail Bennani.. code-block:: shell
4326a2552a1SMed Ismail Bennani
4336a2552a1SMed Ismail Bennani  (lldb) breakpoint set --selector count
4346a2552a1SMed Ismail Bennani  (lldb) br s -S count
4356a2552a1SMed Ismail Bennani
4366a2552a1SMed Ismail BennaniSet a breakpoint by regular expression on function name
4376a2552a1SMed Ismail Bennani~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
4386a2552a1SMed Ismail Bennani
4396a2552a1SMed Ismail Bennani.. code-block:: shell
4406a2552a1SMed Ismail Bennani
4416a2552a1SMed Ismail Bennani  (gdb) rbreak regular-expression
4426a2552a1SMed Ismail Bennani
4436a2552a1SMed Ismail Bennani.. code-block:: shell
4446a2552a1SMed Ismail Bennani
4456a2552a1SMed Ismail Bennani  (lldb) breakpoint set --func-regex regular-expression
4466a2552a1SMed Ismail Bennani  (lldb) br s -r regular-expression
4476a2552a1SMed Ismail Bennani
4486a2552a1SMed Ismail BennaniEnsure that breakpoints by file and line work for ``#include .c/.cpp/.m`` files
4496a2552a1SMed Ismail Bennani~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
4506a2552a1SMed Ismail Bennani
4516a2552a1SMed Ismail Bennani.. code-block:: shell
4526a2552a1SMed Ismail Bennani
4536a2552a1SMed Ismail Bennani  (gdb) b foo.c:12
4546a2552a1SMed Ismail Bennani
4556a2552a1SMed Ismail Bennani.. code-block:: shell
4566a2552a1SMed Ismail Bennani
4576a2552a1SMed Ismail Bennani  (lldb) settings set target.inline-breakpoint-strategy always
4586a2552a1SMed Ismail Bennani  (lldb) br s -f foo.c -l 12
4596a2552a1SMed Ismail Bennani
4606a2552a1SMed Ismail BennaniSet a breakpoint by regular expression on source file contents
4616a2552a1SMed Ismail Bennani~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
4626a2552a1SMed Ismail Bennani
4636a2552a1SMed Ismail Bennani.. code-block:: shell
4646a2552a1SMed Ismail Bennani
4656a2552a1SMed Ismail Bennani  (gdb) shell grep -e -n pattern source-file
4666a2552a1SMed Ismail Bennani  (gdb) break source-file:CopyLineNumbers
4676a2552a1SMed Ismail Bennani
4686a2552a1SMed Ismail Bennani.. code-block:: shell
4696a2552a1SMed Ismail Bennani
4706a2552a1SMed Ismail Bennani  (lldb) breakpoint set --source-pattern regular-expression --file SourceFile
4716a2552a1SMed Ismail Bennani  (lldb) br s -p regular-expression -f file
4726a2552a1SMed Ismail Bennani
4736a2552a1SMed Ismail BennaniSet a conditional breakpoint
4746a2552a1SMed Ismail Bennani~~~~~~~~~~~~~~~~~~~~~~~~~~~~
4756a2552a1SMed Ismail Bennani
4766a2552a1SMed Ismail Bennani.. code-block:: shell
4776a2552a1SMed Ismail Bennani
4786a2552a1SMed Ismail Bennani  (gdb) break foo if strcmp(y,"hello") == 0
4796a2552a1SMed Ismail Bennani
4806a2552a1SMed Ismail Bennani.. code-block:: shell
4816a2552a1SMed Ismail Bennani
4826a2552a1SMed Ismail Bennani  (lldb) breakpoint set --name foo --condition '(int)strcmp(y,"hello") == 0'
4836a2552a1SMed Ismail Bennani  (lldb) br s -n foo -c '(int)strcmp(y,"hello") == 0'
4846a2552a1SMed Ismail Bennani
4856a2552a1SMed Ismail BennaniList all breakpoints
4866a2552a1SMed Ismail Bennani~~~~~~~~~~~~~~~~~~~~
4876a2552a1SMed Ismail Bennani
4886a2552a1SMed Ismail Bennani.. code-block:: shell
4896a2552a1SMed Ismail Bennani
4906a2552a1SMed Ismail Bennani  (gdb) info break
4916a2552a1SMed Ismail Bennani
4926a2552a1SMed Ismail Bennani.. code-block:: shell
4936a2552a1SMed Ismail Bennani
4946a2552a1SMed Ismail Bennani  (lldb) breakpoint list
4956a2552a1SMed Ismail Bennani  (lldb) br l
4966a2552a1SMed Ismail Bennani
4976a2552a1SMed Ismail BennaniDelete a breakpoint
4986a2552a1SMed Ismail Bennani~~~~~~~~~~~~~~~~~~~
4996a2552a1SMed Ismail Bennani
5006a2552a1SMed Ismail Bennani.. code-block:: shell
5016a2552a1SMed Ismail Bennani
5026a2552a1SMed Ismail Bennani  (gdb) delete 1
5036a2552a1SMed Ismail Bennani
5046a2552a1SMed Ismail Bennani.. code-block:: shell
5056a2552a1SMed Ismail Bennani
5066a2552a1SMed Ismail Bennani  (lldb) breakpoint delete 1
5076a2552a1SMed Ismail Bennani  (lldb) br del 1
5086a2552a1SMed Ismail Bennani
5096a2552a1SMed Ismail BennaniDisable a breakpoint
5106a2552a1SMed Ismail Bennani~~~~~~~~~~~~~~~~~~~~
5116a2552a1SMed Ismail Bennani
5126a2552a1SMed Ismail Bennani.. code-block:: shell
5136a2552a1SMed Ismail Bennani
5146a2552a1SMed Ismail Bennani  (gdb) disable 1
5156a2552a1SMed Ismail Bennani
5166a2552a1SMed Ismail Bennani.. code-block:: shell
5176a2552a1SMed Ismail Bennani
5186a2552a1SMed Ismail Bennani  (lldb) breakpoint disable 1
5196a2552a1SMed Ismail Bennani  (lldb) br dis 1
5206a2552a1SMed Ismail Bennani
5216a2552a1SMed Ismail BennaniEnable a breakpoint
5226a2552a1SMed Ismail Bennani~~~~~~~~~~~~~~~~~~~
5236a2552a1SMed Ismail Bennani
5246a2552a1SMed Ismail Bennani.. code-block:: shell
5256a2552a1SMed Ismail Bennani
5266a2552a1SMed Ismail Bennani  (gdb) enable 1
5276a2552a1SMed Ismail Bennani
5286a2552a1SMed Ismail Bennani.. code-block:: shell
5296a2552a1SMed Ismail Bennani
5306a2552a1SMed Ismail Bennani  (lldb) breakpoint enable 1
5316a2552a1SMed Ismail Bennani  (lldb) br en 1
532edb874b2SJonas Devlieghere
533edb874b2SJonas Devlieghere
534edb874b2SJonas DevlieghereWatchpoint Commands
535edb874b2SJonas Devlieghere-------------------
536edb874b2SJonas Devlieghere
5376a2552a1SMed Ismail BennaniSet a watchpoint on a variable when it is written to
5386a2552a1SMed Ismail Bennani~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
5396a2552a1SMed Ismail Bennani.. code-block:: shell
540edb874b2SJonas Devlieghere
5416a2552a1SMed Ismail Bennani  (gdb) watch global_var
542edb874b2SJonas Devlieghere
5436a2552a1SMed Ismail Bennani.. code-block:: shell
544edb874b2SJonas Devlieghere
5456a2552a1SMed Ismail Bennani  (lldb) watchpoint set variable global_var
5466a2552a1SMed Ismail Bennani  (lldb) wa s v global_var
547edb874b2SJonas Devlieghere
5486a2552a1SMed Ismail BennaniSet a watchpoint on a memory location when it is written into
5496a2552a1SMed Ismail Bennani~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
550edb874b2SJonas Devlieghere
5516a2552a1SMed Ismail BennaniThe 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.
552edb874b2SJonas Devlieghere
5536a2552a1SMed Ismail Bennani.. code-block:: shell
554edb874b2SJonas Devlieghere
5556a2552a1SMed Ismail Bennani  (gdb) watch -location g_char_ptr
5566a2552a1SMed Ismail Bennani
5576a2552a1SMed Ismail Bennani.. code-block:: shell
5586a2552a1SMed Ismail Bennani
5596a2552a1SMed Ismail Bennani  (lldb) watchpoint set expression -- my_ptr
5606a2552a1SMed Ismail Bennani  (lldb) wa s e -- my_ptr
5616a2552a1SMed Ismail Bennani
5626a2552a1SMed Ismail BennaniSet a condition on a watchpoint
5636a2552a1SMed Ismail Bennani~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
5646a2552a1SMed Ismail Bennani
5656a2552a1SMed Ismail Bennani.. code-block:: shell
5666a2552a1SMed Ismail Bennani
5676a2552a1SMed Ismail Bennani  (lldb) watch set var global
5686a2552a1SMed Ismail Bennani  (lldb) watchpoint modify -c '(global==5)'
5696a2552a1SMed Ismail Bennani  (lldb) c
5706a2552a1SMed Ismail Bennani  ...
5716a2552a1SMed Ismail Bennani  (lldb) bt
5726a2552a1SMed Ismail Bennani  * thread #1: tid = 0x1c03, 0x0000000100000ef5 a.out`modify + 21 at main.cpp:16, stop reason = watchpoint 1
5736a2552a1SMed Ismail Bennani  frame #0: 0x0000000100000ef5 a.out`modify + 21 at main.cpp:16
5746a2552a1SMed Ismail Bennani  frame #1: 0x0000000100000eac a.out`main + 108 at main.cpp:25
5756a2552a1SMed Ismail Bennani  frame #2: 0x00007fff8ac9c7e1 libdyld.dylib`start + 1
5766a2552a1SMed Ismail Bennani  (lldb) frame var global
5776a2552a1SMed Ismail Bennani  (int32_t) global = 5
5786a2552a1SMed Ismail Bennani
5796a2552a1SMed Ismail BennaniList all watchpoints
5806a2552a1SMed Ismail Bennani~~~~~~~~~~~~~~~~~~~~
5816a2552a1SMed Ismail Bennani
5826a2552a1SMed Ismail Bennani.. code-block:: shell
5836a2552a1SMed Ismail Bennani
5846a2552a1SMed Ismail Bennani  (gdb) info break
5856a2552a1SMed Ismail Bennani
5866a2552a1SMed Ismail Bennani.. code-block:: shell
5876a2552a1SMed Ismail Bennani
5886a2552a1SMed Ismail Bennani  (lldb) watchpoint list
5896a2552a1SMed Ismail Bennani  (lldb) watch l
5906a2552a1SMed Ismail Bennani
5916a2552a1SMed Ismail BennaniDelete a watchpoint
5926a2552a1SMed Ismail Bennani~~~~~~~~~~~~~~~~~~~
5936a2552a1SMed Ismail Bennani
5946a2552a1SMed Ismail Bennani.. code-block:: shell
5956a2552a1SMed Ismail Bennani
5966a2552a1SMed Ismail Bennani  (gdb) delete 1
5976a2552a1SMed Ismail Bennani
5986a2552a1SMed Ismail Bennani.. code-block:: shell
5996a2552a1SMed Ismail Bennani
6006a2552a1SMed Ismail Bennani  (lldb) watchpoint delete 1
6016a2552a1SMed Ismail Bennani  (lldb) watch del 1
602edb874b2SJonas Devlieghere
603edb874b2SJonas Devlieghere
604edb874b2SJonas DevlieghereExamining Variables
605edb874b2SJonas Devlieghere-------------------
606edb874b2SJonas Devlieghere
6076a2552a1SMed Ismail BennaniShow the arguments and local variables for the current frame
6086a2552a1SMed Ismail Bennani~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
609edb874b2SJonas Devlieghere
6106a2552a1SMed Ismail Bennani.. code-block:: shell
611edb874b2SJonas Devlieghere
6126a2552a1SMed Ismail Bennani  (gdb) info args
6136a2552a1SMed Ismail Bennani  (gdb) info locals
614edb874b2SJonas Devlieghere
6156a2552a1SMed Ismail Bennani.. code-block:: shell
616edb874b2SJonas Devlieghere
6176a2552a1SMed Ismail Bennani  (lldb) frame variable
6186a2552a1SMed Ismail Bennani  (lldb) fr v
619edb874b2SJonas Devlieghere
6206a2552a1SMed Ismail BennaniShow the local variables for the current frame
6216a2552a1SMed Ismail Bennani~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
622edb874b2SJonas Devlieghere
6236a2552a1SMed Ismail Bennani.. code-block:: shell
624edb874b2SJonas Devlieghere
6256a2552a1SMed Ismail Bennani  (gdb) info locals
626edb874b2SJonas Devlieghere
6276a2552a1SMed Ismail Bennani.. code-block:: shell
628edb874b2SJonas Devlieghere
6296a2552a1SMed Ismail Bennani  (lldb) frame variable --no-args
6306a2552a1SMed Ismail Bennani  (lldb) fr v -a
631edb874b2SJonas Devlieghere
6326a2552a1SMed Ismail BennaniShow the contents of local variable ``bar``
6336a2552a1SMed Ismail Bennani~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
634edb874b2SJonas Devlieghere
6356a2552a1SMed Ismail Bennani.. code-block:: shell
636e1a7d042SJason Molenda
6376a2552a1SMed Ismail Bennani  (gdb) p bar
6386a2552a1SMed Ismail Bennani
6396a2552a1SMed Ismail Bennani.. code-block:: shell
6406a2552a1SMed Ismail Bennani
6416a2552a1SMed Ismail Bennani  (lldb) frame variable bar
6426a2552a1SMed Ismail Bennani  (lldb) fr v bar
6436a2552a1SMed Ismail Bennani  (lldb) p bar
6446a2552a1SMed Ismail Bennani
6456a2552a1SMed Ismail BennaniShow the contents of local variable ``bar`` formatted as hex
6466a2552a1SMed Ismail Bennani~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
6476a2552a1SMed Ismail Bennani
6486a2552a1SMed Ismail Bennani.. code-block:: shell
6496a2552a1SMed Ismail Bennani
6506a2552a1SMed Ismail Bennani  (gdb) p/x bar
6516a2552a1SMed Ismail Bennani
6526a2552a1SMed Ismail Bennani.. code-block:: shell
6536a2552a1SMed Ismail Bennani
6546a2552a1SMed Ismail Bennani  (lldb) frame variable --format x bar
6556a2552a1SMed Ismail Bennani  (lldb) fr v -f x bar
6566a2552a1SMed Ismail Bennani
6576a2552a1SMed Ismail BennaniShow the contents of global variable ``baz``
6586a2552a1SMed Ismail Bennani~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
6596a2552a1SMed Ismail Bennani
6606a2552a1SMed Ismail Bennani.. code-block:: shell
6616a2552a1SMed Ismail Bennani
6626a2552a1SMed Ismail Bennani  (gdb) p baz
6636a2552a1SMed Ismail Bennani
6646a2552a1SMed Ismail Bennani.. code-block:: shell
6656a2552a1SMed Ismail Bennani
6666a2552a1SMed Ismail Bennani  (lldb) target variable baz
6676a2552a1SMed Ismail Bennani  (lldb) ta v baz
6686a2552a1SMed Ismail Bennani
6696a2552a1SMed Ismail BennaniShow the global/static variables defined in the current source file
6706a2552a1SMed Ismail Bennani~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
6716a2552a1SMed Ismail Bennani
6726a2552a1SMed Ismail Bennani.. code-block:: shell
6736a2552a1SMed Ismail Bennani
6746a2552a1SMed Ismail Bennani  (lldb) target variable
6756a2552a1SMed Ismail Bennani  (lldb) ta v
6766a2552a1SMed Ismail Bennani
6776a2552a1SMed Ismail BennaniDisplay the variables ``argc`` and ``argv`` every time you stop
6786a2552a1SMed Ismail Bennani~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
6796a2552a1SMed Ismail Bennani
6806a2552a1SMed Ismail Bennani.. code-block:: shell
6816a2552a1SMed Ismail Bennani
6826a2552a1SMed Ismail Bennani  (gdb) display argc
6836a2552a1SMed Ismail Bennani  (gdb) display argv
6846a2552a1SMed Ismail Bennani
6856a2552a1SMed Ismail Bennani.. code-block:: shell
6866a2552a1SMed Ismail Bennani
6876a2552a1SMed Ismail Bennani  (lldb) target stop-hook add --one-liner "frame variable argc argv"
6886a2552a1SMed Ismail Bennani  (lldb) ta st a -o "fr v argc argv"
6896a2552a1SMed Ismail Bennani  (lldb) display argc
6906a2552a1SMed Ismail Bennani  (lldb) display argv
6916a2552a1SMed Ismail Bennani
6926a2552a1SMed Ismail BennaniDisplay the variables ``argc`` and ``argv`` only when you stop in the function named ``main``
6936a2552a1SMed Ismail Bennani~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
6946a2552a1SMed Ismail Bennani
6956a2552a1SMed Ismail Bennani.. code-block:: shell
6966a2552a1SMed Ismail Bennani
6976a2552a1SMed Ismail Bennani  (lldb) target stop-hook add --name main --one-liner "frame variable argc argv"
6986a2552a1SMed Ismail Bennani  (lldb) ta st a -n main -o "fr v argc argv"
6996a2552a1SMed Ismail Bennani
7006a2552a1SMed Ismail BennaniDisplay the variable ``*this`` only when you stop in c class named ``MyClass``
7016a2552a1SMed Ismail Bennani~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
7026a2552a1SMed Ismail Bennani
7036a2552a1SMed Ismail Bennani.. code-block:: shell
7046a2552a1SMed Ismail Bennani
7056a2552a1SMed Ismail Bennani  (lldb) target stop-hook add --classname MyClass --one-liner "frame variable *this"
7066a2552a1SMed Ismail Bennani  (lldb) ta st a -c MyClass -o "fr v *this"
7076a2552a1SMed Ismail Bennani
7086a2552a1SMed Ismail BennaniPrint an array of integers in memory, assuming we have a pointer like ``int *ptr``
7096a2552a1SMed Ismail Bennani~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
7106a2552a1SMed Ismail Bennani
7116a2552a1SMed Ismail Bennani.. code-block:: shell
7126a2552a1SMed Ismail Bennani
7136a2552a1SMed Ismail Bennani  (gdb) p *ptr@10
7146a2552a1SMed Ismail Bennani
7156a2552a1SMed Ismail Bennani.. code-block:: shell
7166a2552a1SMed Ismail Bennani
7176a2552a1SMed Ismail Bennani  (lldb) parray 10 ptr
718edb874b2SJonas Devlieghere
719edb874b2SJonas DevlieghereEvaluating Expressions
720edb874b2SJonas Devlieghere----------------------
721edb874b2SJonas Devlieghere
7226a2552a1SMed Ismail BennaniEvaluating a generalized expression in the current frame
7236a2552a1SMed Ismail Bennani~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
724edb874b2SJonas Devlieghere
7256a2552a1SMed Ismail Bennani.. code-block:: shell
726edb874b2SJonas Devlieghere
7276a2552a1SMed Ismail Bennani  (gdb) print (int) printf ("Print nine: %d.", 4 + 5)
728edb874b2SJonas Devlieghere
7296a2552a1SMed Ismail Bennanior if you don't want to see void returns:
730edb874b2SJonas Devlieghere
7316a2552a1SMed Ismail Bennani.. code-block:: shell
7326a2552a1SMed Ismail Bennani
7336a2552a1SMed Ismail Bennani  (gdb) call (int) printf ("Print nine: %d.", 4 + 5)
7346a2552a1SMed Ismail Bennani
7356a2552a1SMed Ismail Bennani.. code-block:: shell
7366a2552a1SMed Ismail Bennani
7376a2552a1SMed Ismail Bennani  (lldb) expr (int) printf ("Print nine: %d.", 4 + 5)
7386a2552a1SMed Ismail Bennani
7396a2552a1SMed Ismail Bennanior using the print alias:
7406a2552a1SMed Ismail Bennani
7416a2552a1SMed Ismail Bennani.. code-block:: shell
7426a2552a1SMed Ismail Bennani
7436a2552a1SMed Ismail Bennani  (lldb) print (int) printf ("Print nine: %d.", 4 + 5)
7446a2552a1SMed Ismail Bennani
7456a2552a1SMed Ismail BennaniCreating and assigning a value to a convenience variable
7466a2552a1SMed Ismail Bennani~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
7476a2552a1SMed Ismail Bennani
7486a2552a1SMed Ismail Bennani.. code-block:: shell
7496a2552a1SMed Ismail Bennani
7506a2552a1SMed Ismail Bennani  (gdb) set $foo = 5
7516a2552a1SMed Ismail Bennani  (gdb) set variable $foo = 5
7526a2552a1SMed Ismail Bennani
7536a2552a1SMed Ismail Bennanior using the print command
7546a2552a1SMed Ismail Bennani
7556a2552a1SMed Ismail Bennani.. code-block:: shell
7566a2552a1SMed Ismail Bennani
7576a2552a1SMed Ismail Bennani  (gdb) print $foo = 5
7586a2552a1SMed Ismail Bennani
7596a2552a1SMed Ismail Bennanior using the call command
7606a2552a1SMed Ismail Bennani
7616a2552a1SMed Ismail Bennani.. code-block:: shell
7626a2552a1SMed Ismail Bennani
7636a2552a1SMed Ismail Bennani  (gdb) call $foo = 5
7646a2552a1SMed Ismail Bennani
7656a2552a1SMed Ismail Bennaniand if you want to specify the type of the variable:
7666a2552a1SMed Ismail Bennani
7676a2552a1SMed Ismail Bennani.. code-block:: shell
7686a2552a1SMed Ismail Bennani
7696a2552a1SMed Ismail Bennani  (gdb) set $foo = (unsigned int) 5
7706a2552a1SMed Ismail Bennani
771edb874b2SJonas DevlieghereIn lldb you evaluate a variable declaration expression as you would write it in C:
772edb874b2SJonas Devlieghere
7736a2552a1SMed Ismail Bennani.. code-block:: shell
774edb874b2SJonas Devlieghere
7756a2552a1SMed Ismail Bennani  (lldb) expr unsigned int $foo = 5
776edb874b2SJonas Devlieghere
7776a2552a1SMed Ismail BennaniPrinting the ObjC "description" of an object
7786a2552a1SMed Ismail Bennani~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
779edb874b2SJonas Devlieghere
7806a2552a1SMed Ismail Bennani.. code-block:: shell
781edb874b2SJonas Devlieghere
7826a2552a1SMed Ismail Bennani  (gdb) po [SomeClass returnAnObject]
7836a2552a1SMed Ismail Bennani
7846a2552a1SMed Ismail Bennani.. code-block:: shell
7856a2552a1SMed Ismail Bennani
7866a2552a1SMed Ismail Bennani  (lldb) expr -o -- [SomeClass returnAnObject]
7876a2552a1SMed Ismail Bennani
7886a2552a1SMed Ismail Bennanior using the po alias:
7896a2552a1SMed Ismail Bennani
7906a2552a1SMed Ismail Bennani.. code-block:: shell
7916a2552a1SMed Ismail Bennani
7926a2552a1SMed Ismail Bennani  (lldb) po [SomeClass returnAnObject]
7936a2552a1SMed Ismail Bennani
7946a2552a1SMed Ismail BennaniPrint the dynamic type of the result of an expression
7956a2552a1SMed Ismail Bennani~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
7966a2552a1SMed Ismail Bennani
7976a2552a1SMed Ismail Bennani.. code-block:: shell
7986a2552a1SMed Ismail Bennani
7996a2552a1SMed Ismail Bennani  (gdb) set print object 1
8006a2552a1SMed Ismail Bennani  (gdb) p someCPPObjectPtrOrReference
8016a2552a1SMed Ismail Bennani  (Only works for C++ objects)
8026a2552a1SMed Ismail Bennani
8036a2552a1SMed Ismail Bennani.. code-block:: shell
8046a2552a1SMed Ismail Bennani
8056a2552a1SMed Ismail Bennani  (lldb) expr -d 1 -- [SomeClass returnAnObject]
8066a2552a1SMed Ismail Bennani  (lldb) expr -d 1 -- someCPPObjectPtrOrReference
8076a2552a1SMed Ismail Bennani
8086a2552a1SMed Ismail Bennanior set dynamic type printing to be the default:
8096a2552a1SMed Ismail Bennani
8106a2552a1SMed Ismail Bennani.. code-block:: shell
8116a2552a1SMed Ismail Bennani
8126a2552a1SMed Ismail Bennani  (lldb) settings set target.prefer-dynamic run-target
8136a2552a1SMed Ismail Bennani
8146a2552a1SMed Ismail BennaniCall a function so you can stop at a breakpoint in it
8156a2552a1SMed Ismail Bennani~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
8166a2552a1SMed Ismail Bennani
8176a2552a1SMed Ismail Bennani.. code-block:: shell
8186a2552a1SMed Ismail Bennani
8196a2552a1SMed Ismail Bennani  (gdb) set unwindonsignal 0
8206a2552a1SMed Ismail Bennani  (gdb) p function_with_a_breakpoint()
8216a2552a1SMed Ismail Bennani
8226a2552a1SMed Ismail Bennani.. code-block:: shell
8236a2552a1SMed Ismail Bennani
8246a2552a1SMed Ismail Bennani  (lldb) expr -i 0 -- function_with_a_breakpoint()
8256a2552a1SMed Ismail Bennani
8266a2552a1SMed Ismail BennaniCall a function that crashes, then stop when it does
8276a2552a1SMed Ismail Bennani~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
8286a2552a1SMed Ismail Bennani
8296a2552a1SMed Ismail Bennani.. code-block:: shell
8306a2552a1SMed Ismail Bennani
8316a2552a1SMed Ismail Bennani  (gdb) set unwindonsignal 0
8326a2552a1SMed Ismail Bennani  (gdb) p function_which_crashes()
8336a2552a1SMed Ismail Bennani
8346a2552a1SMed Ismail Bennani.. code-block:: shell
8356a2552a1SMed Ismail Bennani
8366a2552a1SMed Ismail Bennani  (lldb) expr -u 0 -- function_which_crashes()
837edb874b2SJonas Devlieghere
838edb874b2SJonas DevlieghereExamining Thread State
839edb874b2SJonas Devlieghere----------------------
840edb874b2SJonas Devlieghere
8416a2552a1SMed Ismail BennaniList the threads in your program
8426a2552a1SMed Ismail Bennani~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
843edb874b2SJonas Devlieghere
8446a2552a1SMed Ismail Bennani.. code-block:: shell
845edb874b2SJonas Devlieghere
8466a2552a1SMed Ismail Bennani  (gdb) info threads
847edb874b2SJonas Devlieghere
8486a2552a1SMed Ismail Bennani.. code-block:: shell
849edb874b2SJonas Devlieghere
8506a2552a1SMed Ismail Bennani  (lldb) thread list
851edb874b2SJonas Devlieghere
8526a2552a1SMed Ismail BennaniSelect thread ``1`` as the default thread for subsequent commands
8536a2552a1SMed Ismail Bennani~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
854edb874b2SJonas Devlieghere
8556a2552a1SMed Ismail Bennani.. code-block:: shell
856edb874b2SJonas Devlieghere
8576a2552a1SMed Ismail Bennani  (gdb) thread 1
858edb874b2SJonas Devlieghere
8596a2552a1SMed Ismail Bennani.. code-block:: shell
860edb874b2SJonas Devlieghere
8616a2552a1SMed Ismail Bennani  (lldb) thread select 1
8626a2552a1SMed Ismail Bennani  (lldb) t 1
863edb874b2SJonas Devlieghere
8646a2552a1SMed Ismail BennaniShow the stack backtrace for the current thread
8656a2552a1SMed Ismail Bennani~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
866edb874b2SJonas Devlieghere
8676a2552a1SMed Ismail Bennani.. code-block:: shell
868edb874b2SJonas Devlieghere
8696a2552a1SMed Ismail Bennani  (gdb) bt
870edb874b2SJonas Devlieghere
8716a2552a1SMed Ismail Bennani.. code-block:: shell
872edb874b2SJonas Devlieghere
8736a2552a1SMed Ismail Bennani  (lldb) thread backtrace
8746a2552a1SMed Ismail Bennani  (lldb) bt
875edb874b2SJonas Devlieghere
8766a2552a1SMed Ismail BennaniShow the stack backtraces for all threads
8776a2552a1SMed Ismail Bennani~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
878edb874b2SJonas Devlieghere
8796a2552a1SMed Ismail Bennani.. code-block:: shell
880edb874b2SJonas Devlieghere
8816a2552a1SMed Ismail Bennani  (gdb) thread apply all bt
882edb874b2SJonas Devlieghere
8836a2552a1SMed Ismail Bennani.. code-block:: shell
884edb874b2SJonas Devlieghere
8856a2552a1SMed Ismail Bennani  (lldb) thread backtrace all
8866a2552a1SMed Ismail Bennani  (lldb) bt all
887edb874b2SJonas Devlieghere
8886a2552a1SMed Ismail BennaniBacktrace the first five frames of the current thread
8896a2552a1SMed Ismail Bennani~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
890edb874b2SJonas Devlieghere
8916a2552a1SMed Ismail Bennani.. code-block:: shell
892edb874b2SJonas Devlieghere
8936a2552a1SMed Ismail Bennani  (gdb) bt 5
894eea88740SMed Ismail Bennani
8956a2552a1SMed Ismail Bennani.. code-block:: shell
896eea88740SMed Ismail Bennani
8976a2552a1SMed Ismail Bennani  (lldb) thread backtrace -c 5
8986a2552a1SMed Ismail Bennani  (lldb) bt 5
899eea88740SMed Ismail Bennani
9006a2552a1SMed Ismail BennaniSelect a different stack frame by index for the current thread
9016a2552a1SMed Ismail Bennani~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
902eea88740SMed Ismail Bennani
9036a2552a1SMed Ismail Bennani.. code-block:: shell
904eea88740SMed Ismail Bennani
9056a2552a1SMed Ismail Bennani  (gdb) frame 12
906eea88740SMed Ismail Bennani
9076a2552a1SMed Ismail Bennani.. code-block:: shell
908eea88740SMed Ismail Bennani
9096a2552a1SMed Ismail Bennani  (lldb) frame select 12
9106a2552a1SMed Ismail Bennani  (lldb) fr s 12
9116a2552a1SMed Ismail Bennani  (lldb) f 12
9126a2552a1SMed Ismail Bennani
9136a2552a1SMed Ismail BennaniList information about the currently selected frame in the current thread
9146a2552a1SMed Ismail Bennani~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
9156a2552a1SMed Ismail Bennani
9166a2552a1SMed Ismail Bennani.. code-block:: shell
9176a2552a1SMed Ismail Bennani
9186a2552a1SMed Ismail Bennani  (lldb) frame info
9196a2552a1SMed Ismail Bennani
9206a2552a1SMed Ismail BennaniSelect the stack frame that called the current stack frame
9216a2552a1SMed Ismail Bennani~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
9226a2552a1SMed Ismail Bennani
9236a2552a1SMed Ismail Bennani.. code-block:: shell
9246a2552a1SMed Ismail Bennani
9256a2552a1SMed Ismail Bennani  (gdb) up
9266a2552a1SMed Ismail Bennani
9276a2552a1SMed Ismail Bennani.. code-block:: shell
9286a2552a1SMed Ismail Bennani
9296a2552a1SMed Ismail Bennani  (lldb) up
9306a2552a1SMed Ismail Bennani  (lldb) frame select --relative=1
9316a2552a1SMed Ismail Bennani
9326a2552a1SMed Ismail BennaniSelect the stack frame that is called by the current stack frame
9336a2552a1SMed Ismail Bennani~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
9346a2552a1SMed Ismail Bennani
9356a2552a1SMed Ismail Bennani.. code-block:: shell
9366a2552a1SMed Ismail Bennani
9376a2552a1SMed Ismail Bennani  (gdb) down
9386a2552a1SMed Ismail Bennani
9396a2552a1SMed Ismail Bennani.. code-block:: shell
9406a2552a1SMed Ismail Bennani
9416a2552a1SMed Ismail Bennani  (lldb) down
9426a2552a1SMed Ismail Bennani  (lldb) frame select --relative=-1
9436a2552a1SMed Ismail Bennani  (lldb) fr s -r-1
9446a2552a1SMed Ismail Bennani
9456a2552a1SMed Ismail BennaniSelect a different stack frame using a relative offset
9466a2552a1SMed Ismail Bennani~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
9476a2552a1SMed Ismail Bennani
9486a2552a1SMed Ismail Bennani.. code-block:: shell
9496a2552a1SMed Ismail Bennani
9506a2552a1SMed Ismail Bennani  (gdb) up 2
9516a2552a1SMed Ismail Bennani  (gdb) down 3
9526a2552a1SMed Ismail Bennani
9536a2552a1SMed Ismail Bennani.. code-block:: shell
9546a2552a1SMed Ismail Bennani
9556a2552a1SMed Ismail Bennani  (lldb) frame select --relative 2
9566a2552a1SMed Ismail Bennani  (lldb) fr s -r2
9576a2552a1SMed Ismail Bennani
9586a2552a1SMed Ismail Bennani  (lldb) frame select --relative -3
9596a2552a1SMed Ismail Bennani  (lldb) fr s -r-3
9606a2552a1SMed Ismail Bennani
9616a2552a1SMed Ismail Bennanishow the general purpose registers for the current thread
9626a2552a1SMed Ismail Bennani~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
9636a2552a1SMed Ismail Bennani
9646a2552a1SMed Ismail Bennani.. code-block:: shell
9656a2552a1SMed Ismail Bennani
9666a2552a1SMed Ismail Bennani  (gdb) info registers
9676a2552a1SMed Ismail Bennani
9686a2552a1SMed Ismail Bennani.. code-block:: shell
9696a2552a1SMed Ismail Bennani
9706a2552a1SMed Ismail Bennani  (lldb) register read
9716a2552a1SMed Ismail Bennani
9726a2552a1SMed Ismail BennaniWrite a new decimal value ``123`` to the current thread register ``rax``
9736a2552a1SMed Ismail Bennani~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
9746a2552a1SMed Ismail Bennani
9756a2552a1SMed Ismail Bennani.. code-block:: shell
9766a2552a1SMed Ismail Bennani
9776a2552a1SMed Ismail Bennani  (gdb) p $rax = 123
9786a2552a1SMed Ismail Bennani
9796a2552a1SMed Ismail Bennani.. code-block:: shell
9806a2552a1SMed Ismail Bennani
9816a2552a1SMed Ismail Bennani  (lldb) register write rax 123
9826a2552a1SMed Ismail Bennani
9836a2552a1SMed Ismail BennaniSkip 8 bytes ahead of the current program counter (instruction pointer)
9846a2552a1SMed Ismail Bennani~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
9856a2552a1SMed Ismail Bennani
9866a2552a1SMed Ismail BennaniNote that we use backticks to evaluate an expression and insert the scalar result in LLDB.
9876a2552a1SMed Ismail Bennani
9886a2552a1SMed Ismail Bennani
9896a2552a1SMed Ismail Bennani.. code-block:: shell
9906a2552a1SMed Ismail Bennani
9916a2552a1SMed Ismail Bennani  (gdb) jump *$pc+8
9926a2552a1SMed Ismail Bennani
9936a2552a1SMed Ismail Bennani.. code-block:: shell
9946a2552a1SMed Ismail Bennani
9956a2552a1SMed Ismail Bennani  (lldb) register write pc `$pc+8`
9966a2552a1SMed Ismail Bennani
9976a2552a1SMed Ismail BennaniShow the general purpose registers for the current thread formatted as signed decimal
9986a2552a1SMed Ismail Bennani~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
9996a2552a1SMed Ismail Bennani
10006a2552a1SMed Ismail BennaniLLDB tries to use the same format characters as printf(3) when possible. Type "help format" to see the full list of format specifiers.
10016a2552a1SMed Ismail Bennani
10026a2552a1SMed Ismail Bennani.. code-block:: shell
10036a2552a1SMed Ismail Bennani
10046a2552a1SMed Ismail Bennani  (lldb) register read --format i
10056a2552a1SMed Ismail Bennani  (lldb) re r -f i
10066a2552a1SMed Ismail Bennani
10076a2552a1SMed Ismail BennaniLLDB now supports the GDB shorthand format syntax but there can't be space after the command:
10086a2552a1SMed Ismail Bennani
10096a2552a1SMed Ismail Bennani.. code-block:: shell
10106a2552a1SMed Ismail Bennani
10116a2552a1SMed Ismail Bennani  (lldb) register read/d
10126a2552a1SMed Ismail Bennani
10136a2552a1SMed Ismail BennaniShow all registers in all register sets for the current thread
10146a2552a1SMed Ismail Bennani~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
10156a2552a1SMed Ismail Bennani
10166a2552a1SMed Ismail Bennani.. code-block:: shell
10176a2552a1SMed Ismail Bennani
10186a2552a1SMed Ismail Bennani  (gdb) info all-registers
10196a2552a1SMed Ismail Bennani
10206a2552a1SMed Ismail Bennani.. code-block:: shell
10216a2552a1SMed Ismail Bennani
10226a2552a1SMed Ismail Bennani  (lldb) register read --all
10236a2552a1SMed Ismail Bennani  (lldb) re r -a
10246a2552a1SMed Ismail Bennani
10256a2552a1SMed Ismail BennaniShow the values for the registers named ``rax``, ``rsp`` and ``rbp`` in the current thread
10266a2552a1SMed Ismail Bennani~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
10276a2552a1SMed Ismail Bennani
10286a2552a1SMed Ismail Bennani.. code-block:: shell
10296a2552a1SMed Ismail Bennani
10306a2552a1SMed Ismail Bennani  (gdb) info all-registers rax rsp rbp
10316a2552a1SMed Ismail Bennani
10326a2552a1SMed Ismail Bennani.. code-block:: shell
10336a2552a1SMed Ismail Bennani
10346a2552a1SMed Ismail Bennani  (lldb) register read rax rsp rbp
10356a2552a1SMed Ismail Bennani
10366a2552a1SMed Ismail BennaniShow the values for the register named ``rax`` in the current thread formatted as binary
10376a2552a1SMed Ismail Bennani~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
10386a2552a1SMed Ismail Bennani
10396a2552a1SMed Ismail Bennani.. code-block:: shell
10406a2552a1SMed Ismail Bennani
10416a2552a1SMed Ismail Bennani  (gdb) p/t $rax
10426a2552a1SMed Ismail Bennani
10436a2552a1SMed Ismail Bennani.. code-block:: shell
10446a2552a1SMed Ismail Bennani
10456a2552a1SMed Ismail Bennani  (lldb) register read --format binary rax
10466a2552a1SMed Ismail Bennani  (lldb) re r -f b rax
10476a2552a1SMed Ismail Bennani
10486a2552a1SMed Ismail BennaniLLDB now supports the GDB shorthand format syntax but there can't be space after the command
10496a2552a1SMed Ismail Bennani
10506a2552a1SMed Ismail Bennani.. code-block:: shell
10516a2552a1SMed Ismail Bennani
10526a2552a1SMed Ismail Bennani  (lldb) register read/t rax
10536a2552a1SMed Ismail Bennani  (lldb) p/t $rax
10546a2552a1SMed Ismail Bennani
10556a2552a1SMed Ismail BennaniRead memory from address ``0xbffff3c0`` and show 4 hex ``uint32_t`` values
10566a2552a1SMed Ismail Bennani~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
10576a2552a1SMed Ismail Bennani
10586a2552a1SMed Ismail Bennani.. code-block:: shell
10596a2552a1SMed Ismail Bennani
10606a2552a1SMed Ismail Bennani  (gdb) x/4xw 0xbffff3c0
10616a2552a1SMed Ismail Bennani
10626a2552a1SMed Ismail Bennani.. code-block:: shell
10636a2552a1SMed Ismail Bennani
10646a2552a1SMed Ismail Bennani  (lldb) memory read --size 4 --format x --count 4 0xbffff3c0
10656a2552a1SMed Ismail Bennani  (lldb) me r -s4 -fx -c4 0xbffff3c0
10666a2552a1SMed Ismail Bennani  (lldb) x -s4 -fx -c4 0xbffff3c0
10676a2552a1SMed Ismail Bennani
10686a2552a1SMed Ismail BennaniLLDB now supports the GDB shorthand format syntax but there can't be space after the command:
10696a2552a1SMed Ismail Bennani
10706a2552a1SMed Ismail Bennani.. code-block:: shell
10716a2552a1SMed Ismail Bennani
10726a2552a1SMed Ismail Bennani  (lldb) memory read/4xw 0xbffff3c0
10736a2552a1SMed Ismail Bennani  (lldb) x/4xw 0xbffff3c0
10746a2552a1SMed Ismail Bennani  (lldb) memory read --gdb-format 4xw 0xbffff3c0
10756a2552a1SMed Ismail Bennani
10766a2552a1SMed Ismail BennaniRead memory starting at the expression ``argv[0]``
10776a2552a1SMed Ismail Bennani~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
10786a2552a1SMed Ismail Bennani
10796a2552a1SMed Ismail Bennani.. code-block:: shell
10806a2552a1SMed Ismail Bennani
10816a2552a1SMed Ismail Bennani  (gdb) x argv[0]
10826a2552a1SMed Ismail Bennani
10836a2552a1SMed Ismail Bennani.. code-block:: shell
10846a2552a1SMed Ismail Bennani
10856a2552a1SMed Ismail Bennani  (lldb) memory read `argv[0]`
10866a2552a1SMed Ismail Bennani
10876a2552a1SMed Ismail BennaniNOTE: any command can inline a scalar expression result (as long as the target is stopped) using backticks around any expression:
10886a2552a1SMed Ismail Bennani
10896a2552a1SMed Ismail Bennani.. code-block:: shell
10906a2552a1SMed Ismail Bennani
10916a2552a1SMed Ismail Bennani  (lldb) memory read --size `sizeof(int)` `argv[0]`
10926a2552a1SMed Ismail Bennani
10936a2552a1SMed Ismail BennaniRead ``512`` bytes of memory from address ``0xbffff3c0`` and save the results to a local file as text
10946a2552a1SMed Ismail Bennani~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
10956a2552a1SMed Ismail Bennani
10966a2552a1SMed Ismail Bennani.. code-block:: shell
10976a2552a1SMed Ismail Bennani
10986a2552a1SMed Ismail Bennani  (gdb) set logging on
10996a2552a1SMed Ismail Bennani  (gdb) set logging file /tmp/mem.txt
11006a2552a1SMed Ismail Bennani  (gdb) x/512bx 0xbffff3c0
11016a2552a1SMed Ismail Bennani  (gdb) set logging off
11026a2552a1SMed Ismail Bennani
11036a2552a1SMed Ismail Bennani.. code-block:: shell
11046a2552a1SMed Ismail Bennani
11056a2552a1SMed Ismail Bennani  (lldb) memory read --outfile /tmp/mem.txt --count 512 0xbffff3c0
11066a2552a1SMed Ismail Bennani  (lldb) me r -o/tmp/mem.txt -c512 0xbffff3c0
11076a2552a1SMed Ismail Bennani  (lldb) x/512bx -o/tmp/mem.txt 0xbffff3c0
11086a2552a1SMed Ismail Bennani
11096a2552a1SMed Ismail BennaniSave binary memory data starting at ``0x1000`` and ending at ``0x2000`` to a file
11106a2552a1SMed Ismail Bennani~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
11116a2552a1SMed Ismail Bennani
11126a2552a1SMed Ismail Bennani.. code-block:: shell
11136a2552a1SMed Ismail Bennani
11146a2552a1SMed Ismail Bennani  (gdb) dump memory /tmp/mem.bin 0x1000 0x2000
11156a2552a1SMed Ismail Bennani
11166a2552a1SMed Ismail Bennani.. code-block:: shell
11176a2552a1SMed Ismail Bennani
11186a2552a1SMed Ismail Bennani  (lldb) memory read --outfile /tmp/mem.bin --binary 0x1000 0x2000
11196a2552a1SMed Ismail Bennani  (lldb) me r -o /tmp/mem.bin -b 0x1000 0x2000
11206a2552a1SMed Ismail Bennani
11216a2552a1SMed Ismail BennaniGet information about a specific heap allocation (macOS only)
11226a2552a1SMed Ismail Bennani~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
11236a2552a1SMed Ismail Bennani
11246a2552a1SMed Ismail Bennani.. code-block:: shell
11256a2552a1SMed Ismail Bennani
11266a2552a1SMed Ismail Bennani  (gdb) info malloc 0x10010d680
11276a2552a1SMed Ismail Bennani
11286a2552a1SMed Ismail Bennani.. code-block:: shell
11296a2552a1SMed Ismail Bennani
11306a2552a1SMed Ismail Bennani  (lldb) command script import lldb.macosx.heap
11316a2552a1SMed Ismail Bennani  (lldb) process launch --environment MallocStackLogging=1 -- [ARGS]
11326a2552a1SMed Ismail Bennani  (lldb) malloc_info --stack-history 0x10010d680
11336a2552a1SMed Ismail Bennani
11346a2552a1SMed Ismail BennaniGet information about a specific heap allocation and cast the result to any dynamic type that can be deduced (macOS only)
11356a2552a1SMed Ismail Bennani~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
11366a2552a1SMed Ismail Bennani
11376a2552a1SMed Ismail Bennani.. code-block:: shell
11386a2552a1SMed Ismail Bennani
11396a2552a1SMed Ismail Bennani  (lldb) command script import lldb.macosx.heap
11406a2552a1SMed Ismail Bennani  (lldb) malloc_info --type 0x10010d680
11416a2552a1SMed Ismail Bennani
11426a2552a1SMed Ismail BennaniFind all heap blocks that contain a pointer specified by an expression ``EXPR`` (macOS only)
11436a2552a1SMed Ismail Bennani~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
11446a2552a1SMed Ismail Bennani
11456a2552a1SMed Ismail Bennani.. code-block:: shell
11466a2552a1SMed Ismail Bennani
11476a2552a1SMed Ismail Bennani  (lldb) command script import lldb.macosx.heap
11486a2552a1SMed Ismail Bennani  (lldb) ptr_refs EXPR
11496a2552a1SMed Ismail Bennani
11506a2552a1SMed Ismail BennaniFind all heap blocks that contain a C string anywhere in the block (macOS only)
11516a2552a1SMed Ismail Bennani~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
11526a2552a1SMed Ismail Bennani
11536a2552a1SMed Ismail Bennani.. code-block:: shell
11546a2552a1SMed Ismail Bennani
11556a2552a1SMed Ismail Bennani  (lldb) command script import lldb.macosx.heap
11566a2552a1SMed Ismail Bennani  (lldb) cstr_refs CSTRING
11576a2552a1SMed Ismail Bennani
11586a2552a1SMed Ismail BennaniDisassemble the current function for the current frame
11596a2552a1SMed Ismail Bennani~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
11606a2552a1SMed Ismail Bennani
11616a2552a1SMed Ismail Bennani.. code-block:: shell
11626a2552a1SMed Ismail Bennani
11636a2552a1SMed Ismail Bennani  (gdb) disassemble
11646a2552a1SMed Ismail Bennani
11656a2552a1SMed Ismail Bennani.. code-block:: shell
11666a2552a1SMed Ismail Bennani
11676a2552a1SMed Ismail Bennani  (lldb) disassemble --frame
11686a2552a1SMed Ismail Bennani  (lldb) di -f
11696a2552a1SMed Ismail Bennani
11706a2552a1SMed Ismail BennaniDisassemble any functions named main
11716a2552a1SMed Ismail Bennani~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
11726a2552a1SMed Ismail Bennani
11736a2552a1SMed Ismail Bennani.. code-block:: shell
11746a2552a1SMed Ismail Bennani
11756a2552a1SMed Ismail Bennani  (gdb) disassemble main
11766a2552a1SMed Ismail Bennani
11776a2552a1SMed Ismail Bennani
11786a2552a1SMed Ismail Bennani.. code-block:: shell
11796a2552a1SMed Ismail Bennani
11806a2552a1SMed Ismail Bennani  (lldb) disassemble --name main
11816a2552a1SMed Ismail Bennani  (lldb) di -n main
11826a2552a1SMed Ismail Bennani
11836a2552a1SMed Ismail BennaniDisassemble an address range
11846a2552a1SMed Ismail Bennani~~~~~~~~~~~~~~~~~~~~~~~~~~~~
11856a2552a1SMed Ismail Bennani
11866a2552a1SMed Ismail Bennani.. code-block:: shell
11876a2552a1SMed Ismail Bennani
11886a2552a1SMed Ismail Bennani  (gdb) disassemble 0x1eb8 0x1ec3
11896a2552a1SMed Ismail Bennani
11906a2552a1SMed Ismail Bennani.. code-block:: shell
11916a2552a1SMed Ismail Bennani
11926a2552a1SMed Ismail Bennani  (lldb) disassemble --start-address 0x1eb8 --end-address 0x1ec3
11936a2552a1SMed Ismail Bennani  (lldb) di -s 0x1eb8 -e 0x1ec3
11946a2552a1SMed Ismail Bennani
11956a2552a1SMed Ismail BennaniDisassemble ``20`` instructions from a given address
11966a2552a1SMed Ismail Bennani~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
11976a2552a1SMed Ismail Bennani
11986a2552a1SMed Ismail Bennani.. code-block:: shell
11996a2552a1SMed Ismail Bennani
12006a2552a1SMed Ismail Bennani  (gdb) x/20i 0x1eb8
12016a2552a1SMed Ismail Bennani
12026a2552a1SMed Ismail Bennani.. code-block:: shell
12036a2552a1SMed Ismail Bennani
12046a2552a1SMed Ismail Bennani  (lldb) disassemble --start-address 0x1eb8 --count 20
12056a2552a1SMed Ismail Bennani  (lldb) di -s 0x1eb8 -c 20
12066a2552a1SMed Ismail Bennani
12076a2552a1SMed Ismail BennaniShow mixed source and disassembly for the current function for the current frame
12086a2552a1SMed Ismail Bennani~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
12096a2552a1SMed Ismail Bennani
12106a2552a1SMed Ismail Bennani.. code-block:: shell
12116a2552a1SMed Ismail Bennani
12126a2552a1SMed Ismail Bennani  (lldb) disassemble --frame --mixed
12136a2552a1SMed Ismail Bennani  (lldb) di -f -m
12146a2552a1SMed Ismail Bennani
12156a2552a1SMed Ismail BennaniDisassemble the current function for the current frame and show the opcode bytes
12166a2552a1SMed Ismail Bennani~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
12176a2552a1SMed Ismail Bennani
12186a2552a1SMed Ismail Bennani.. code-block:: shell
12196a2552a1SMed Ismail Bennani
12206a2552a1SMed Ismail Bennani  (lldb) disassemble --frame --bytes
12216a2552a1SMed Ismail Bennani  (lldb) di -f -b
12226a2552a1SMed Ismail Bennani
12236a2552a1SMed Ismail BennaniDisassemble the current source line for the current frame
12246a2552a1SMed Ismail Bennani~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
12256a2552a1SMed Ismail Bennani
12266a2552a1SMed Ismail Bennani.. code-block:: shell
12276a2552a1SMed Ismail Bennani
12286a2552a1SMed Ismail Bennani  (lldb) disassemble --line
12296a2552a1SMed Ismail Bennani  (lldb) di -l
1230edb874b2SJonas Devlieghere
1231edb874b2SJonas DevlieghereExecutable and Shared Library Query Commands
1232edb874b2SJonas Devlieghere--------------------------------------------
1233edb874b2SJonas Devlieghere
12346a2552a1SMed Ismail BennaniList the main executable and all dependent shared libraries
12356a2552a1SMed Ismail Bennani~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1236edb874b2SJonas Devlieghere
12376a2552a1SMed Ismail Bennani.. code-block:: shell
1238edb874b2SJonas Devlieghere
12396a2552a1SMed Ismail Bennani  (gdb) info shared
1240edb874b2SJonas Devlieghere
12416a2552a1SMed Ismail Bennani.. code-block:: shell
1242edb874b2SJonas Devlieghere
12436a2552a1SMed Ismail Bennani  (lldb) image list
12446a2552a1SMed Ismail Bennani
12456a2552a1SMed Ismail BennaniLook up information for a raw address in the executable or any shared libraries
12466a2552a1SMed Ismail Bennani~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
12476a2552a1SMed Ismail Bennani
12486a2552a1SMed Ismail Bennani.. code-block:: shell
12496a2552a1SMed Ismail Bennani
12506a2552a1SMed Ismail Bennani  (gdb) info symbol 0x1ec4
12516a2552a1SMed Ismail Bennani
12526a2552a1SMed Ismail Bennani.. code-block:: shell
12536a2552a1SMed Ismail Bennani
12546a2552a1SMed Ismail Bennani  (lldb) image lookup --address 0x1ec4
12556a2552a1SMed Ismail Bennani  (lldb) im loo -a 0x1ec4
12566a2552a1SMed Ismail Bennani
12576a2552a1SMed Ismail BennaniLook up functions matching a regular expression in a binary
12586a2552a1SMed Ismail Bennani~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
12596a2552a1SMed Ismail Bennani
12606a2552a1SMed Ismail Bennani.. code-block:: shell
12616a2552a1SMed Ismail Bennani
12626a2552a1SMed Ismail Bennani  (gdb) info function <FUNC_REGEX>
12636a2552a1SMed Ismail Bennani
1264edb874b2SJonas DevlieghereThis one finds debug symbols:
1265edb874b2SJonas Devlieghere
12666a2552a1SMed Ismail Bennani.. code-block:: shell
12676a2552a1SMed Ismail Bennani
12686a2552a1SMed Ismail Bennani  (lldb) image lookup -r -n <FUNC_REGEX>
12696a2552a1SMed Ismail Bennani
12706a2552a1SMed Ismail BennaniThis one finds non-debug symbols:
12716a2552a1SMed Ismail Bennani
12726a2552a1SMed Ismail Bennani.. code-block:: shell
12736a2552a1SMed Ismail Bennani
12746a2552a1SMed Ismail Bennani  (lldb) image lookup -r -s <FUNC_REGEX>
12756a2552a1SMed Ismail Bennani
12766a2552a1SMed Ismail BennaniProvide a list of binaries as arguments to limit the search.
12776a2552a1SMed Ismail Bennani
12786a2552a1SMed Ismail BennaniFind full source line information
12796a2552a1SMed Ismail Bennani~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
12806a2552a1SMed Ismail Bennani
12816a2552a1SMed Ismail Bennani.. code-block:: shell
12826a2552a1SMed Ismail Bennani
12836a2552a1SMed Ismail Bennani  (gdb) info line 0x1ec4
12846a2552a1SMed Ismail Bennani
1285edb874b2SJonas DevlieghereThis one is a bit messy at present. Do:
1286edb874b2SJonas Devlieghere
12876a2552a1SMed Ismail Bennani.. code-block:: shell
1288edb874b2SJonas Devlieghere
12896a2552a1SMed Ismail Bennani  (lldb) image lookup -v --address 0x1ec4
1290edb874b2SJonas Devlieghere
12916a2552a1SMed Ismail Bennaniand look for the LineEntry line, which will have the full source path and line range information.
1292edb874b2SJonas Devlieghere
12936a2552a1SMed Ismail BennaniLook up information for an address in ``a.out`` only
12946a2552a1SMed Ismail Bennani~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1295edb874b2SJonas Devlieghere
12966a2552a1SMed Ismail Bennani.. code-block:: shell
1297edb874b2SJonas Devlieghere
12986a2552a1SMed Ismail Bennani  (lldb) image lookup --address 0x1ec4 a.out
12996a2552a1SMed Ismail Bennani  (lldb) im loo -a 0x1ec4 a.out
1300edb874b2SJonas Devlieghere
13016a2552a1SMed Ismail BennaniLook up information for for a type ``Point`` by name
13026a2552a1SMed Ismail Bennani~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
13036a2552a1SMed Ismail Bennani
13046a2552a1SMed Ismail Bennani.. code-block:: shell
13056a2552a1SMed Ismail Bennani
13066a2552a1SMed Ismail Bennani  (gdb) ptype Point
13076a2552a1SMed Ismail Bennani
13086a2552a1SMed Ismail Bennani.. code-block:: shell
13096a2552a1SMed Ismail Bennani
13106a2552a1SMed Ismail Bennani  (lldb) image lookup --type Point
13116a2552a1SMed Ismail Bennani  (lldb) im loo -t Point
13126a2552a1SMed Ismail Bennani
13136a2552a1SMed Ismail BennaniDump all sections from the main executable and any shared libraries
13146a2552a1SMed Ismail Bennani~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
13156a2552a1SMed Ismail Bennani
13166a2552a1SMed Ismail Bennani.. code-block:: shell
13176a2552a1SMed Ismail Bennani
13186a2552a1SMed Ismail Bennani  (gdb) maintenance info sections
13196a2552a1SMed Ismail Bennani
13206a2552a1SMed Ismail Bennani.. code-block:: shell
13216a2552a1SMed Ismail Bennani
13226a2552a1SMed Ismail Bennani  (lldb) image dump sections
13236a2552a1SMed Ismail Bennani
13246a2552a1SMed Ismail BennaniDump all sections in the ``a.out`` module
13256a2552a1SMed Ismail Bennani~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
13266a2552a1SMed Ismail Bennani
13276a2552a1SMed Ismail Bennani.. code-block:: shell
13286a2552a1SMed Ismail Bennani
13296a2552a1SMed Ismail Bennani  (lldb) image dump sections a.out
13306a2552a1SMed Ismail Bennani
13316a2552a1SMed Ismail BennaniDump all symbols from the main executable and any shared libraries
13326a2552a1SMed Ismail Bennani~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
13336a2552a1SMed Ismail Bennani
13346a2552a1SMed Ismail Bennani.. code-block:: shell
13356a2552a1SMed Ismail Bennani
13366a2552a1SMed Ismail Bennani  (lldb) image dump symtab
13376a2552a1SMed Ismail Bennani
13386a2552a1SMed Ismail BennaniDump all symbols in ``a.out`` and ``liba.so``
13396a2552a1SMed Ismail Bennani~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
13406a2552a1SMed Ismail Bennani
13416a2552a1SMed Ismail Bennani.. code-block:: shell
13426a2552a1SMed Ismail Bennani
13436a2552a1SMed Ismail Bennani  (lldb) image dump symtab a.out liba.so
1344edb874b2SJonas Devlieghere
1345edb874b2SJonas DevlieghereMiscellaneous
1346edb874b2SJonas Devlieghere-------------
1347edb874b2SJonas Devlieghere
13486a2552a1SMed Ismail BennaniSearch command help for a keyword
13496a2552a1SMed Ismail Bennani~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1350edb874b2SJonas Devlieghere
13516a2552a1SMed Ismail Bennani.. code-block:: shell
1352edb874b2SJonas Devlieghere
13536a2552a1SMed Ismail Bennani  (gdb) apropos keyword
1354edb874b2SJonas Devlieghere
13556a2552a1SMed Ismail Bennani.. code-block:: shell
1356edb874b2SJonas Devlieghere
13576a2552a1SMed Ismail Bennani  (lldb) apropos keyword
1358edb874b2SJonas Devlieghere
13596a2552a1SMed Ismail BennaniEcho text to the screen
13606a2552a1SMed Ismail Bennani~~~~~~~~~~~~~~~~~~~~~~~
1361edb874b2SJonas Devlieghere
13626a2552a1SMed Ismail Bennani.. code-block:: shell
13636a2552a1SMed Ismail Bennani
13646a2552a1SMed Ismail Bennani  (gdb) echo Here is some text\n
13656a2552a1SMed Ismail Bennani
13666a2552a1SMed Ismail Bennani.. code-block:: shell
13676a2552a1SMed Ismail Bennani
13686a2552a1SMed Ismail Bennani  (lldb) script print "Here is some text"
13696a2552a1SMed Ismail Bennani
13706a2552a1SMed Ismail BennaniRemap source file pathnames for the debug session
13716a2552a1SMed Ismail Bennani~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
13726a2552a1SMed Ismail Bennani
13736a2552a1SMed Ismail BennaniIf your source files are no longer located in the same location as when the
13746a2552a1SMed Ismail Bennaniprogram was built (for example, if the program was built on a different
13756a2552a1SMed Ismail Bennanicomputer) you need to tell the debugger how to find the sources at their local
13766a2552a1SMed Ismail Bennanifile path instead of the build system's file path.
13776a2552a1SMed Ismail Bennani
13786a2552a1SMed Ismail Bennani.. code-block:: shell
13796a2552a1SMed Ismail Bennani
13806a2552a1SMed Ismail Bennani  (gdb) set pathname-substitutions /buildbot/path /my/path
13816a2552a1SMed Ismail Bennani
13826a2552a1SMed Ismail Bennani.. code-block:: shell
13836a2552a1SMed Ismail Bennani
13846a2552a1SMed Ismail Bennani  (lldb) settings set target.source-map /buildbot/path /my/path
13856a2552a1SMed Ismail Bennani
13866a2552a1SMed Ismail BennaniSupply a catchall directory to search for source files in.
13876a2552a1SMed Ismail Bennani
13886a2552a1SMed Ismail Bennani.. code-block:: shell
13896a2552a1SMed Ismail Bennani
13906a2552a1SMed Ismail Bennani  (gdb) directory /my/path
1391