このエラーで何が起こっているのかを判断できません。
複数のセグメントでファイルをアップロードしています。
API呼び出しを7つの並行スレッドにスレッド化しました。
これが停止するアセンブリコードです。
これが私の印刷されたスタックトレースです
最後に、スタックウィンドウ
dispatch_get_low()の#defineを除いて、DISPATCH_QUEUE_PRIORITY_LOWがなく、dispatch_get_low()の呼び出しもありません。
少し背景として、私はxcode 4.4からアプリを開発しており、最近iOS6でテストするためにGMSeed 4.5をインストールしました。私のコードはすべてまだios5であり、このバグはxcodeの更新の前後で私を悩ませました。
アップデート
NSZombieEnabledYESを環境変数に追加し直した後
ほぼ同じ方法で別のエラーが表示されましたが、これは転送と呼ばれます
アセンブリブレークポイント
スタックトレースのプリントアウト
スタックウィンドウを呼び出す
私は実際に何が起こっているのかまだ途方に暮れています。
まだ調査中です。それ以上の支援は大歓迎です。
====新しい開発====
どうやらmalloc呼び出しの出力を取得しようとしている間。私はバグを完全に軽減しました。
このフラグを有効にしてリリース用にコンパイルできるとは思わないので、これはがっかりします。
EXC_BAD_ACCESSは表示されなくなるため、ログは使用できなくなります。このバグは私が今まで直面した中で最も奇妙な問題であることが判明しており、私は多くの奇妙なiOSのバグに直面しています。
再度更新する
私はこのエラーを追跡してきました。問題となっているオブジェクトは-[CFNumber release]
呼び出しであることが判明しました。番号はブロック内に作成され、デリゲートに渡されます。
また、CoreDataオブジェクトを保存してから削除することと組み合わせることができます。
行番号とファイル名をログに記録するメソッドHSLogBrute(@ "")を追加しました。
私はそれを次のコードまで追跡しました。
if (progressMatch > progressPercent){
HSLogBrute(@"");
TransferStatus *transferStatus = [TransferStatus objectByID:task.transferStatusID];
HSLogBrute(@"");
transferStatus.segmentsTransferred = [NSNumber numberWithInt:segmentsTransferred.intValue];
HSLogBrute(@"");
transferStatus.segmentsTotal = [NSNumber numberWithInt:segmentsTotal.intValue];
HSLogBrute(@""); // This is the last log I am getting.
[transferStatus save];
HSLogBrute(@"");
}
HSLogBrute(@"");// Before putting in the [NSNumber numberWithInt:] calls this was the last line.