Index: src/allocation-tracker.h |
diff --git a/src/allocation-tracker.h b/src/allocation-tracker.h |
deleted file mode 100644 |
index c409f2437bb4341e33b5c9daa7db753de7f5bc96..0000000000000000000000000000000000000000 |
--- a/src/allocation-tracker.h |
+++ /dev/null |
@@ -1,157 +0,0 @@ |
-// Copyright 2013 the V8 project authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#ifndef V8_ALLOCATION_TRACKER_H_ |
-#define V8_ALLOCATION_TRACKER_H_ |
- |
-#include <map> |
- |
-#include "include/v8-profiler.h" |
-#include "src/handles.h" |
-#include "src/hashmap.h" |
-#include "src/list.h" |
-#include "src/vector.h" |
- |
-namespace v8 { |
-namespace internal { |
- |
-// Forward declarations. |
-class AllocationTraceTree; |
-class AllocationTracker; |
-class HeapObjectsMap; |
-class SharedFunctionInfo; |
-class StringsStorage; |
- |
-class AllocationTraceNode { |
- public: |
- AllocationTraceNode(AllocationTraceTree* tree, |
- unsigned function_info_index); |
- ~AllocationTraceNode(); |
- AllocationTraceNode* FindChild(unsigned function_info_index); |
- AllocationTraceNode* FindOrAddChild(unsigned function_info_index); |
- void AddAllocation(unsigned size); |
- |
- unsigned function_info_index() const { return function_info_index_; } |
- unsigned allocation_size() const { return total_size_; } |
- unsigned allocation_count() const { return allocation_count_; } |
- unsigned id() const { return id_; } |
- Vector<AllocationTraceNode*> children() const { return children_.ToVector(); } |
- |
- void Print(int indent, AllocationTracker* tracker); |
- |
- private: |
- AllocationTraceTree* tree_; |
- unsigned function_info_index_; |
- unsigned total_size_; |
- unsigned allocation_count_; |
- unsigned id_; |
- List<AllocationTraceNode*> children_; |
- |
- DISALLOW_COPY_AND_ASSIGN(AllocationTraceNode); |
-}; |
- |
- |
-class AllocationTraceTree { |
- public: |
- AllocationTraceTree(); |
- ~AllocationTraceTree(); |
- AllocationTraceNode* AddPathFromEnd(const Vector<unsigned>& path); |
- AllocationTraceNode* root() { return &root_; } |
- unsigned next_node_id() { return next_node_id_++; } |
- void Print(AllocationTracker* tracker); |
- |
- private: |
- unsigned next_node_id_; |
- AllocationTraceNode root_; |
- |
- DISALLOW_COPY_AND_ASSIGN(AllocationTraceTree); |
-}; |
- |
- |
-class AddressToTraceMap { |
- public: |
- void AddRange(Address addr, int size, unsigned node_id); |
- unsigned GetTraceNodeId(Address addr); |
- void MoveObject(Address from, Address to, int size); |
- void Clear(); |
- size_t size() { return ranges_.size(); } |
- void Print(); |
- |
- private: |
- struct RangeStack { |
- RangeStack(Address start, unsigned node_id) |
- : start(start), trace_node_id(node_id) {} |
- Address start; |
- unsigned trace_node_id; |
- }; |
- // [start, end) -> trace |
- typedef std::map<Address, RangeStack> RangeMap; |
- |
- void RemoveRange(Address start, Address end); |
- |
- RangeMap ranges_; |
-}; |
- |
-class AllocationTracker { |
- public: |
- struct FunctionInfo { |
- FunctionInfo(); |
- const char* name; |
- SnapshotObjectId function_id; |
- const char* script_name; |
- int script_id; |
- int line; |
- int column; |
- }; |
- |
- AllocationTracker(HeapObjectsMap* ids, StringsStorage* names); |
- ~AllocationTracker(); |
- |
- void PrepareForSerialization(); |
- void AllocationEvent(Address addr, int size); |
- |
- AllocationTraceTree* trace_tree() { return &trace_tree_; } |
- const List<FunctionInfo*>& function_info_list() const { |
- return function_info_list_; |
- } |
- AddressToTraceMap* address_to_trace() { return &address_to_trace_; } |
- |
- private: |
- unsigned AddFunctionInfo(SharedFunctionInfo* info, SnapshotObjectId id); |
- static void DeleteFunctionInfo(FunctionInfo** info); |
- unsigned functionInfoIndexForVMState(StateTag state); |
- |
- class UnresolvedLocation { |
- public: |
- UnresolvedLocation(Script* script, int start, FunctionInfo* info); |
- ~UnresolvedLocation(); |
- void Resolve(); |
- |
- private: |
- static void HandleWeakScript( |
- const v8::WeakCallbackData<v8::Value, void>& data); |
- |
- Handle<Script> script_; |
- int start_position_; |
- FunctionInfo* info_; |
- }; |
- static void DeleteUnresolvedLocation(UnresolvedLocation** location); |
- |
- static const int kMaxAllocationTraceLength = 64; |
- HeapObjectsMap* ids_; |
- StringsStorage* names_; |
- AllocationTraceTree trace_tree_; |
- unsigned allocation_trace_buffer_[kMaxAllocationTraceLength]; |
- List<FunctionInfo*> function_info_list_; |
- HashMap id_to_function_info_index_; |
- List<UnresolvedLocation*> unresolved_locations_; |
- unsigned info_index_for_other_state_; |
- AddressToTraceMap address_to_trace_; |
- |
- DISALLOW_COPY_AND_ASSIGN(AllocationTracker); |
-}; |
- |
-} } // namespace v8::internal |
- |
-#endif // V8_ALLOCATION_TRACKER_H_ |