forked from OSchip/llvm-project
Revert "[MemProf] Defer profile file setup until dump time"
This reverts commit ea1826ee57
.
This change is breaking the ability of tests to override the profile
output file. Need to add a mechanism to do that before resubmitting.
This commit is contained in:
parent
d9e51e7552
commit
311801a017
|
@ -26,7 +26,6 @@
|
|||
#include "sanitizer_common/sanitizer_errno.h"
|
||||
#include "sanitizer_common/sanitizer_file.h"
|
||||
#include "sanitizer_common/sanitizer_flags.h"
|
||||
#include "sanitizer_common/sanitizer_interface_internal.h"
|
||||
#include "sanitizer_common/sanitizer_internal_defs.h"
|
||||
#include "sanitizer_common/sanitizer_procmaps.h"
|
||||
#include "sanitizer_common/sanitizer_stackdepot.h"
|
||||
|
@ -34,9 +33,6 @@
|
|||
#include <sched.h>
|
||||
#include <time.h>
|
||||
|
||||
// Allow the user to specify a profile output file via the binary.
|
||||
SANITIZER_WEAK_ATTRIBUTE char __memprof_profile_filename[1];
|
||||
|
||||
namespace __memprof {
|
||||
namespace {
|
||||
using ::llvm::memprof::MemInfoBlock;
|
||||
|
@ -282,12 +278,6 @@ struct Allocator {
|
|||
}
|
||||
|
||||
void FinishAndWrite() {
|
||||
// Use profile name specified via the binary itself if it exists, and hasn't
|
||||
// been overrriden by a flag at runtime.
|
||||
if (__memprof_profile_filename[0] != 0 && !common_flags()->log_path)
|
||||
__sanitizer_set_report_path(__memprof_profile_filename);
|
||||
else
|
||||
__sanitizer_set_report_path(common_flags()->log_path);
|
||||
if (print_text && common_flags()->print_module_map)
|
||||
DumpProcessMap();
|
||||
|
||||
|
@ -312,11 +302,6 @@ struct Allocator {
|
|||
}
|
||||
|
||||
allocator.ForceUnlock();
|
||||
|
||||
// Set the report back to the default stderr now that we have dumped the
|
||||
// profile, in case there are later errors or stats dumping on exit has been
|
||||
// enabled.
|
||||
__sanitizer_set_report_path("stderr");
|
||||
}
|
||||
|
||||
// Inserts any blocks which have been allocated but not yet deallocated.
|
||||
|
|
|
@ -29,6 +29,9 @@
|
|||
|
||||
uptr __memprof_shadow_memory_dynamic_address; // Global interface symbol.
|
||||
|
||||
// Allow the user to specify a profile output file via the binary.
|
||||
SANITIZER_WEAK_ATTRIBUTE char __memprof_profile_filename[1];
|
||||
|
||||
namespace __memprof {
|
||||
|
||||
static void MemprofDie() {
|
||||
|
@ -166,6 +169,13 @@ static void MemprofInitInternal() {
|
|||
AddDieCallback(MemprofDie);
|
||||
SetCheckUnwindCallback(CheckUnwind);
|
||||
|
||||
// Use profile name specified via the binary itself if it exists, and hasn't
|
||||
// been overrriden by a flag at runtime.
|
||||
if (__memprof_profile_filename[0] != 0 && !common_flags()->log_path)
|
||||
__sanitizer_set_report_path(__memprof_profile_filename);
|
||||
else
|
||||
__sanitizer_set_report_path(common_flags()->log_path);
|
||||
|
||||
__sanitizer::InitializePlatformEarly();
|
||||
|
||||
// Setup internal allocator callback.
|
||||
|
|
|
@ -2,9 +2,6 @@
|
|||
|
||||
// RUN: %clangxx_memprof -O0 %s -o %t
|
||||
// RUN: %env_memprof_opts=print_text=true:log_path=stderr:atexit=1 %run %t 2>&1 | FileCheck %s
|
||||
// Stats should be dumped to stderr even if the profile log path set to a file.
|
||||
// RUN: rm -f %t.log.*
|
||||
// RUN: %env_memprof_opts=print_text=true:log_path=%t.log:atexit=1 %run %t 2>&1 | FileCheck %s
|
||||
// RUN: %env_memprof_opts=print_text=true:log_path=stderr:atexit=0 %run %t 2>&1 | FileCheck %s --check-prefix=NOATEXIT
|
||||
|
||||
// CHECK: MemProfiler exit stats:
|
||||
|
|
|
@ -1,8 +1,5 @@
|
|||
// RUN: %clangxx_memprof -O0 %s -o %t
|
||||
// RUN: %env_memprof_opts=print_text=true:log_path=stderr:allocator_may_return_null=0 not %run %t 2>&1 | FileCheck %s --check-prefix=CHECK --check-prefix=CHECK-SUMMARY
|
||||
// Errors should be printed to stderr even if the log_path set to a file.
|
||||
// RUN: rm -f %t.log.*
|
||||
// RUN: %env_memprof_opts=print_text=true:log_path=%t.log:allocator_may_return_null=0 not %run %t 2>&1 | FileCheck %s --check-prefix=CHECK --check-prefix=CHECK-SUMMARY
|
||||
// RUN: %env_memprof_opts=print_text=true:log_path=stderr:allocator_may_return_null=1 %run %t 2>&1 | FileCheck %s --check-prefix=CHECK-NULL
|
||||
// Test print_summary
|
||||
// RUN: %env_memprof_opts=print_text=true:log_path=stderr:allocator_may_return_null=0:print_summary=0 not %run %t 2>&1 | FileCheck %s --check-prefix=CHECK --check-prefix=CHECK-NOSUMMARY
|
||||
|
|
Loading…
Reference in New Issue