Use UintToString() for unsigned values.
[chromium-blink-merge.git] / base / trace_event / memory_dump_request_args.h
blobd1bb6c3c51b7c4c8f4a48f5b5f7ba560be1a03bb
1 // Copyright 2015 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.
5 #ifndef BASE_TRACE_EVENT_MEMORY_DUMP_REQUEST_ARGS_H_
6 #define BASE_TRACE_EVENT_MEMORY_DUMP_REQUEST_ARGS_H_
8 // This file defines the types and structs used to issue memory dump requests.
9 // These are also used in the IPCs for coordinating inter-process memory dumps.
11 #include <string>
13 #include "base/base_export.h"
14 #include "base/callback.h"
16 namespace base {
17 namespace trace_event {
19 // Captures the reason why a memory dump is being requested. This is to allow
20 // selective enabling of dumps, filtering and post-processing.
21 enum class MemoryDumpType {
22 TASK_BEGIN, // Dumping memory at the beginning of a message-loop task.
23 TASK_END, // Dumping memory at the ending of a message-loop task.
24 PERIODIC_INTERVAL, // Dumping memory at periodic intervals.
25 EXPLICITLY_TRIGGERED, // Non maskable dump request.
26 LAST = EXPLICITLY_TRIGGERED // For IPC macros.
29 // Tells the MemoryDumpProvider(s) how much detailed their dumps should be.
30 // MemoryDumpProvider instances must guarantee that level of detail does not
31 // affect the total size reported in the root node, but only the granularity of
32 // the child MemoryAllocatorDump(s).
33 enum class MemoryDumpLevelOfDetail {
34 LIGHT, // Few entries, typically a fixed number, per dump.
35 DETAILED, // Unrestricted amount of entries per dump.
36 LAST = DETAILED // For IPC Macros.
39 // Initial request arguments for a global memory dump. (see
40 // MemoryDumpManager::RequestGlobalMemoryDump()).
41 struct BASE_EXPORT MemoryDumpRequestArgs {
42 // Globally unique identifier. In multi-process dumps, all processes issue a
43 // local dump with the same guid. This allows the trace importers to
44 // reconstruct the global dump.
45 uint64 dump_guid;
47 MemoryDumpType dump_type;
48 MemoryDumpLevelOfDetail level_of_detail;
51 using MemoryDumpCallback = Callback<void(uint64 dump_guid, bool success)>;
53 BASE_EXPORT const char* MemoryDumpTypeToString(const MemoryDumpType& dump_type);
55 BASE_EXPORT const char* MemoryDumpLevelOfDetailToString(
56 const MemoryDumpLevelOfDetail& level_of_detail);
58 BASE_EXPORT MemoryDumpLevelOfDetail
59 StringToMemoryDumpLevelOfDetail(const std::string& str);
61 } // namespace trace_event
62 } // namespace base
64 #endif // BASE_TRACE_EVENT_MEMORY_DUMP_REQUEST_ARGS_H_