| Index: base/trace_event/trace_config.cc
|
| diff --git a/base/trace_event/trace_config.cc b/base/trace_event/trace_config.cc
|
| index e9e5a099893377e844be716845b0bbcfe90a2639..7cde06f779a8c328b61c6522419b95bd4d83c938 100644
|
| --- a/base/trace_event/trace_config.cc
|
| +++ b/base/trace_event/trace_config.cc
|
| @@ -50,6 +50,7 @@ const char kMemoryDumpConfigParam[] = "memory_dump_config";
|
| const char kTriggersParam[] = "triggers";
|
| const char kPeriodicIntervalParam[] = "periodic_interval_ms";
|
| const char kModeParam[] = "mode";
|
| +const char kMinAllocationSize[] = "min_allocation_size_bytes";
|
|
|
| // Default configuration of memory dumps.
|
| const TraceConfig::MemoryDumpTriggerConfig kDefaultHeavyMemoryDumpTrigger = {
|
| @@ -123,6 +124,7 @@ TraceConfig::TraceConfig(const TraceConfig& tc)
|
| enable_systrace_(tc.enable_systrace_),
|
| enable_argument_filter_(tc.enable_argument_filter_),
|
| memory_dump_config_(tc.memory_dump_config_),
|
| + min_allocation_size_bytes_(tc.min_allocation_size_bytes_),
|
| included_categories_(tc.included_categories_),
|
| disabled_categories_(tc.disabled_categories_),
|
| excluded_categories_(tc.excluded_categories_),
|
| @@ -140,6 +142,7 @@ TraceConfig& TraceConfig::operator=(const TraceConfig& rhs) {
|
| enable_systrace_ = rhs.enable_systrace_;
|
| enable_argument_filter_ = rhs.enable_argument_filter_;
|
| memory_dump_config_ = rhs.memory_dump_config_;
|
| + min_allocation_size_bytes_ = rhs.min_allocation_size_bytes_;
|
| included_categories_ = rhs.included_categories_;
|
| disabled_categories_ = rhs.disabled_categories_;
|
| excluded_categories_ = rhs.excluded_categories_;
|
| @@ -516,12 +519,22 @@ void TraceConfig::SetMemoryDumpConfig(
|
| StringToMemoryDumpLevelOfDetail(level_of_detail_str);
|
| memory_dump_config_.push_back(dump_config);
|
| }
|
| +
|
| + int min_size_bytes = 0;
|
| + if (memory_dump_config.GetInteger(kMinAllocationSize, &min_size_bytes)
|
| + && min_size_bytes >= 0) {
|
| + min_allocation_size_bytes_ = static_cast<size_t>(min_size_bytes);
|
| + } else {
|
| + min_allocation_size_bytes_ = kDefaultMinAllocationSizeBytes;
|
| + }
|
| +
|
| }
|
|
|
| void TraceConfig::SetDefaultMemoryDumpConfig() {
|
| memory_dump_config_.clear();
|
| memory_dump_config_.push_back(kDefaultHeavyMemoryDumpTrigger);
|
| memory_dump_config_.push_back(kDefaultLightMemoryDumpTrigger);
|
| + min_allocation_size_bytes_ = kDefaultMinAllocationSizeBytes;
|
| }
|
|
|
| void TraceConfig::ToDict(base::DictionaryValue& dict) const {
|
| @@ -582,6 +595,10 @@ void TraceConfig::ToDict(base::DictionaryValue& dict) const {
|
| // Empty triggers will still be specified explicitly since it means that
|
| // the periodic dumps are not enabled.
|
| memory_dump_config->Set(kTriggersParam, std::move(triggers_list));
|
| +
|
| + if (min_allocation_size_bytes_ != kDefaultMinAllocationSizeBytes)
|
| + memory_dump_config->SetInteger(kMinAllocationSize,
|
| + min_allocation_size_bytes_);
|
| dict.Set(kMemoryDumpConfigParam, std::move(memory_dump_config));
|
| }
|
| }
|
|
|