lldb で入力できるコマンドをまとめました。

lldb のコマンド一覧(英語)は help コマンドで表示できます。 日本語訳は新規に書き起こしました。

$ # macOS Sierra (10.12) + Homebrew
$ lldb
(lldb) help (全コマンドの概要を表示)
...
(lldb) help watchpoint set (watchpoint set の説明を表示)
...

コマンド一覧

コマンド 説明
apropos 指定したキーワードに関連したデバッガコマンドを列挙します。
List debugger commands related to a word or subject.
breakpoint ブレークポイントを操作するためのコマンドです。help b で短縮コマンドを表示できます。
Commands for operating on breakpoints (see 'help b' for shorthand.)
bugreport ドメイン依存のバグレポートを作成するためのコマンドです。
Commands for creating domain-specific bug reports.
command LLDB のカスタムコマンドを管理するためのコマンドです。
Commands for managing custom LLDB commands.
disassemble 現在のターゲットのうち、引数で指定された箇所を逆アセンブルします。指定がない場合、現在のスレッドとスタックフレームで指定される関数を逆アセンブルします。
Disassemble specified instructions in the current target. Defaults to the current function for the current thread and stack frame.
expression 現在のスレッド上で式を評価します。戻り値は LLDB の標準フォーマットで表示されます。
Evaluate an expression on the current thread. Displays any returned value with LLDB's default formatting.
frame 現在のスレッド上でスタックフレームを選択または評価するためのコマンドです。
Commands for selecting and examing the current thread's stack frames.
gdb-remote リモートの GDB サーバーを経由してプロセスに接続します。ホスト名が指定されない場合は localhost に接続します。
Connect to a process via remote GDB server. If no host is specifed, localhost is assumed.
gui curses GUI モードを起動します。
Switch into the curses based GUI mode.
help 全デバッガコマンドの一覧を表示します。または、特定のコマンドの詳細を表示します。
Show a list of all debugger commands, or give details about a specific command.
kdp-remote リモートの KDP (Kernel Debugging Protocol) サーバーを経由してプロセスに接続します。UDP ポートが指定されない場合は 41139 番に接続します。
Connect to a process via remote KDP server. If no UDP port is specified, port 41139 is assumed.
language 各種のプログラミング言語に特有のコマンドです。
Commands specific to a source language.
log LLDB の内部ログを制御するためのコマンドです。
Commands controlling LLDB internal logging.
memory 現在のターゲットプロセス上のメモリを操作するためのコマンドです。
Commands for operating on memory in the current target process.
platform プラットフォームを作成、または管理するためのコマンドです。
Commands to manage and create platforms.
plugin LLDB プラグインを管理するためのコマンドです。
Commands for managing LLDB plugins.
process 現在のプラットフォーム上で各種プロセスと通信するためのコマンドです。
Commands for interacting with processes on the current platform.
quit LLDB デバッガを終了します。
Quit the LLDB debugger.
register 現在のスレッドとスタックフレームでレジスタにアクセスするためのコマンドです。
Commands to access registers for the current thread and stack frame.
script 引数に指定されたスクリプトを実行し、結果を表示します。スクリプトの指定がない場合は対話モードを起動します。
Invoke the script interpreter with provided code and display any results. Start the interactive interpreter if no code is supplied.
settings LLDB の設定を管理するためのコマンドです。
Commands for managing LLDB settings.
source 現在のターゲットプロセスのデバッグ情報からソースコードの情報を取得するコマンドです。
Commands for examining source code described by debug information for the current target process.
target デバッガのターゲットを操作するためのコマンドです。
Commands for operating on debugger targets.
thread 現在のターゲットプロセス上のスレッドを操作するためのコマンドです。
Commands for operating on one or more threads in the current process.
type 型システムを操作するためのコマンドです。
Commands for operating on the type system.
version LLDB デバッガのバージョンを表示します。
Show the LLDB debugger version.
watchpoint watchpoint を 操作するためのコマンドです。
Commands for operating on watchpoints.
_regexp-attach ID または名前を指定してプロセスにアタッチします。
Attach to process by ID or name.
_regexp-break ブレークポイントを設定します。複数の構文が使用できます。
Set a breakpoint using one of several shorthand formats.
_regexp-bt 現在のスレッドのコールスタックを表示します。オプションで最大数を指定することができます。引数に all を指定するとすべてのスレッドのコールスタックを表示します。
Show the current thread's call stack. Any numeric argument displays at most that many frames. The argument 'all' displays all threads.
_regexp-display プログラムが停止する毎に指定した式を評価します。help target stop-hook を参照してください。
Evaluate an expression at every stop (see 'help target stop-hook'.)
_regexp-down 現在位置から先のスタックフレームへ移動します。引数に移動するフレーム数を指定することができます。デフォルトは 1 フレームです。
Select a newer stack frame. Defaults to moving one frame, a numeric argument can specify an arbitrary number.
_regexp-env 環境変数を表示または変更するためのコマンドです。
Shorthand for viewing and setting environment variables.
_regexp-jump プログラムカウンタ (PC) の値を新しいアドレスに変更します。
Set the program counter to a new address.
_regexp-list 引数の指定にしたがい、ソースコードを表示します。複数の構文が使用できます。
List relevant source code using one of several shorthand formats.
_regexp-tbreak 一度だけ停止するブレークポイントを設定します。複数の構文が使用できます。
Set a one-shot breakpoint using one of several shorthand formats.
_regexp-undisplay プログラム停止毎の式の評価を解除します。式番号は stop-hook のインデックスで指定します。
Stop displaying expression at every stop (specified by stop-hook index.)
_regexp-up 過去のスタックフレームへ移動します。引数に移動するフレーム数を指定することができます。デフォルトは 1 フレームです。
Select an older stack frame. Defaults to moving one frame, a numeric argument can specify an arbitrary number.

