0

プログラムで制約を追加する際の問題をデバッグしています。アプリがクラッシュすると、LLDB は -[UIView _viewHierarchyUnpreparedForConstraint:] で中断して問題をさらにデバッグするように指示します。ただし、 LLDB でブレークポイントを追加すると:

b s -n  -[UIView _viewHierarchyUnpreparedForConstraint:]

LLDB から次の警告が表示されます: 警告: ブレークポイントを実際の場所に解決できません。

また、ブレークポイント ナビゲーター + オプションを使用してシンボリック ブレークポイントを追加してみました。

そのため、このシンボルが存在しないかのように見えます。このシンボルが存在するかどうかを確認するために、生成されたすべてのシンボルのリストを表示するにはどうすればよいですか?

ご協力いただきありがとうございます

-マレナ

4

1 に答える 1

1

lldb コマンド ラインはスペースで区切られているため、スペースを含む引数またはオプション値を渡す場合は、スペースを保護するために引用符を使用する必要があります。これが機能するかどうかを確認します。

(lldb) b s -n  "-[UIView _viewHierarchyUnpreparedForConstraint:]"

注意深い読者は、あなたが入力したコマンドには、-n のオプション値として "-[UIView" があり、その後にぶら下がっている引数 "_viewHierarchyUnpreparedForConstraint:]" があり、当然 (break set引数を取らないため)、引数を取らないブレーク セットに関するエラー。それはバグです...

他の質問に答えるには、lldb コマンド:

(lldb) image dump symtab

プログラム内のすべてのシンボルをダンプします。これをコマンドラインに追加することで、これを特定のライブラリにスコープすることができます。たとえば、これはおそらく UIKit にあるので、次のようになります。

(lldb) image dump symtab UIKit

UIKit のシンボルのみを表示します。特定のシンボルを名前で検索するコマンドもありimage lookup -nますが、一般に、ブレークポイント セッターがそれらを見つけられない場合、イメージ検索でもそれらを見つけることはできません。

于 2014-11-15T01:23:34.350 に答える