なぜこのバグがあるのか 本当にわかりません。
まず、デバッガーはマシンコードで停止します
スレッドにも何も表示されません。プログラムは実際にはコードなしで停止します
したがって、_dispatch_worker_thread と関係があります
それは何ですか?
どうすればこれをデバッグできますか? ロールバックするだけですか?
なぜこのバグがあるのか 本当にわかりません。
まず、デバッガーはマシンコードで停止します
スレッドにも何も表示されません。プログラムは実際にはコードなしで停止します
したがって、_dispatch_worker_thread と関係があります
それは何ですか?
どうすればこれをデバッグできますか? ロールバックするだけですか?
この種のクラッシュは、CPU でサポートされていない (ベクター) 拡張機能を実行しているときに発生します。
たとえば、「project-settings / build-settings / Code Generation」の下の xcode 5 で、「Enable Additional Vector extensions」を「AVX2」に設定します。実行可能ファイルをビルドします。
次に、次の場所で実行します。
EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP)
__builtin_trap()
は、GCC および clang 組み込み関数である - の副産物です。x86 では、
0x4dfa2: movl %esi, (%esp)
0x4dfa5: movl %edx, 4(%esp)
0x4dfa9: movl %eax, 8(%esp)
0x4dfad: calll 0x110ffa ; symbol stub for: objc_msgSend
0x4dfb2: cmpb $0, %al
0x4dfb4: je 38
-> 0x4dfba: ud2
0x4dfbc: movl -32(%ebp), %eax
命令ud2
はここで犯人であり、Xcode によって特別に処理されません。
ARM では、これがコンパイルされ、XCodetrap
のtrace
ブレークポイントになります。これはバグclang
ですか?
最終的に元の質問のコンテキストでは、失敗しているライブラリ関数がアサーションにヒットしたのではないかと思います。