短縮コマンド一覧

コマンド 説明
add-dsym ターゲットに含まれるモジュールのデバッグシンボルファイルを読み込みます。シンボルファイルのパスを指定するか、オプションを使ってシンボルをダウンロードするモジュールを指定します。
(target symbols add)

Add a debug symbol file to one of the target's current modules by specifying a path to a debug symbols file, or using the options to specify a module to download symbols for.
attach ID または名前を指定してプロセスにアタッチします。
(_regexp-attach )

Attach to process by ID or name.
b ブレークポイントを設定します。複数の構文が使用できます。
(_regexp-break )

Set a breakpoint using one of several shorthand formats.
bt 現在のスレッドのコールスタックを表示します。オプションで最大数を指定することができます。引数に all を指定するとすべてのスレッドのコールスタックを表示します。
(_regexp-bt )

Show the current thread's call stack. Any numeric argument displays at most that many frames. The argument 'all' displays all threads.
c 現在のプロセスのすべてのスレッドの実行を再開します。
(process continue)

Continue execution of all threads in the current process.
call 現在のスレッド上で式を評価します。戻り値は LLDB の標準フォーマットで表示されます。
(expression --)

Evaluate an expression on the current thread. Displays any returned value with LLDB's default formatting.
continue 現在のプロセスのすべてのスレッドの実行を再開します。
(process continue)

Continue execution of all threads in the current process.
detach 現在のターゲットプロセスとの接続を解除します。
(process detach)

Detach from the current target process.
di 現在のターゲットのうち、引数で指定された箇所を逆アセンブルします。指定がない場合、現在のスレッドとスタックフレームで指定される関数を逆アセンブルします。
(disassemble)

Disassemble specified instructions in the current target. Defaults to the current function for the current thread and stack frame.
dis 現在のターゲットのうち、引数で指定された箇所を逆アセンブルします。指定がない場合、現在のスレッドとスタックフレームで指定される関数を逆アセンブルします。
(disassemble)

Disassemble specified instructions in the current target. Defaults to the current function for the current thread and stack frame.
display プログラムが停止する毎に指定した式を評価します。help target stop-hook を参照してください。
(_regexp-display )

Evaluate an expression at every stop (see 'help target stop-hook'.)
down 現在位置から先のスタックフレームへ移動します。引数に移動するフレーム数を指定することができます。デフォルトは 1 フレームです。
(_regexp-down )

Select a newer stack frame. Defaults to moving one frame, a numeric argument can specify an arbitrary number.
env 環境変数を表示または変更するためのコマンドです。
(_regexp-env )

Shorthand for viewing and setting environment variables.
exit LLDB デバッガを終了します。
(quit)

Quit the LLDB debugger.
f 番号を指定して、現在のスレッドのスタックフレームを選択します。thread backtrace を参照してください。
(frame select)

Select the current stack frame by index from within the current thread (see 'thread backtrace'.)
file 引数で指定した実行可能ファイルをターゲットとして設定します。
(target create)

Create a target using the argument as the main executable.
finish 現在のスタックフレームの実行を完了し、関数の処理が戻った段階で停止します。指定がない場合、現在のスレッドで実行します。
(thread step-out)

Finish executing the current stack frame and stop after returning. Defaults to current thread unless specified.
image デバッグターゲットに含まれるモジュールの情報を取得するコマンドです。
(target modules)

Commands for accessing information for one or more target modules.
j プログラムカウンタ (PC) の値を新しいアドレスに変更します。
(_regexp-jump )

Set the program counter to a new address.
jump プログラムカウンタ (PC) の値を新しいアドレスに変更します。
(_regexp-jump )

Set the program counter to a new address.
kill 現在のターゲットプロセスを終了します。
(process kill)

Terminate the current target process.
l 引数の指定にしたがい、ソースコードを表示します。複数の構文が使用できます。
(_regexp-list )

List relevant source code using one of several shorthand formats.
list 引数の指定にしたがい、ソースコードを表示します。複数の構文が使用できます。
(_regexp-list )

