はい、これを行う正しい方法は、Python スクリプト インターフェイスを使用することです。これを可能にするために (というか、可能にするために... 不十分に)、デバッガーのコマンド言語に十分なフロー制御と実行ロジックを詰め込むという gdb のアプローチを回避するという意図的な決定がありました。そのアプローチの代わりに、タスクを達成するために Python を使用する必要があるという障壁は低くなりますが、Python の非常に使いやすいインターフェースを介して、デバッガーのすべての機能を利用できます。lldb はスクリプト言語を Python に任せ、Python から使いやすいクリーンで強力な API を提供することに専念しています。
しかし、ここであなたの目標に取り組むために、stop-disassembly-count
設定があなたが必要とすることをしないのはなぜですか? 実際、~/.lldbinit
デフォルト設定のstop-disassembly-display
.
(lldb) settings show stop-disassembly-count
stop-disassembly-count (int) = 4
(lldb) settings show stop-disassembly-display
stop-disassembly-display (enum) = no-source
(lldb)
lldb のデフォルトの動作は、プログラムをステップ実行しているときに何らかのコンテキストを表示することです。ソース コードが利用可能な場合は、ステップ実行中のソースが表示されます。ソースがない場合は、実行しようとしているアセンブリ命令が表示されます。デバッグ情報がある (デバッガーがファイル番号と行番号を認識している) が、ソース コードが利用できない (または別のパスにある) 場合、小さなバグがあります。この場合。ユーザーは引き続きソース レベルで操作している (命令レベルのステッピングのandの代わりにs
and to step を使用) ため、lldb はこのインスタンスではコンテキストを表示せず、ソース ファイル名と行番号のみを表示する必要があります。n
si
ni