2017-04-13 12 views
0

this questionと同様に、LLDBを使用してロードするライブラリをデバッグする方法をctypesとしますか?LLDBを使用してctypesをロードしたデバッグライブラリ

私は

$ lldb -- python myscript.py 

とデバッガでそれを起動することができます。しかし、私はCライブラリ内の特定の機能にブレークポイントを設定したいと思います。次の書き込みに失敗します:

(lldb) breakpoint set -f fft.c -l 78 
Breakpoint 1: no locations (pending). 
WARNING: Unable to resolve breakpoint to any actual locations.  

実行中image listにはマイライブラリが表示されません。ライブラリをロードするようにLLDBに指示するにはどうすればよいですか?

また、ロードされると、LLDBがデバッグシンボルをロードしたことをどのように確認できますか?

答えて

1

おそらくfft.cのコードを含むライブラリをロードした時点でプログラムを実行していないでしょうか?

これは、lldbの問題ではありません。新しい共用ライブラリーがロードされるたびに、lldbはすべての既存のブレークポイントを検査して、新しい共用ライブラリーに一致するものがあるかどうかを調べます。したがって、ブレークポイントを設定してから実行することができます。ライブラリがロードされると、新しい場所が追加されます。それが本当でない場合は、http://bugreporter.apple.comでバグを報告してください。

lldbは、実際にこれがコマンドラインで発生したことを通知します。

(lldb) settings set target.process.stop-on-sharedlibrary-events true 

をしかし、それはブレークポイントマッチのためにすべて新しくロードされたライブラリをスキャンするlldbを取得する必要はありません。

あなたが設定することにより、希望する場合は、共有ライブラリをロードする見ることができます。

+0

正しいですが、ライブラリはまだライブラリをロードするために実行されていません。これは、上記のメッセージの '(保留中)'を説明しています。ありがとう。 – bcattle

関連する問題