私が知る限り、lldb
は、ブレークポイントがヒットしたときの自動コマンド実行をサポートしています(gdb
のcommands
に似ています)。"breakpoint command add"はAndroidスタジオのLLDBコマンドラインでは機能しません
Manualが、それはこのように動作するはずの言葉:
(lldb) breakpoint command add 1.1
Enter your debugger command(s). Type 'DONE' to end.
> bt
> DONE
この1出力すべきバックトレースブレークポイント1.1がヒットするたびに。あなたが見ることができるように、デバッガがコマンドを入力するために私を提供していません
(lldb) breakpoint list
...
8: file = '/home/user/src_file.cpp', line = 2683, exact_match = 0, locations = 1, resolved = 1, hit count = 1
8.1: where = libdroid_shared.so`(anonymous namespace)::onDbgThreadResume() + 20 at src_file.cpp:2683, address = 0x0000007f9cad6740, resolved, hit count = 1
(lldb) breakpoint command add 8.1
(lldb) breakpoint command add 8.1
(lldb)
:私はNDKバージョン12bがAndroidのメーカー2.1.2にLLDBコンソールで同じことをやろうとしています。 breakpoint commmand add
行の後にEnterキーを押すと空行だけが出力され、コマンドラインプロンプトは表示されません。
違うファイル、ブレークポイント、アプリで32ビットと64ビットの両方のデバッガを試しましたが、動作しません。 gdb
のcommands
と同じことが完全に機能します。
私の質問:
- が、これはAndroidのメーカーやlldbにおける既知のバグです、回避策はありますか?
- これはAndroidスタジオのUIのバグですか? Android Studioなしでコマンドラインインターフェイスだけのlldbを使用できますか?それ、どうやったら出来るの?
をありがとうございました提案。これは実際に何か変わります。この後、 'breakpoint list'の中で、ブレークポイント8.1には'/tmp/lldb.cmds'のコマンドがあります。しかし、実行されていないようですが、ブレークポイントがヒットしたときに出力に何も表示されません。 私のファイルの内容は単に 'bt'です。大丈夫ですか?私はブレークポイントが当たったたびにバックトレースが印刷されることを期待しています。 Android StudioのLLDBの実装は非常に面倒ですが、おそらくまだ間違っていますか? –
ブレークポイントコマンドファイルに副作用のあるものを実行することができますか(たとえば、別のブレークポイントを設定するなど)。次に、コマンドが実行されたかどうかをブレークポイントに当てはめることができます。彼らが持っている場合(これは私が訴えるでしょう)、これはAndroidスタジオでlldb出力を収集する際のバグのようです。 –
私はそこに「続行」を追加しようとしましたが、明らかに無視されました。少なくとも私のプログラムは継続されるのではなく、ブレークポイントで停止されていました。 –