web-dev-qa-db-ja.com

objc_exception_throwにブレークポイントを追加する方法は?

これはこれに関するブラッド・ラーソンからの答えでした [〜#〜] so [〜#〜] 質問

2つのブレークポイントを追加すると、これらの例外をデバッグできるはずです。これを行うには、[実行]に移動します|ショー|ブレークポイントを作成し、2つのグローバルブレークポイントを作成します(すべてのアプリケーションで非常に役立つため、グローバルに作成します)。最初の名前は「objc_exception_throw」で、その場所は「libobjc.A.dylib」でなければなりません。 2番目は「-[NSException raise]」で、その場所は「CoreFoundation」である必要があります。

これで、ブレークポイントを有効にしてアプリケーションのデバッグを開始すると、これらの例外がスローされるとブレークするはずです。これにより、デバッガー内で例外につながった一連のイベントを確認できるはずです。

今、この回答では、言及された場所をどのように追加するのですか?

80
Rahul Vyas

ブラッドの答えはかなり明確だと思います。うまくわからない場合は、これが役立つことがあります。

Xcodeでは、トップメニューから「実行」>「表示」>「ブレークポイント」をクリックします。新しいウィンドウがポップアップします。

左側のメニューで「グローバルブレークポイント」を選択します。 「ブレークポイント」列の下の右側に、「シンボルのダブルクリック」というテキストのあるボックスがあります。このボックスをシングルクリックして、「objc_exception_throw」と入力します。

次に、「location」列の下の「objc_exception_throw」の隣のスペースをシングルクリックします。場所を入力するボックスが表示されます(この場合、「libobjc.A.dylib」)。うまくいけば役立つスクリーンショットを作成しました:

alt text

81
h4xxr

Xcode 4では、この優れたブレークポイントを[ブレークポイント]セクションの[+]ボタンで追加できます(⌘+ 6)

enter image description here

45
Valerii Pavlov

xcode 6-トップメニューから

デバッグ>ブレークポイント>例外ブレークポイントの作成

6
user3812138

+[NSException raise:format:arguments:]ブレークポイントを追加することをお勧めします。その場所はCoreFoundationである必要があります。

4
Ameer Sheikh