Index: src/heap/heap.h |
diff --git a/src/heap/heap.h b/src/heap/heap.h |
index 742aa4ba89c0c3535e7a3c7d8ab0b473479e2544..ef85e16080795813fb518be10a9fec04445d1a3f 100644 |
--- a/src/heap/heap.h |
+++ b/src/heap/heap.h |
@@ -1146,6 +1146,8 @@ class Heap { |
static const int kMaxExecutableSizeHugeMemoryDevice = |
256 * kPointerMultiplier; |
+ static const int kTraceRingBufferSize = 512; |
+ |
// Calculates the allocation limit based on a given growing factor and a |
// given old generation size. |
intptr_t CalculateOldGenerationAllocationLimit(double factor, |
@@ -2153,6 +2155,9 @@ class Heap { |
inline void UpdateAllocationsHash(uint32_t value); |
inline void PrintAlloctionsHash(); |
+ void AddToRingBuffer(const char* string); |
+ void GetFromRingBuffer(char* buffer); |
+ |
// Object counts and used memory by InstanceType |
size_t object_counts_[OBJECT_STATS_COUNT]; |
size_t object_counts_last_time_[OBJECT_STATS_COUNT]; |
@@ -2212,6 +2217,13 @@ class Heap { |
static const int kAllocationSiteScratchpadSize = 256; |
int allocation_sites_scratchpad_length_; |
+ char trace_ring_buffer_[kTraceRingBufferSize]; |
+ // If it's not full then the data is from 0 to ring_buffer_end_. If it's |
+ // full then the data is from ring_buffer_end_ to the end of the buffer and |
+ // from 0 to ring_buffer_end_. |
+ bool ring_buffer_full_; |
+ size_t ring_buffer_end_; |
+ |
static const int kMaxMarkCompactsInIdleRound = 7; |
static const int kIdleScavengeThreshold = 5; |
@@ -2283,7 +2295,8 @@ class HeapStats { |
int* objects_per_type; // 17 |
int* size_per_type; // 18 |
int* os_error; // 19 |
- int* end_marker; // 20 |
+ char* last_few_messages; // 20 |
+ int* end_marker; // 21 |
}; |