2011-08-11 14 views
6

AVAudioRecorderインスタンスのメソッド呼び出しの結果としてスローされた例外の底に到達しようとしています。例外ブレークポイントが設定されていますが、スタックトレースから有用な情報を収集できません。アプリケーションが正常に動作オフ私は一見任意の負の影響を与えることなく、ブレークポイントを有効にした場合Xcodeでの例外のデバッグ4

[recorder prepareToRecord];

:例外がスローされる点は、呼び出し中にあります。レコーダーは正常に機能します。ただ明確にするためには、状況の詳細はあまり重要ではありません。問題を解決するために、このような状況で私は何をすべきでしょうか?私は手元のツールを使って問題についてもう何も学ぶことができません。 ACBaseCodecのドキュメントは古くなっており、例外がスローされる原因については何も明らかにしていません。デバッグ・ナビゲーターから

スタックトレース:

Debug Navigator

個々のスレッドからのスタックトレース:

enter image description here

この例外の原因となったかを知るための方法はありますか?

+0

いくつかのコードを表示できますか?既にメモリ管理の問題をチェックしましたか?これは、例外ブレークポイントを設定したときにのみ発生すると言っていますか? – jtbandes

+0

私はあなたがいくつかのコードを投稿すべきだと思う、私たちは "ソース"で助けることができるかもしれないと思う –

答えて

1

デバッガがアクティブなときにプログラムが失敗すると、スレッドに競合状態が発生する可能性があります。 また、NSZombieEnabledをtrueに設定するか、Instrumentでプログラムを実行して、問題の原因となっているメモリの問題がないかどうかを確認してください。レコーダーオブジェクトは保持されていますか?

デバッガが動作していない状態でプログラムがクラッシュしたが、デバッガがアクティブな状態で正常に動作したが、このような状況が発生したことはありませんでした。

デバッガにメッセージが記録されていますか?

0

Instrumentsを使用して実行します。それに間違いがないかもしれません。エラーが発生していない場合は、心配する必要はありません。

9

残念ながら、AVAudioPlayerとAVAudioRecorderは、prepareToの通常の処理フローの一部としてC++例外を使用しているようです。すべての例外でブレークを有効にすると、実際にそこで停止しないようにする方法はありません。あなたはたぶん続けることができ、それを通過することができます。別の可能な回避策は、Objective-C例外をC++例外をスローしているように見えるようにするだけです。それが私のしたことです。申し訳ありませんが答えではありません、なぜ彼らはprepareToの設計決定をしました...私の外です。

+0

返信ありがとう。私は、SDKに関してアップルが決定したことをもう一度推測しようと、あきらめてきた。私は、AppStoreであまりにも多くのジャンクが終わるのを避けるため、エントリーの人工的な障壁を作り出すことを疑っています。静的ライブラリの手渡しがXcode 4.2でもどうして深く壊れているのか他にどのように説明できますか? – Undistraction

関連する問題