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