2011-10-25 16 views
1

xcodeプロジェクトのデバッグに問題があります。 私のアプリがクラッシュすると、私はこのような読めないスタックトレースを取得:信号を受信SIGBARTでxcodeスタックトレースをもう一度読むことができますか?

2011-10-25 10:03:29.966 fruehstueck[2541:707] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[__NSArrayM insertObject:atIndex:]: object cannot be nil' 
*** First throw call stack: 
(0x352918bf 0x303ce1e5 0x351e620f 0x2c381 0x46f6d 0x3138f7ff 0x3139bc39 0x3139baa9 0x3139b98f 0x3139b211 0x3139af53 0x3138f673 0x3138f349 0x3a347 0x3aa87 0x351eb435 0x3147473f 0x3137050f 0x3136ff01 0x313564ed 0x31355d2d 0x3717be13 0x35265553 0x352654f5 0x35264343 0x351e74dd 0x351e73a5 0x3717afed 0x31384743 0x2e01 0x2dc0) 

コード自体が私のソースコードではなく、ラインで停止しません「int型RETVAL = ...」と。私は、少なくとも私は私のアプリがクラッシュ行したルックアップすることができます私の使用スタックトレースを、取り戻すことができるかどうか

int main(int argc, char *argv[]) 
{ 
    NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; 
    int retVal = UIApplicationMain(argc, argv, nil, nil); 
    [pool release]; 
    return retVal; 
} 

誰かが私に教えていただけますか?事前に

Thxを、 マーベリック

答えて

1

そのかなりシンプル:

-[__NSArrayM insertObject:atIndex:]: object cannot be nil 

あなたはそれを追跡したい場合、あなたはどの「にinsertObject」、それは推測する時間がかかりすぎるではないでしょう手順を知っています呼び出しには無指定ポインタが与えられています。

適切なスタックトレースを取得するために、ビルドのクリーニングを試しましたか?また、ブレークポイントで試してみてください。 (Xcodeのベータ版を使用していないことを確認してください)。

+0

"XCodeのデバッグバージョン"とはどういう意味ですか? – Maverick1st

+0

申し訳ありませんが、私は "ベータ"を意味していました。答えを編集しました。 – zakishaheen

+0

hmm、ブレークポイントの問題は、このエラーがランダムに発生していることです。私はviewcontrollersの間で切り替え、いくつかの切り替え後にアプリケーションがクラッシュします。しかし、私はメモリの警告を取得しないので、私は本当に、なぜそれが例の最初の5回動作し、6回クラッシュするのか分かりません。 私はXCodeのベータ版を使用していません。私は今、きれいなビルドで試してみるだろうが、私の希望は低いです。 – Maverick1st

1

あなたはUIApplicationMainにアプリケーションデリゲートを割り当てていません。これは慎重ですか?

ない場合、あなたはXcodeの4.2とiOS5をSDKを使用している場合は、あなたの主はのようになります。私はあなたが実際にもうコールスタックをsymbolicate、しかし、あなたすることはできません見てきたものから

int main(int argc, char *argv[]) 
{ 
    @autoreleasepool { 
     return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); 
    } 
} 
+0

プロジェクトは、xcode 4.0でios 4プロジェクトとして開始されました。私はちょうど私の会社が常に使用するテンプレートを使用しました。 あなたが書いたように私のメインが見えるべき理由はありますか? – Maverick1st

+0

Xcode 4.2およびiOS5 SDKを使用する場合は、Automatic Reference Counting(ARC)機能を使用できます。アップルのWebサイト: "Objective-Cの自動参照カウント(ARC)は、メモリ管理をコンパイラの仕事にします。新しいApple LLVMコンパイラでARCを有効にすることで、retainまたはreleaseを再度入力する必要がなくなり、コンパイラはあなたのオブジェクトを完全に理解しており、使用されなくなった瞬間に各オブジェクトを解放するため、アプリケーションは予測可能でスムーズなパフォーマンスで、かつてないほど速く動作します。 –

+0

[OK]を、私はこれのためのプロジェクト全体をリファクタリングする必要はありませんか? – Maverick1st

0

問題を回避することができます。アプリケーションコードを変更したり、Xcodeウィンドウのデバッグナビゲータでグラフィカルコールスタックを使用したりしても構わない場合は、this答えをチェックしてください。

関連する問題