[cfe-dev] Can one control where clang writes .gcda coverage files? (to avoid crash)
Sean McBride
sean at rogue-research.com
Thu Mar 22 09:35:58 PDT 2012
Hi all,
Is there any way to control the location clang writes .gcda coverage files?
I ask because I create nightly builds of my app on a build machine, and when I run the resulting app on a different machine it crashes like so:
Exception Type: EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: KERN_INVALID_ADDRESS at 0x0000000000000068
Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0 libsystem_c.dylib 0x00007fff8bd021ec flockfile + 15
1 libsystem_c.dylib 0x00007fff8bce3c86 fwrite + 87
2 com.rogue-research.brainsight2 0x000000010285e366 llvm_gcda_start_file + 262
3 com.rogue-research.brainsight2 0x00000001016e9e80 __llvm_gcov_writeout + 16
4 dyld 0x00007fff6ecc015c ImageLoaderMachO::doTermination(ImageLoader::LinkContext const&) + 178
5 dyld 0x00007fff6ecb4591 dyld::runTerminators(void*) + 67
6 libsystem_c.dylib 0x00007fff8bcad7c8 __cxa_finalize + 274
7 libsystem_c.dylib 0x00007fff8bcad652 exit + 18
8 com.apple.AppKit 0x00007fff88f0863e -[NSApplication terminate:] + 1767
Using Intruments, I see the path it's trying to access is a path on the build machine, which does not exist on my machine:
# Caller Function FD Path
1195 llvm_gcda_start_file open_nocancel -1 /Users/builder/rogue_nightly_build/working_copy/brainsight2/trunk/build/Brainsight2.build/Debug/Brainsight.build/Objects-normal/x86_64/RRPCAPointFilterCore.gcda
I consider this an llvm/clang bug; llvm_gcda_start_file() should at the very least handle the error gracefully, write no coverage, and not crash. Do you concur? Shall I file a bug? Any workaround suggestions?
Thanks,
--
____________________________________________________________
Sean McBride, B. Eng sean at rogue-research.com
Rogue Research www.rogue-research.com
Mac Software Developer Montréal, Québec, Canada
More information about the cfe-dev
mailing list