1 // Copyright 2022 The Chromium Authors 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #ifndef BASE_TRACE_EVENT_ADDRESS_SPACE_DUMP_PROVIDER_H_ 6 #define BASE_TRACE_EVENT_ADDRESS_SPACE_DUMP_PROVIDER_H_ 7 8 #include "base/base_export.h" 9 #include "base/memory/raw_ptr.h" 10 #include "base/trace_event/memory_dump_provider.h" 11 #include "partition_alloc/address_space_stats.h" 12 13 namespace base::trace_event { 14 15 // Collects PartitionAlloc address space metrics. 16 class BASE_EXPORT AddressSpaceDumpProvider : public MemoryDumpProvider { 17 public: 18 AddressSpaceDumpProvider(const AddressSpaceDumpProvider&) = delete; 19 AddressSpaceDumpProvider& operator=(const AddressSpaceDumpProvider&) = delete; 20 21 AddressSpaceDumpProvider(); 22 ~AddressSpaceDumpProvider() override; 23 24 static AddressSpaceDumpProvider* GetInstance(); 25 26 // MemoryDumpProvider implementation. 27 bool OnMemoryDump(const MemoryDumpArgs& args, 28 ProcessMemoryDump* pmd) override; 29 }; 30 31 } // namespace base::trace_event 32 33 #endif // BASE_TRACE_EVENT_ADDRESS_SPACE_DUMP_PROVIDER_H_ 34