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 で使用を許諾されています。
参考文献
-
LLDB Homepage
http://lldb.llvm.org/ -
LLVM Developer Policy – LLVM 6 Documentation (License)
http://llvm.org/docs/DeveloperPolicy.html#license