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

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

Issue 15511005: Breakdown "unhooked" memory regions by VMA pathnames and permissions. (Closed) Base URL: git@github.com:dmikurube/chromium.git@work
Patch Set: Created 7 years, 6 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // --- 5 // ---
6 // Author: Sainbayar Sukhbaatar 6 // Author: Sainbayar Sukhbaatar
7 // Dai Mikurube 7 // Dai Mikurube
8 // 8 //
9 9
10 #include "deep-heap-profile.h" 10 #include "deep-heap-profile.h"
(...skipping 23 matching lines...) Expand all
34 static const char kProfileVersion[] = "DUMP_DEEP_6"; 34 static const char kProfileVersion[] = "DUMP_DEEP_6";
35 static const char kMetaInformationHeader[] = "META:\n"; 35 static const char kMetaInformationHeader[] = "META:\n";
36 static const char kMMapListHeader[] = "MMAP_LIST:\n"; 36 static const char kMMapListHeader[] = "MMAP_LIST:\n";
37 static const char kGlobalStatsHeader[] = "GLOBAL_STATS:\n"; 37 static const char kGlobalStatsHeader[] = "GLOBAL_STATS:\n";
38 static const char kStacktraceHeader[] = "STACKTRACES:\n"; 38 static const char kStacktraceHeader[] = "STACKTRACES:\n";
39 static const char kProcSelfMapsHeader[] = "\nMAPPED_LIBRARIES:\n"; 39 static const char kProcSelfMapsHeader[] = "\nMAPPED_LIBRARIES:\n";
40 40
41 static const char kVirtualLabel[] = "virtual"; 41 static const char kVirtualLabel[] = "virtual";
42 static const char kCommittedLabel[] = "committed"; 42 static const char kCommittedLabel[] = "committed";
43 43
44 const char* DeepHeapProfile::kMapsRegionTypeDict[] = {
45 "absent",
46 "anonymous",
47 "file-exec",
48 "file-nonexec",
49 "stack",
50 "other",
51 };
52
53 namespace { 44 namespace {
54 45
55 #if defined(__linux__) 46 #if defined(__linux__)
56 47
57 // Implements MemoryResidenceInfoGetterInterface for Linux. 48 // Implements MemoryResidenceInfoGetterInterface for Linux.
58 class MemoryInfoGetterLinux : 49 class MemoryInfoGetterLinux :
59 public DeepHeapProfile::MemoryResidenceInfoGetterInterface { 50 public DeepHeapProfile::MemoryResidenceInfoGetterInterface {
60 public: 51 public:
61 MemoryInfoGetterLinux(): fd_(kIllegalRawFD) {} 52 MemoryInfoGetterLinux(): fd_(kIllegalRawFD) {}
62 virtual ~MemoryInfoGetterLinux() {} 53 virtual ~MemoryInfoGetterLinux() {}
(...skipping 673 matching lines...) Expand 10 before | Expand all | Expand 10 after
736 uint64 committed_size = unhooked_[type].Record( 727 uint64 committed_size = unhooked_[type].Record(
737 memory_residence_info_getter, 728 memory_residence_info_getter,
738 cursor, 729 cursor,
739 last_address_of_unhooked); 730 last_address_of_unhooked);
740 if (mmap_dump_buffer) { 731 if (mmap_dump_buffer) {
741 mmap_dump_buffer->AppendString(" ", 0); 732 mmap_dump_buffer->AppendString(" ", 0);
742 mmap_dump_buffer->AppendPtr(cursor, 0); 733 mmap_dump_buffer->AppendPtr(cursor, 0);
743 mmap_dump_buffer->AppendString(" - ", 0); 734 mmap_dump_buffer->AppendString(" - ", 0);
744 mmap_dump_buffer->AppendPtr(last_address_of_unhooked + 1, 0); 735 mmap_dump_buffer->AppendPtr(last_address_of_unhooked + 1, 0);
745 mmap_dump_buffer->AppendString(" unhooked ", 0); 736 mmap_dump_buffer->AppendString(" unhooked ", 0);
746 mmap_dump_buffer->AppendString(kMapsRegionTypeDict[type], 0);
747 mmap_dump_buffer->AppendString(" ", 0);
748 mmap_dump_buffer->AppendInt64(committed_size, 0); 737 mmap_dump_buffer->AppendInt64(committed_size, 0);
749 mmap_dump_buffer->AppendString(" / ", 0); 738 mmap_dump_buffer->AppendString(" / ", 0);
750 mmap_dump_buffer->AppendInt64( 739 mmap_dump_buffer->AppendInt64(
751 last_address_of_unhooked - cursor + 1, 0); 740 last_address_of_unhooked - cursor + 1, 0);
752 mmap_dump_buffer->AppendString("\n", 0); 741 mmap_dump_buffer->AppendString("\n", 0);
753 } 742 }
754 cursor = last_address_of_unhooked + 1; 743 cursor = last_address_of_unhooked + 1;
755 } 744 }
756 745
757 if (mmap_iter != MemoryRegionMap::EndRegionLocked() && 746 if (mmap_iter != MemoryRegionMap::EndRegionLocked() &&
(...skipping 13 matching lines...) Expand all
771 uint64 committed_size = memory_residence_info_getter->CommittedSize( 760 uint64 committed_size = memory_residence_info_getter->CommittedSize(
772 partial_first_address, partial_last_address); 761 partial_first_address, partial_last_address);
773 mmap_dump_buffer->AppendString(trailing ? " (" : " ", 0); 762 mmap_dump_buffer->AppendString(trailing ? " (" : " ", 0);
774 mmap_dump_buffer->AppendPtr(mmap_iter->start_addr, 0); 763 mmap_dump_buffer->AppendPtr(mmap_iter->start_addr, 0);
775 mmap_dump_buffer->AppendString(trailing ? ")" : " ", 0); 764 mmap_dump_buffer->AppendString(trailing ? ")" : " ", 0);
776 mmap_dump_buffer->AppendString("-", 0); 765 mmap_dump_buffer->AppendString("-", 0);
777 mmap_dump_buffer->AppendString(continued ? "(" : " ", 0); 766 mmap_dump_buffer->AppendString(continued ? "(" : " ", 0);
778 mmap_dump_buffer->AppendPtr(mmap_iter->end_addr, 0); 767 mmap_dump_buffer->AppendPtr(mmap_iter->end_addr, 0);
779 mmap_dump_buffer->AppendString(continued ? ")" : " ", 0); 768 mmap_dump_buffer->AppendString(continued ? ")" : " ", 0);
780 mmap_dump_buffer->AppendString(" hooked ", 0); 769 mmap_dump_buffer->AppendString(" hooked ", 0);
781 mmap_dump_buffer->AppendString(kMapsRegionTypeDict[type], 0);
782 mmap_dump_buffer->AppendString(" ", 0);
783 mmap_dump_buffer->AppendInt64(committed_size, 0); 770 mmap_dump_buffer->AppendInt64(committed_size, 0);
784 mmap_dump_buffer->AppendString(" / ", 0); 771 mmap_dump_buffer->AppendString(" / ", 0);
785 mmap_dump_buffer->AppendInt64( 772 mmap_dump_buffer->AppendInt64(
786 partial_last_address - partial_first_address + 1, 0); 773 partial_last_address - partial_first_address + 1, 0);
787 mmap_dump_buffer->AppendString(" @ ", 0); 774 mmap_dump_buffer->AppendString(" @ ", 0);
788 if (deep_bucket != NULL) { 775 if (deep_bucket != NULL) {
789 mmap_dump_buffer->AppendInt(deep_bucket->id, 0, false); 776 mmap_dump_buffer->AppendInt(deep_bucket->id, 0, false);
790 } else { 777 } else {
791 mmap_dump_buffer->AppendInt(0, 0, false); 778 mmap_dump_buffer->AppendInt(0, 0, false);
792 } 779 }
(...skipping 165 matching lines...) Expand 10 before | Expand all | Expand 10 after
958 } 945 }
959 946
960 DeepHeapProfile::~DeepHeapProfile() { 947 DeepHeapProfile::~DeepHeapProfile() {
961 } 948 }
962 949
963 int DeepHeapProfile::FillOrderedProfile(char raw_buffer[], int buffer_size) { 950 int DeepHeapProfile::FillOrderedProfile(char raw_buffer[], int buffer_size) {
964 return heap_profile_->FillOrderedProfile(raw_buffer, buffer_size); 951 return heap_profile_->FillOrderedProfile(raw_buffer, buffer_size);
965 } 952 }
966 953
967 #endif // USE_DEEP_HEAP_PROFILE 954 #endif // USE_DEEP_HEAP_PROFILE
OLDNEW
« no previous file with comments | « no previous file | tools/deep_memory_profiler/dmprof.py » ('j') | tools/deep_memory_profiler/policy.android.browser.json » ('J')

Powered by Google App Engine
This is Rietveld 408576698