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

Side by Side Diff: src/objects.h

Issue 2230143002: [debugger] use source position to identify break points. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: address comment Created 4 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 unified diff | Download patch
« no previous file with comments | « src/debug/debug.cc ('k') | src/objects.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 2015 the V8 project authors. All rights reserved. 1 // Copyright 2015 the V8 project 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 #ifndef V8_OBJECTS_H_ 5 #ifndef V8_OBJECTS_H_
6 #define V8_OBJECTS_H_ 6 #define V8_OBJECTS_H_
7 7
8 #include <iosfwd> 8 #include <iosfwd>
9 #include <memory> 9 #include <memory>
10 10
(...skipping 10848 matching lines...) Expand 10 before | Expand all | Expand 10 after
10859 class DebugInfo: public Struct { 10859 class DebugInfo: public Struct {
10860 public: 10860 public:
10861 // The shared function info for the source being debugged. 10861 // The shared function info for the source being debugged.
10862 DECL_ACCESSORS(shared, SharedFunctionInfo) 10862 DECL_ACCESSORS(shared, SharedFunctionInfo)
10863 // Code object for the patched code. This code object is the code object 10863 // Code object for the patched code. This code object is the code object
10864 // currently active for the function. 10864 // currently active for the function.
10865 DECL_ACCESSORS(abstract_code, AbstractCode) 10865 DECL_ACCESSORS(abstract_code, AbstractCode)
10866 // Fixed array holding status information for each active break point. 10866 // Fixed array holding status information for each active break point.
10867 DECL_ACCESSORS(break_points, FixedArray) 10867 DECL_ACCESSORS(break_points, FixedArray)
10868 10868
10869 // Check if there is a break point at a code offset. 10869 // Check if there is a break point at a source position.
10870 bool HasBreakPoint(int code_offset); 10870 bool HasBreakPoint(int source_position);
10871 // Get the break point info object for a code offset.
10872 Object* GetBreakPointInfo(int code_offset);
10873 // Clear a break point. 10871 // Clear a break point.
10874 static void ClearBreakPoint(Handle<DebugInfo> debug_info, int code_offset, 10872 static void ClearBreakPoint(Handle<DebugInfo> debug_info, int source_position,
10875 Handle<Object> break_point_object); 10873 Handle<Object> break_point_object);
10876 // Set a break point. 10874 // Set a break point.
10877 static void SetBreakPoint(Handle<DebugInfo> debug_info, int code_offset, 10875 static void SetBreakPoint(Handle<DebugInfo> debug_info, int source_position,
10878 int source_position, int statement_position, 10876 int statement_position,
10879 Handle<Object> break_point_object); 10877 Handle<Object> break_point_object);
10880 // Get the break point objects for a code offset. 10878 // Get the break point objects for a source position.
10881 Handle<Object> GetBreakPointObjects(int code_offset); 10879 Handle<Object> GetBreakPointObjects(int source_position);
10882 // Find the break point info holding this break point object. 10880 // Find the break point info holding this break point object.
10883 static Handle<Object> FindBreakPointInfo(Handle<DebugInfo> debug_info, 10881 static Handle<Object> FindBreakPointInfo(Handle<DebugInfo> debug_info,
10884 Handle<Object> break_point_object); 10882 Handle<Object> break_point_object);
10885 // Get the number of break points for this function. 10883 // Get the number of break points for this function.
10886 int GetBreakPointCount(); 10884 int GetBreakPointCount();
10887 10885
10888 static Smi* uninitialized() { return Smi::FromInt(0); } 10886 static Smi* uninitialized() { return Smi::FromInt(0); }
10889 10887
10890 inline BytecodeArray* original_bytecode_array(); 10888 inline BytecodeArray* original_bytecode_array();
10891 10889
10892 DECLARE_CAST(DebugInfo) 10890 DECLARE_CAST(DebugInfo)
10893 10891
10894 // Dispatched behavior. 10892 // Dispatched behavior.
10895 DECLARE_PRINTER(DebugInfo) 10893 DECLARE_PRINTER(DebugInfo)
10896 DECLARE_VERIFIER(DebugInfo) 10894 DECLARE_VERIFIER(DebugInfo)
10897 10895
10898 static const int kSharedFunctionInfoIndex = Struct::kHeaderSize; 10896 static const int kSharedFunctionInfoIndex = Struct::kHeaderSize;
10899 static const int kAbstractCodeIndex = kSharedFunctionInfoIndex + kPointerSize; 10897 static const int kAbstractCodeIndex = kSharedFunctionInfoIndex + kPointerSize;
10900 static const int kBreakPointsStateIndex = kAbstractCodeIndex + kPointerSize; 10898 static const int kBreakPointsStateIndex = kAbstractCodeIndex + kPointerSize;
10901 static const int kSize = kBreakPointsStateIndex + kPointerSize; 10899 static const int kSize = kBreakPointsStateIndex + kPointerSize;
10902 10900
10903 static const int kEstimatedNofBreakPointsInFunction = 16; 10901 static const int kEstimatedNofBreakPointsInFunction = 16;
10904 10902
10905 private: 10903 private:
10906 static const int kNoBreakPointInfo = -1; 10904 // Get the break point info object for a source position.
10907 10905 Object* GetBreakPointInfo(int source_position);
10908 // Lookup the index in the break_points array for a code offset.
10909 int GetBreakPointInfoIndex(int code_offset);
10910 10906
10911 DISALLOW_IMPLICIT_CONSTRUCTORS(DebugInfo); 10907 DISALLOW_IMPLICIT_CONSTRUCTORS(DebugInfo);
10912 }; 10908 };
10913 10909
10914 10910
10915 // The BreakPointInfo class holds information for break points set in a 10911 // The BreakPointInfo class holds information for break points set in a
10916 // function. The DebugInfo object holds a BreakPointInfo object for each code 10912 // function. The DebugInfo object holds a BreakPointInfo object for each code
10917 // position with one or more break points. 10913 // position with one or more break points.
10918 class BreakPointInfo: public Struct { 10914 class BreakPointInfo: public Struct {
10919 public: 10915 public:
10920 // The code offset for the break point.
10921 DECL_INT_ACCESSORS(code_offset)
10922 // The position in the source for the break position. 10916 // The position in the source for the break position.
10923 DECL_INT_ACCESSORS(source_position) 10917 DECL_INT_ACCESSORS(source_position)
10924 // The position in the source for the last statement before this break
10925 // position.
10926 DECL_INT_ACCESSORS(statement_position)
10927 // List of related JavaScript break points. 10918 // List of related JavaScript break points.
10928 DECL_ACCESSORS(break_point_objects, Object) 10919 DECL_ACCESSORS(break_point_objects, Object)
10929 10920
10930 // Removes a break point. 10921 // Removes a break point.
10931 static void ClearBreakPoint(Handle<BreakPointInfo> info, 10922 static void ClearBreakPoint(Handle<BreakPointInfo> info,
10932 Handle<Object> break_point_object); 10923 Handle<Object> break_point_object);
10933 // Set a break point. 10924 // Set a break point.
10934 static void SetBreakPoint(Handle<BreakPointInfo> info, 10925 static void SetBreakPoint(Handle<BreakPointInfo> info,
10935 Handle<Object> break_point_object); 10926 Handle<Object> break_point_object);
10936 // Check if break point info has this break point object. 10927 // Check if break point info has this break point object.
10937 static bool HasBreakPointObject(Handle<BreakPointInfo> info, 10928 static bool HasBreakPointObject(Handle<BreakPointInfo> info,
10938 Handle<Object> break_point_object); 10929 Handle<Object> break_point_object);
10939 // Get the number of break points for this code offset. 10930 // Get the number of break points for this code offset.
10940 int GetBreakPointCount(); 10931 int GetBreakPointCount();
10941 10932
10942 DECLARE_CAST(BreakPointInfo) 10933 DECLARE_CAST(BreakPointInfo)
10943 10934
10944 // Dispatched behavior. 10935 // Dispatched behavior.
10945 DECLARE_PRINTER(BreakPointInfo) 10936 DECLARE_PRINTER(BreakPointInfo)
10946 DECLARE_VERIFIER(BreakPointInfo) 10937 DECLARE_VERIFIER(BreakPointInfo)
10947 10938
10948 static const int kCodeOffsetIndex = Struct::kHeaderSize; 10939 static const int kSourcePositionIndex = Struct::kHeaderSize;
10949 static const int kSourcePositionIndex = kCodeOffsetIndex + kPointerSize; 10940 static const int kBreakPointObjectsIndex =
10950 static const int kStatementPositionIndex =
10951 kSourcePositionIndex + kPointerSize; 10941 kSourcePositionIndex + kPointerSize;
10952 static const int kBreakPointObjectsIndex =
10953 kStatementPositionIndex + kPointerSize;
10954 static const int kSize = kBreakPointObjectsIndex + kPointerSize; 10942 static const int kSize = kBreakPointObjectsIndex + kPointerSize;
10955 10943
10956 private: 10944 private:
10957 DISALLOW_IMPLICIT_CONSTRUCTORS(BreakPointInfo); 10945 DISALLOW_IMPLICIT_CONSTRUCTORS(BreakPointInfo);
10958 }; 10946 };
10959 10947
10960 10948
10961 #undef DECL_BOOLEAN_ACCESSORS 10949 #undef DECL_BOOLEAN_ACCESSORS
10962 #undef DECL_ACCESSORS 10950 #undef DECL_ACCESSORS
10963 #undef DECLARE_CAST 10951 #undef DECLARE_CAST
(...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after
11076 } 11064 }
11077 return value; 11065 return value;
11078 } 11066 }
11079 }; 11067 };
11080 11068
11081 11069
11082 } // NOLINT, false-positive due to second-order macros. 11070 } // NOLINT, false-positive due to second-order macros.
11083 } // NOLINT, false-positive due to second-order macros. 11071 } // NOLINT, false-positive due to second-order macros.
11084 11072
11085 #endif // V8_OBJECTS_H_ 11073 #endif // V8_OBJECTS_H_
OLDNEW
« no previous file with comments | « src/debug/debug.cc ('k') | src/objects.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698