forked from OSchip/llvm-project
bec223a9bc
Summary: When forking in several threads, the counters were written out in using the same global static variables (see GCDAProfiling.c): that leads to crashes. So when there is a fork, the counters are resetted in the child process and they will be dumped at exit using the interprocess file locking. When there is an exec, the counters are written out and in case of failures they're resetted. Reviewers: jfb, vsk, marco-c, serge-sans-paille Reviewed By: marco-c, serge-sans-paille Subscribers: llvm-commits, serge-sans-paille, dmajor, cfe-commits, hiraditya, dexonsmith, #sanitizers, marco-c, sylvestre.ledru Tags: #sanitizers, #clang, #llvm Differential Revision: https://reviews.llvm.org/D78477 |
||
---|---|---|
.. | ||
CMakeLists.txt | ||
GCDAProfiling.c | ||
InstrProfiling.c | ||
InstrProfiling.h | ||
InstrProfilingBiasVar.c | ||
InstrProfilingBuffer.c | ||
InstrProfilingFile.c | ||
InstrProfilingInternal.c | ||
InstrProfilingInternal.h | ||
InstrProfilingMerge.c | ||
InstrProfilingMergeFile.c | ||
InstrProfilingNameVar.c | ||
InstrProfilingPlatformDarwin.c | ||
InstrProfilingPlatformFuchsia.c | ||
InstrProfilingPlatformLinux.c | ||
InstrProfilingPlatformOther.c | ||
InstrProfilingPlatformWindows.c | ||
InstrProfilingPort.h | ||
InstrProfilingRuntime.cpp | ||
InstrProfilingUtil.c | ||
InstrProfilingUtil.h | ||
InstrProfilingValue.c | ||
InstrProfilingWriter.c | ||
WindowsMMap.c | ||
WindowsMMap.h |