OLD | NEW |
1 // Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 #ifndef RUNTIME_VM_MALLOC_HOOKS_H_ | 5 #ifndef RUNTIME_VM_MALLOC_HOOKS_H_ |
6 #define RUNTIME_VM_MALLOC_HOOKS_H_ | 6 #define RUNTIME_VM_MALLOC_HOOKS_H_ |
7 | 7 |
8 #include "vm/allocation.h" | 8 #include "vm/allocation.h" |
9 #include "vm/globals.h" | 9 #include "vm/globals.h" |
10 | 10 |
11 namespace dart { | 11 namespace dart { |
12 | 12 |
13 class JSONObject; | 13 class JSONObject; |
14 class Sample; | 14 class Sample; |
15 | 15 |
| 16 // The number of frames that are generated by the malloc hooks and collection |
| 17 // of the stack trace. These frames are ignored when collecting the stack |
| 18 // trace for a memory allocation. If this number is incorrect, some tests in |
| 19 // malloc_hook_tests.cc might fail, particularily |
| 20 // StackTraceMallocHookLengthTest. If this value is updated, please make sure |
| 21 // that the MallocHooks test cases pass on all platforms. |
| 22 extern const intptr_t kSkipCount; |
| 23 |
16 class MallocHooks : public AllStatic { | 24 class MallocHooks : public AllStatic { |
17 public: | 25 public: |
18 static void InitOnce(); | 26 static void InitOnce(); |
19 static void TearDown(); | 27 static void TearDown(); |
20 static bool ProfilingEnabled(); | 28 static bool ProfilingEnabled(); |
21 static bool stack_trace_collection_enabled(); | 29 static bool stack_trace_collection_enabled(); |
22 static void set_stack_trace_collection_enabled(bool enabled); | 30 static void set_stack_trace_collection_enabled(bool enabled); |
23 static void ResetStats(); | 31 static void ResetStats(); |
24 static bool Active(); | 32 static bool Active(); |
25 static void PrintToJSONObject(JSONObject* jsobj); | 33 static void PrintToJSONObject(JSONObject* jsobj); |
26 static Sample* GetSample(const void* ptr); | 34 static Sample* GetSample(const void* ptr); |
27 | 35 |
28 static intptr_t allocation_count(); | 36 static intptr_t allocation_count(); |
29 static intptr_t heap_allocated_memory_in_bytes(); | 37 static intptr_t heap_allocated_memory_in_bytes(); |
30 }; | 38 }; |
31 | 39 |
32 } // namespace dart | 40 } // namespace dart |
33 | 41 |
34 #endif // RUNTIME_VM_MALLOC_HOOKS_H_ | 42 #endif // RUNTIME_VM_MALLOC_HOOKS_H_ |
OLD | NEW |