List relevant source code using one of several shorthand formats.
n 現在の位置から 1 行分だけ処理を進めます。関数はステップ・オーバーし、次の行で停止します。指定がない場合、現在のスレッドで実行します。
(thread step-over)

Source level single step, stepping over calls. Defaults to current thread unless specified.
next 現在の位置から 1 行分だけ処理を進めます。関数はステップ・オーバーし、次の行で停止します。指定がない場合、現在のスレッドで実行します。
(thread step-over)

Source level single step, stepping over calls. Defaults to current thread unless specified.
nexti 現在の位置から 1 CPU 命令分だけ処理を進めます。関数はステップ・オーバーし、次の命令で停止します。指定がない場合、現在のスレッドで実行します。
(thread step-inst-over)

Instruction level single step, stepping over calls. Defaults to current thread unless specified.
ni 現在の位置から 1 CPU 命令分だけ処理を進めます。関数はステップ・オーバーし、次の命令で停止します。指定がない場合、現在のスレッドで実行します。
(thread step-inst-over)

Instruction level single step, stepping over calls. Defaults to current thread unless specified.
p 現在のスレッド上で式を評価します。戻り値は LLDB の標準フォーマットで表示されます。
(expression --)

Evaluate an expression on the current thread. Displays any returned value with LLDB's default formatting.
parray 現在のスレッド上で式を評価します。戻り値は LLDB の標準フォーマットで表示されます。
(expression -Z %1 --)

Evaluate an expression on the current thread. Displays any returned value with LLDB's default formatting.
po 現在のスレッド上で式を評価します。戻り値の型にあわせたフォーマットで表示します。
(expression -O --)

Evaluate an expression on the current thread. Displays any returned value with formatting controlled by the type's author.
poarray 現在のスレッド上で式を評価します。戻り値は LLDB の標準フォーマットで表示されます。
(expression -O -Z %1 --)

Evaluate an expression on the current thread. Displays any returned value with LLDB's default formatting.
print 現在のスレッド上で式を評価します。戻り値は LLDB の標準フォーマットで表示されます。
(expression --)

Evaluate an expression on the current thread. Displays any returned value with LLDB's default formatting.
q LLDB デバッガを終了します。
(quit)

Quit the LLDB debugger.
r デバッガ上で実行可能ファイルを起動します。
(process launch -X true --)

Launch the executable in the debugger.
rbreak 実行可能ファイル上にブレークポイントを設定します。
(breakpoint set -r %1)

Sets a breakpoint or set of breakpoints in the executable.
repl 現在のスレッド上で式を評価します。戻り値は LLDB の標準フォーマットで表示されます。
(expression -r --)

Evaluate an expression on the current thread. Displays any returned value with LLDB's default formatting.
run デバッガ上で実行可能ファイルを起動します。
(process launch -X true --)

Launch the executable in the debugger.
s 現在の位置から 1 行分だけ処理を進めます。関数がある場合はステップ・インします。指定がない場合、現在のスレッドで実行します。
(thread step-in)

Source level single step, stepping into calls. Defaults to current thread unless specified.
si 現在の位置から 1 CPU 命令分だけ処理を進めます。関数がある場合はステップ・インします。指定がない場合、現在のスレッドで実行します。
(thread step-inst)

Instruction level single step, stepping into calls. Defaults to current thread unless specified.
sif 現在のブロックを実行し、指定した名前の関数にステップ・インした段階で停止します。
(thread step-in -e block -t %1)

Step through the current block, stopping if you step directly into a function whose name matches the TargetFunctionName.
step 現在の位置から 1 行分だけ処理を進めます。関数がある場合はステップ・インします。指定がない場合、現在のスレッドで実行します。
(thread step-in)

Source level single step, stepping into calls. Defaults to current thread unless specified.
stepi 現在の位置から 1 CPU 命令分だけ処理を進めます。関数がある場合はステップ・インします。指定がない場合、現在のスレッドで実行します。
(thread step-inst)

Instruction level single step, stepping into calls. Defaults to current thread unless specified.
t 現在選択しているスレッドを変更します。
(thread select)

Change the currently selected thread.
tbreak 一度だけ停止するブレークポイントを設定します。複数の構文が使用できます。
(_regexp-tbreak )

Set a one-shot breakpoint using one of several shorthand formats.
undisplay プログラム停止毎の式の評価を解除します。式番号は stop-hook のインデックスで指定します。
(_regexp-undisplay )

Stop displaying expression at every stop (specified by stop-hook index.)
up 過去のスタックフレームへ移動します。引数に移動するフレーム数を指定することができます。デフォルトは 1 フレームです。
(_regexp-up )

Select an older stack frame. Defaults to moving one frame, a numeric argument can specify an arbitrary number.
x 現在のターゲットプロセスからメモリを読み取ります。
(memory read)

Read from the memory of the current target process.

ライセンス

本記事では LLDB から相当量の記述をコピーしています。 これらの記述内容は、LLDB Homepage の記述に基づき University of Illinois/NCSA Open Source License で使用を許諾されています。

参考文献