特に役に立たない気もするが、自分がハマったところのメモ。
起こったこと
シミュレータ上で実行するようにして iOS アプリのユニットテストを実行すると 「EXC_BAD_ACCESS (code=EXC_I386_GPFLT)」 ってエラーでクラッシュが発生した。
調査メモ
- スタックトレースによると
__llvm_gcov_writeout
ってあるので、カバレッジに関係してそう - 似たような現象として同僚が見つけてくれたページ :
- プロジェクト設定で
GCC_GENERATE_TEST_COVERAGE_FILES = YES
となっていたので、これを消して試してみた → クラッシュしなくなった - コードカバレッジを吐こうとして、そこで何かがおかしくてクラッシュする、みたいな状況になってたっぽい
- 同僚によると、問題が発生している .gcda のあるディレクトリ (DerivedData 以下) から .gcda を一掃したら直ったとのこと
-
GCC_GENERATE_TEST_COVERAGE_FILES
オプションは、gcov 形式 (llvm-cov gcov とかで確認できるカバレッジ情報) のカバレッジ情報を出力するためのものっぽい?