OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 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_FRAMES_H_ | 5 #ifndef V8_FRAMES_H_ |
6 #define V8_FRAMES_H_ | 6 #define V8_FRAMES_H_ |
7 | 7 |
8 #include "src/allocation.h" | 8 #include "src/allocation.h" |
9 #include "src/handles.h" | 9 #include "src/handles.h" |
10 #include "src/safepoint-table.h" | 10 #include "src/safepoint-table.h" |
(...skipping 853 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
864 // Architecture-specific register description. | 864 // Architecture-specific register description. |
865 static Register fp_register(); | 865 static Register fp_register(); |
866 static Register context_register(); | 866 static Register context_register(); |
867 static Register constant_pool_pointer_register(); | 867 static Register constant_pool_pointer_register(); |
868 | 868 |
869 static JavaScriptFrame* cast(StackFrame* frame) { | 869 static JavaScriptFrame* cast(StackFrame* frame) { |
870 DCHECK(frame->is_java_script()); | 870 DCHECK(frame->is_java_script()); |
871 return static_cast<JavaScriptFrame*>(frame); | 871 return static_cast<JavaScriptFrame*>(frame); |
872 } | 872 } |
873 | 873 |
874 static void PrintFunctionAndOffset(JSFunction* function, Code* code, | 874 static void PrintFunctionAndOffset(JSFunction* function, AbstractCode* code, |
875 Address pc, FILE* file, | 875 int code_offset, FILE* file, |
876 bool print_line_number); | 876 bool print_line_number); |
877 | 877 |
878 static void PrintTop(Isolate* isolate, FILE* file, bool print_args, | 878 static void PrintTop(Isolate* isolate, FILE* file, bool print_args, |
879 bool print_line_number); | 879 bool print_line_number); |
880 | 880 |
881 protected: | 881 protected: |
882 inline explicit JavaScriptFrame(StackFrameIteratorBase* iterator); | 882 inline explicit JavaScriptFrame(StackFrameIteratorBase* iterator); |
883 | 883 |
884 Address GetCallerStackPointer() const override; | 884 Address GetCallerStackPointer() const override; |
885 | 885 |
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
977 | 977 |
978 // Access to the interpreter register file for this frame. | 978 // Access to the interpreter register file for this frame. |
979 Object* ReadInterpreterRegister(int register_index) const; | 979 Object* ReadInterpreterRegister(int register_index) const; |
980 void WriteInterpreterRegister(int register_index, Object* value); | 980 void WriteInterpreterRegister(int register_index, Object* value); |
981 | 981 |
982 // Build a list with summaries for this frame including all inlined frames. | 982 // Build a list with summaries for this frame including all inlined frames. |
983 void Summarize( | 983 void Summarize( |
984 List<FrameSummary>* frames, | 984 List<FrameSummary>* frames, |
985 FrameSummary::Mode mode = FrameSummary::kExactSummary) const override; | 985 FrameSummary::Mode mode = FrameSummary::kExactSummary) const override; |
986 | 986 |
| 987 static int GetBytecodeOffset(Address fp); |
| 988 |
987 protected: | 989 protected: |
988 inline explicit InterpretedFrame(StackFrameIteratorBase* iterator); | 990 inline explicit InterpretedFrame(StackFrameIteratorBase* iterator); |
989 | 991 |
990 Address GetExpressionAddress(int n) const override; | 992 Address GetExpressionAddress(int n) const override; |
991 | 993 |
992 private: | 994 private: |
993 friend class StackFrameIteratorBase; | 995 friend class StackFrameIteratorBase; |
994 }; | 996 }; |
995 | 997 |
996 | 998 |
(...skipping 324 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1321 | 1323 |
1322 | 1324 |
1323 // Reads all frames on the current stack and copies them into the current | 1325 // Reads all frames on the current stack and copies them into the current |
1324 // zone memory. | 1326 // zone memory. |
1325 Vector<StackFrame*> CreateStackMap(Isolate* isolate, Zone* zone); | 1327 Vector<StackFrame*> CreateStackMap(Isolate* isolate, Zone* zone); |
1326 | 1328 |
1327 } // namespace internal | 1329 } // namespace internal |
1328 } // namespace v8 | 1330 } // namespace v8 |
1329 | 1331 |
1330 #endif // V8_FRAMES_H_ | 1332 #endif // V8_FRAMES_H_ |
OLD | NEW |