4

iOS プログラムで EXC_BAD_ACCESS が発生しました。原因は匿名ブロックの 1 つにあると思われますが、それらのブロックはかなり多く、候補リストを少し絞り込む必要があります。

スタック トレースは、現在のフレームを として表示し__lldb_unnamed_function4866$$ProjectNameます。私が見ることができる行番号やソースファイル名はありません。ローカル変数も表示されません。デバッガーはマシン コード命令を表示します。これはバックグラウンド イベント キューで実行されていたため、スタックの他の場所に私のコードはありません。

これがどのような機能であるかを調べるにはどうすればよいですか?

4

2 に答える 2

0

私は似たような状況に遭遇しました。あなたの問題を (まだ) 解決することはできませんが、できる人を知っていると思います。

http://www.realmacsoftware.com/blog/block-debuggingをチェックして、問題の悪意のあるブロックについてさらに詳しく調べる方法を説明しています。

私はクラッシュログから作業しているので、あまり役に立ちませんが、それでも興味がある場合は、名前のないブロックについて得られるのと同じくらい多くのことを知ることができます.

警告、上記のリンクは多くの難解な知識にさらされており、少し不十分だと感じるかもしれません:)

[追加編集] まだ十分ではありませんか?

逆アセンブルを検索し、手動でシンボリック化を行った後、___lldb_unnamed_function はニシンであるという結論に達しました。

私はHow to manual symbolicate a crash log with atos に従いましたが、それはサードパーティのライブラリから来た完全に異なる関数を指し示し、クラッシュの理由の非常に良い候補でした (badf00d で怒っているウォッチドッグによって殺されました)。

この調査の過程で、優れた逆アセンブラーであるホッパーにも出会いました。デモ版を使って怪しいコードが何をしているか確認したので、名前チェックをしています。

于 2013-10-28T10:26:47.090 に答える
-1

ブレークポイント ナビゲーター内のプラス記号をクリックして、例外ブレークポイントを設定してみてくださいcmd + 6。デバッグのベスト プラクティスの概要については、iTunes U でのスタンフォード レクチャーを検討すると便利です。

于 2012-09-06T09:25:57.537 に答える