2011-11-09 20 views
3

デバイスを接続していて、アプリケーションをXCodeで実行している。 ある時点で、アプリはデバイスでクラッシュし、ホーム画面に出ます。しかし、Xcodeはまだアプリを「実行中」と表示していて、「停止」をクリックするオプションがあります。灰色表示されていません。エラーメッセージはコンソールに出力されず、クラッシュログはデバイスログに保存されません。デバイスでアプリケーションがクラッシュするが、XCodeがクラッシュを登録しない

私はクラッシュを修正する必要がありますが、エラーメッセージは表示されません。問題を追跡するのが難しいです。私はNSLogステートメントをコードの重要な部分に配置しましたが、クラッシュの原因を突き止めるには至りませんでした。

誰かが、私のアプリがクラッシュしたことをXCodeが認識しておらず、まだ「実行中」と表示しているという奇妙な事実について知っていますか?

答えて

2

アプリが配布用に署名されている場合、X-Codeはそれをデバッグできません。アプリケーションをデバイスに起動すると、XcodeはプロセスIDを取得できなくなります。

あなたは、オルガナイザー - >デバイス - >コンソールを介して、ログメッセージ(および他のコンソールメッセージ、クラッシュ情報を含むことを望みます)を引き続き得ることができます。

あなたのアプリが開発用に署名されていて、それでも問題がある場合は、あなたのアプリが起動できなかったとX-Codeが考える原因となります。アプリの初期化にどれくらいの時間がかかるかを調べてください。私はプロセスIDを取得していないが、アプリケーションがまだ動いているX-Codeをロード時間が10秒を超える問題がありました。

ひどいケースでは、NSLogメッセージを狂ったように読み込んでアプリをインストールし、クラッシュするまで実行してください。その後すぐにオーガナイザをロードし、デバイスに移動してコンソールをダウンロードし、クラッシュログを探します。

運が良かった!

ss

、その後、あなたがsymbolicatedを見ることができます:あなたの質問のデバッグ一部で、あなたのビルド設定で「いいえ」に「ストリップデバッグシンボル」を設定することができます支援するため

+0

ありがとう、私の問題を解決しました – SamChen

3

クラッシュログは、オーガナイザウィンドウの「デバイスログ」セクションで:

ss2

+0

ありがとうございます - 私は値をNoに設定しましたが、XCodeがクラッシュとして認識していないクラッシュのクラッシュログは得られませんでした。 – RanLearns

0

私は同じ問題を持っていた、アプリケーションは、任意のログまたはerror.Myエラー「objc_msgSend」に関連していたずに墜落しました。

エラーを見つけるには - 「Xcodeナビゲータ」ウィンドウ(左側のウィンドウ)から「デバッグナビゲータを表示」を選択します。私のアプリケーションはスレッド1の最初の行に "objc_msgSend"を表示します。

私は "objc_msgSend"についてgoogleを持っており、このクラッシュはメモリエラーのために発生することがわかりました。それは、メッセージが既に割り当て解除されている受信機に送信されたことを意味する。 Xcodeのことから、このエラーの使用 "NSZombieEnabled環境変数"

  1. をトレースする

    、製品をクリックしてください - >スキーム - >編集スキーム。

  2. 「実行方式」の設定から、「診断」タブに移動します。
  3. 「メモリ管理」で、「ゾンビオブジェクトを有効にする」のチェックボックスをオンにします。

今度は、アプリケーションを実行してクラッシュを再生成します。この時点で、コンソールでクラッシュレポートが表示されます。

*** -[WSAddressViewController respondsToSelector:]: message sent to deallocated instance 0x1683d1b0 
0

偶然に回線にブレークポイントを設定しましたか?

Screenshot of breakpoint

ブレークポイントを無効にするか削除します。

関連する問題