OLD | NEW |
1 // Copyright (c) 2006, Google Inc. | 1 // Copyright (c) 2006, Google Inc. |
2 // All rights reserved. | 2 // All rights reserved. |
3 // | 3 // |
4 // Redistribution and use in source and binary forms, with or without | 4 // Redistribution and use in source and binary forms, with or without |
5 // modification, are permitted provided that the following conditions are | 5 // modification, are permitted provided that the following conditions are |
6 // met: | 6 // met: |
7 // | 7 // |
8 // * Redistributions of source code must retain the above copyright | 8 // * Redistributions of source code must retain the above copyright |
9 // notice, this list of conditions and the following disclaimer. | 9 // notice, this list of conditions and the following disclaimer. |
10 // * Redistributions in binary form must reproduce the above | 10 // * Redistributions in binary form must reproduce the above |
(...skipping 180 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
191 // FillOrderedProfile and IterateOrderedAllocContexts will contain mmap'ed | 191 // FillOrderedProfile and IterateOrderedAllocContexts will contain mmap'ed |
192 // memory regions as at calling RefreshMMapData. | 192 // memory regions as at calling RefreshMMapData. |
193 void RefreshMMapData(); | 193 void RefreshMMapData(); |
194 | 194 |
195 // Clear the internal mmap information. Results of FillOrderedProfile and | 195 // Clear the internal mmap information. Results of FillOrderedProfile and |
196 // IterateOrderedAllocContexts won't contain mmap'ed memory regions after | 196 // IterateOrderedAllocContexts won't contain mmap'ed memory regions after |
197 // calling ClearMMapData. | 197 // calling ClearMMapData. |
198 void ClearMMapData(); | 198 void ClearMMapData(); |
199 | 199 |
200 private: | 200 private: |
| 201 friend class DeepHeapProfile; |
201 | 202 |
202 // data types ---------------------------- | 203 // data types ---------------------------- |
203 | 204 |
204 // Hash table bucket to hold (de)allocation stats | 205 // Hash table bucket to hold (de)allocation stats |
205 // for a given allocation call stack trace. | 206 // for a given allocation call stack trace. |
206 struct Bucket : public Stats { | 207 struct Bucket : public Stats { |
207 uintptr_t hash; // Hash value of the stack trace | 208 uintptr_t hash; // Hash value of the stack trace |
208 int depth; // Depth of stack trace | 209 int depth; // Depth of stack trace |
209 const void** stack; // Stack trace | 210 const void** stack; // Stack trace |
210 Bucket* next; // Next entry in hash-table | 211 Bucket* next; // Next entry in hash-table |
(...skipping 202 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
413 // Helpers for sorting and generating leak reports | 414 // Helpers for sorting and generating leak reports |
414 struct Entry; | 415 struct Entry; |
415 struct ReportState; | 416 struct ReportState; |
416 static void ReportCallback(const void* ptr, AllocValue* v, ReportState*); | 417 static void ReportCallback(const void* ptr, AllocValue* v, ReportState*); |
417 static void ReportObject(const void* ptr, AllocValue* v, char*); | 418 static void ReportObject(const void* ptr, AllocValue* v, char*); |
418 | 419 |
419 DISALLOW_COPY_AND_ASSIGN(Snapshot); | 420 DISALLOW_COPY_AND_ASSIGN(Snapshot); |
420 }; | 421 }; |
421 | 422 |
422 #endif // BASE_HEAP_PROFILE_TABLE_H_ | 423 #endif // BASE_HEAP_PROFILE_TABLE_H_ |
OLD | NEW |