tsan: allow to write memory profile to stdout/stderr

llvm-svn: 209811
This commit is contained in:
Dmitry Vyukov 2014-05-29 14:02:06 +00:00
parent bde4c9c773
commit ef5f26bf19
1 changed files with 14 additions and 9 deletions

View File

@ -131,16 +131,21 @@ static void BackgroundThread(void *arg) {
fd_t mprof_fd = kInvalidFd; fd_t mprof_fd = kInvalidFd;
if (flags()->profile_memory && flags()->profile_memory[0]) { if (flags()->profile_memory && flags()->profile_memory[0]) {
// FIXME(dvyukov): support stdout/stderr if (internal_strcmp(flags()->profile_memory, "stdout") == 0) {
InternalScopedBuffer<char> filename(4096); mprof_fd = 1;
internal_snprintf(filename.data(), filename.size(), "%s.%d", } else if (internal_strcmp(flags()->profile_memory, "stderr") == 0) {
flags()->profile_memory, (int)internal_getpid()); mprof_fd = 2;
uptr openrv = OpenFile(filename.data(), true);
if (internal_iserror(openrv)) {
Printf("ThreadSanitizer: failed to open memory profile file '%s'\n",
&filename[0]);
} else { } else {
mprof_fd = openrv; InternalScopedBuffer<char> filename(4096);
internal_snprintf(filename.data(), filename.size(), "%s.%d",
flags()->profile_memory, (int)internal_getpid());
uptr openrv = OpenFile(filename.data(), true);
if (internal_iserror(openrv)) {
Printf("ThreadSanitizer: failed to open memory profile file '%s'\n",
&filename[0]);
} else {
mprof_fd = openrv;
}
} }
} }