Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(416)

Unified Diff: third_party/tcmalloc/chromium/src/deep-heap-profile.cc

Issue 14823009: Add the reason in heap profiler dumps. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebased again Created 7 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/tcmalloc/chromium/src/deep-heap-profile.cc
diff --git a/third_party/tcmalloc/chromium/src/deep-heap-profile.cc b/third_party/tcmalloc/chromium/src/deep-heap-profile.cc
index f89d8ce90e3c7d8f267aa2222be281cb9319fefa..b5d482177043e4b1071af1f164dd0237f3e9cca9 100644
--- a/third_party/tcmalloc/chromium/src/deep-heap-profile.cc
+++ b/third_party/tcmalloc/chromium/src/deep-heap-profile.cc
@@ -229,7 +229,9 @@ DeepHeapProfile::~DeepHeapProfile() {
// Global malloc() should not be used in this function.
// Use LowLevelAlloc if required.
-int DeepHeapProfile::FillOrderedProfile(char raw_buffer[], int buffer_size) {
+int DeepHeapProfile::FillOrderedProfile(const char* reason,
+ char raw_buffer[],
+ int buffer_size) {
TextBuffer buffer(raw_buffer, buffer_size);
TextBuffer global_buffer(profiler_buffer_, kProfilerBufferSize);
@@ -275,6 +277,12 @@ int DeepHeapProfile::FillOrderedProfile(char raw_buffer[], int buffer_size) {
buffer.AppendUnsignedLong(time_value, 0);
buffer.AppendChar('\n');
+ if (reason != NULL) {
+ buffer.AppendString("Reason: ", 0);
+ buffer.AppendString(reason, 0);
+ buffer.AppendChar('\n');
+ }
+
// Fill buffer with the global stats.
buffer.AppendString(kMMapListHeader, 0);
@@ -325,63 +333,79 @@ void DeepHeapProfile::TextBuffer::Write(RawFD fd) {
}
// TODO(dmikurube): These Append* functions should not use snprintf.
-bool DeepHeapProfile::TextBuffer::AppendChar(char v) {
- return ForwardCursor(snprintf(buffer_ + cursor_, size_ - cursor_, "%c", v));
+bool DeepHeapProfile::TextBuffer::AppendChar(char value) {
+ return ForwardCursor(snprintf(buffer_ + cursor_, size_ - cursor_,
+ "%c", value));
}
-bool DeepHeapProfile::TextBuffer::AppendString(const char* s, int d) {
+bool DeepHeapProfile::TextBuffer::AppendString(const char* value, int width) {
+ char* position = buffer_ + cursor_;
+ int available = size_ - cursor_;
int appended;
- if (d == 0)
- appended = snprintf(buffer_ + cursor_, size_ - cursor_, "%s", s);
+ if (width == 0)
+ appended = snprintf(position, available, "%s", value);
else
- appended = snprintf(buffer_ + cursor_, size_ - cursor_, "%*s", d, s);
+ appended = snprintf(position, available, "%*s",
+ width, value);
return ForwardCursor(appended);
}
-bool DeepHeapProfile::TextBuffer::AppendInt(int v, int d, bool leading_zero) {
+bool DeepHeapProfile::TextBuffer::AppendInt(int value, int width,
+ bool leading_zero) {
+ char* position = buffer_ + cursor_;
+ int available = size_ - cursor_;
int appended;
- if (d == 0)
- appended = snprintf(buffer_ + cursor_, size_ - cursor_, "%d", v);
+ if (width == 0)
+ appended = snprintf(position, available, "%d", value);
else if (leading_zero)
- appended = snprintf(buffer_ + cursor_, size_ - cursor_, "%0*d", d, v);
+ appended = snprintf(position, available, "%0*d", width, value);
else
- appended = snprintf(buffer_ + cursor_, size_ - cursor_, "%*d", d, v);
+ appended = snprintf(position, available, "%*d", width, value);
return ForwardCursor(appended);
}
-bool DeepHeapProfile::TextBuffer::AppendLong(long v, int d) {
+bool DeepHeapProfile::TextBuffer::AppendLong(long value, int width) {
+ char* position = buffer_ + cursor_;
+ int available = size_ - cursor_;
int appended;
- if (d == 0)
- appended = snprintf(buffer_ + cursor_, size_ - cursor_, "%ld", v);
+ if (width == 0)
+ appended = snprintf(position, available, "%ld", value);
else
- appended = snprintf(buffer_ + cursor_, size_ - cursor_, "%*ld", d, v);
+ appended = snprintf(position, available, "%*ld", width, value);
return ForwardCursor(appended);
}
-bool DeepHeapProfile::TextBuffer::AppendUnsignedLong(unsigned long v, int d) {
+bool DeepHeapProfile::TextBuffer::AppendUnsignedLong(unsigned long value,
+ int width) {
+ char* position = buffer_ + cursor_;
+ int available = size_ - cursor_;
int appended;
- if (d == 0)
- appended = snprintf(buffer_ + cursor_, size_ - cursor_, "%lu", v);
+ if (width == 0)
+ appended = snprintf(position, available, "%lu", value);
else
- appended = snprintf(buffer_ + cursor_, size_ - cursor_, "%*lu", d, v);
+ appended = snprintf(position, available, "%*lu", width, value);
return ForwardCursor(appended);
}
-bool DeepHeapProfile::TextBuffer::AppendInt64(int64 v, int d) {
+bool DeepHeapProfile::TextBuffer::AppendInt64(int64 value, int width) {
+ char* position = buffer_ + cursor_;
+ int available = size_ - cursor_;
int appended;
- if (d == 0)
- appended = snprintf(buffer_ + cursor_, size_ - cursor_, "%"PRId64, v);
+ if (width == 0)
+ appended = snprintf(position, available, "%"PRId64, value);
else
- appended = snprintf(buffer_ + cursor_, size_ - cursor_, "%*"PRId64, d, v);
+ appended = snprintf(position, available, "%*"PRId64, width, value);
return ForwardCursor(appended);
}
-bool DeepHeapProfile::TextBuffer::AppendPtr(uint64 v, int d) {
+bool DeepHeapProfile::TextBuffer::AppendPtr(uint64 value, int width) {
+ char* position = buffer_ + cursor_;
+ int available = size_ - cursor_;
int appended;
- if (d == 0)
- appended = snprintf(buffer_ + cursor_, size_ - cursor_, "%"PRIx64, v);
+ if (width == 0)
+ appended = snprintf(position, available, "%"PRIx64, value);
else
- appended = snprintf(buffer_ + cursor_, size_ - cursor_, "%0*"PRIx64, d, v);
+ appended = snprintf(position, available, "%0*"PRIx64, width, value);
return ForwardCursor(appended);
}
« no previous file with comments | « third_party/tcmalloc/chromium/src/deep-heap-profile.h ('k') | third_party/tcmalloc/chromium/src/heap-profiler.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698