address_space_dump_provider.h 1.1 KB

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