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

Side by Side Diff: src/profile-generator.h

Issue 10128006: Show names for the strong roots in heap snapshot. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Addressing comments. Created 8 years, 8 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 | Annotate | Revision Log
« no previous file with comments | « no previous file | src/profile-generator.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2011 the V8 project authors. All rights reserved. 1 // Copyright 2011 the V8 project authors. All rights reserved.
2 // Redistribution and use in source and binary forms, with or without 2 // Redistribution and use in source and binary forms, with or without
3 // modification, are permitted provided that the following conditions are 3 // modification, are permitted provided that the following conditions are
4 // met: 4 // met:
5 // 5 //
6 // * Redistributions of source code must retain the above copyright 6 // * Redistributions of source code must retain the above copyright
7 // notice, this list of conditions and the following disclaimer. 7 // notice, this list of conditions and the following disclaimer.
8 // * Redistributions in binary form must reproduce the above 8 // * Redistributions in binary form must reproduce the above
9 // copyright notice, this list of conditions and the following 9 // copyright notice, this list of conditions and the following
10 // disclaimer in the documentation and/or other materials provided 10 // disclaimer in the documentation and/or other materials provided
(...skipping 879 matching lines...) Expand 10 before | Expand all | Expand 10 after
890 890
891 891
892 class HeapObjectsSet { 892 class HeapObjectsSet {
893 public: 893 public:
894 HeapObjectsSet(); 894 HeapObjectsSet();
895 void Clear(); 895 void Clear();
896 bool Contains(Object* object); 896 bool Contains(Object* object);
897 void Insert(Object* obj); 897 void Insert(Object* obj);
898 const char* GetTag(Object* obj); 898 const char* GetTag(Object* obj);
899 void SetTag(Object* obj, const char* tag); 899 void SetTag(Object* obj, const char* tag);
900 bool is_empty() const { return entries_.occupancy() == 0; }
900 901
901 private: 902 private:
902 HashMap entries_; 903 HashMap entries_;
903 904
904 DISALLOW_COPY_AND_ASSIGN(HeapObjectsSet); 905 DISALLOW_COPY_AND_ASSIGN(HeapObjectsSet);
905 }; 906 };
906 907
907 908
908 // An interface used to populate a snapshot with nodes and edges. 909 // An interface used to populate a snapshot with nodes and edges.
909 class SnapshotFillerInterface { 910 class SnapshotFillerInterface {
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after
1018 int field_offset = -1); 1019 int field_offset = -1);
1019 void SetPropertyShortcutReference(HeapObject* parent_obj, 1020 void SetPropertyShortcutReference(HeapObject* parent_obj,
1020 HeapEntry* parent, 1021 HeapEntry* parent,
1021 String* reference_name, 1022 String* reference_name,
1022 Object* child); 1023 Object* child);
1023 void SetUserGlobalReference(Object* window); 1024 void SetUserGlobalReference(Object* window);
1024 void SetRootGcRootsReference(); 1025 void SetRootGcRootsReference();
1025 void SetGcRootsReference(VisitorSynchronization::SyncTag tag); 1026 void SetGcRootsReference(VisitorSynchronization::SyncTag tag);
1026 void SetGcSubrootReference( 1027 void SetGcSubrootReference(
1027 VisitorSynchronization::SyncTag tag, bool is_weak, Object* child); 1028 VisitorSynchronization::SyncTag tag, bool is_weak, Object* child);
1029 const char* GetStrongGcSubrootName(Object* object);
1028 void SetObjectName(HeapObject* object); 1030 void SetObjectName(HeapObject* object);
1029 void TagObject(Object* obj, const char* tag); 1031 void TagObject(Object* obj, const char* tag);
1030 1032
1031 HeapEntry* GetEntry(Object* obj); 1033 HeapEntry* GetEntry(Object* obj);
1032 1034
1033 static inline HeapObject* GetNthGcSubrootObject(int delta); 1035 static inline HeapObject* GetNthGcSubrootObject(int delta);
1034 static inline int GetGcSubrootOrder(HeapObject* subroot); 1036 static inline int GetGcSubrootOrder(HeapObject* subroot);
1035 1037
1036 Heap* heap_; 1038 Heap* heap_;
1037 HeapSnapshot* snapshot_; 1039 HeapSnapshot* snapshot_;
1038 HeapSnapshotsCollection* collection_; 1040 HeapSnapshotsCollection* collection_;
1039 SnapshottingProgressReportingInterface* progress_; 1041 SnapshottingProgressReportingInterface* progress_;
1040 SnapshotFillerInterface* filler_; 1042 SnapshotFillerInterface* filler_;
1041 HeapObjectsSet objects_tags_; 1043 HeapObjectsSet objects_tags_;
1044 HeapObjectsSet strong_gc_subroot_names_;
1042 1045
1043 static HeapObject* const kGcRootsObject; 1046 static HeapObject* const kGcRootsObject;
1044 static HeapObject* const kFirstGcSubrootObject; 1047 static HeapObject* const kFirstGcSubrootObject;
1045 static HeapObject* const kLastGcSubrootObject; 1048 static HeapObject* const kLastGcSubrootObject;
1046 1049
1047 friend class IndexedReferencesExtractor; 1050 friend class IndexedReferencesExtractor;
1048 friend class GcSubrootsEnumerator; 1051 friend class GcSubrootsEnumerator;
1049 friend class RootsReferencesExtractor; 1052 friend class RootsReferencesExtractor;
1050 1053
1051 DISALLOW_COPY_AND_ASSIGN(V8HeapExplorer); 1054 DISALLOW_COPY_AND_ASSIGN(V8HeapExplorer);
(...skipping 140 matching lines...) Expand 10 before | Expand all | Expand 10 after
1192 1195
1193 friend class HeapSnapshotJSONSerializerEnumerator; 1196 friend class HeapSnapshotJSONSerializerEnumerator;
1194 friend class HeapSnapshotJSONSerializerIterator; 1197 friend class HeapSnapshotJSONSerializerIterator;
1195 1198
1196 DISALLOW_COPY_AND_ASSIGN(HeapSnapshotJSONSerializer); 1199 DISALLOW_COPY_AND_ASSIGN(HeapSnapshotJSONSerializer);
1197 }; 1200 };
1198 1201
1199 } } // namespace v8::internal 1202 } } // namespace v8::internal
1200 1203
1201 #endif // V8_PROFILE_GENERATOR_H_ 1204 #endif // V8_PROFILE_GENERATOR_H_
OLDNEW
« no previous file with comments | « no previous file | src/profile-generator.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698