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

Unified Diff: tools/oom_dump/oom_dump.cc

Issue 3119023: Various improvements to oom_dump and instance type lists. (Closed)
Patch Set: Addressing Mark's comments Created 10 years, 4 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
« no previous file with comments | « tools/oom_dump/README ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tools/oom_dump/oom_dump.cc
diff --git a/tools/oom_dump/oom_dump.cc b/tools/oom_dump/oom_dump.cc
index 01f6005cbcbdf71871740690f5288caab06a6a41..ae14cde068f1b4529caf1757e7d1a9c8f4a217f4 100644
--- a/tools/oom_dump/oom_dump.cc
+++ b/tools/oom_dump/oom_dump.cc
@@ -25,12 +25,12 @@
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#include <algorithm>
#include <stdio.h>
#include <stdlib.h>
+#include <algorithm>
+
#include <google_breakpad/processor/minidump.h>
-#include <processor/logging.h>
#define ENABLE_DEBUGGER_SUPPORT
@@ -128,6 +128,9 @@ void DumpHeapStats(const char *minidump_file) {
thread_list->GetThreadByID(exception_thread_id);
CHECK(exception_thread);
+ // Currently only 32-bit Windows minidumps are supported.
+ CHECK_EQ(MD_CONTEXT_X86, crash_context->GetContextCPU());
+
const MDRawContextX86* contextX86 = crash_context->GetContextX86();
CHECK(contextX86);
@@ -145,7 +148,7 @@ void DumpHeapStats(const char *minidump_file) {
if (value >= esp && value < last) {
u_int32_t value2 = 0;
CHECK(memory_region->GetMemoryAtAddress(value, &value2));
- if (value2 == 0xdecade00) {
+ if (value2 == v8::internal::HeapStats::kStartMarker) {
heap_stats_addr = addr;
break;
}
@@ -158,8 +161,8 @@ void DumpHeapStats(const char *minidump_file) {
#define READ_FIELD(offset) \
ReadPointedValue(memory_region, heap_stats_addr, offset)
- CHECK(READ_FIELD(0) == 0xdecade00);
- CHECK(READ_FIELD(23) == 0xdecade01);
+ CHECK(READ_FIELD(0) == v8::internal::HeapStats::kStartMarker);
+ CHECK(READ_FIELD(23) == v8::internal::HeapStats::kEndMarker);
const int new_space_size = READ_FIELD(1);
const int new_space_capacity = READ_FIELD(2);
@@ -213,9 +216,9 @@ void DumpHeapStats(const char *minidump_file) {
// Print heap stats.
- printf("exception thread ID: %d (%x)\n",
+ printf("exception thread ID: %" PRIu32 " (%#" PRIx32 ")\n",
exception_thread_id, exception_thread_id);
- printf("heap stats address: %p\n", (void*)heap_stats_addr);
+ printf("heap stats address: %#" PRIx64 "\n", heap_stats_addr);
#define PRINT_INT_STAT(stat) \
printf("\t%-25s\t% 10d\n", #stat ":", stat);
#define PRINT_MB_STAT(stat) \
@@ -255,15 +258,15 @@ void DumpHeapStats(const char *minidump_file) {
const char* name = InstanceTypeToString(type);
if (name == NULL) {
// Unknown instance type. Check that there is no objects of that type.
- CHECK(objects_per_type[type] == 0);
- CHECK(size_per_type[type] == 0);
+ CHECK_EQ(0, objects_per_type[type]);
+ CHECK_EQ(0, size_per_type[type]);
continue;
}
int size = size_per_type[type];
running_size += size;
printf("\t%-37s% 9d% 11.3f MB% 10.3f%%% 10.3f%%\n",
name, objects_per_type[type], toM(size),
- 100.*size/total_size, 100.*running_size/total_size);
+ 100. * size / total_size, 100. * running_size / total_size);
}
printf("\t%-37s% 9d% 11.3f MB% 10.3f%%% 10.3f%%\n",
"total", 0, toM(total_size), 100., 100.);
@@ -272,8 +275,6 @@ void DumpHeapStats(const char *minidump_file) {
} // namespace
int main(int argc, char **argv) {
- BPLOG_INIT(&argc, &argv);
-
if (argc != 2) {
fprintf(stderr, "usage: %s <minidump>\n", argv[0]);
return 1;
« no previous file with comments | « tools/oom_dump/README ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698