Add record_allocs_on_exit option.
Add a config parameter "record_allocs_on_exit" that will cause the
currently recorded set of allocs to be dumped to a file when
the process exits.
Update the documentation, and add new unit tests.
Test: Unit tests pass.
Change-Id: I81d31bc63b8a6709697533c5099dcc6444c11d47
diff --git a/libc/malloc_debug/Config.h b/libc/malloc_debug/Config.h
index 754970f..8551712 100644
--- a/libc/malloc_debug/Config.h
+++ b/libc/malloc_debug/Config.h
@@ -98,6 +98,7 @@
int record_allocs_signal() const { return record_allocs_signal_; }
size_t record_allocs_num_entries() const { return record_allocs_num_entries_; }
const std::string& record_allocs_file() const { return record_allocs_file_; }
+ bool record_allocs_on_exit() const { return record_allocs_on_exit_; }
int check_unreachable_signal() const { return check_unreachable_signal_; }
@@ -139,6 +140,7 @@
bool SetRecordAllocs(const std::string& option, const std::string& value);
bool SetRecordAllocsFile(const std::string& option, const std::string& value);
+ bool SetRecordAllocsOnExit(const std::string& option, const std::string& value);
bool VerifyValueEmpty(const std::string& option, const std::string& value);
@@ -170,6 +172,7 @@
int record_allocs_signal_ = 0;
size_t record_allocs_num_entries_ = 0;
std::string record_allocs_file_;
+ bool record_allocs_on_exit_ = false;
uint64_t options_ = 0;
uint8_t fill_alloc_value_;