OLD | NEW |
1 // Copyright 2016 the V8 project authors. All rights reserved. | 1 // Copyright 2016 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 #include "src/debug/debug-interface.h" | 5 #include "src/debug/debug-interface.h" |
6 #include "src/frames-inl.h" | 6 #include "src/frames-inl.h" |
7 #include "src/property-descriptor.h" | 7 #include "src/property-descriptor.h" |
8 #include "src/utils.h" | 8 #include "src/utils.h" |
9 #include "src/wasm/wasm-macro-gen.h" | 9 #include "src/wasm/wasm-macro-gen.h" |
10 #include "src/wasm/wasm-objects.h" | 10 #include "src/wasm/wasm-objects.h" |
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
52 compiled_module->GetPossibleBreakpoints(start, end, &locations); | 52 compiled_module->GetPossibleBreakpoints(start, end, &locations); |
53 CHECK(!success); | 53 CHECK(!success); |
54 } | 54 } |
55 | 55 |
56 class BreakHandler { | 56 class BreakHandler { |
57 public: | 57 public: |
58 enum Action { | 58 enum Action { |
59 Continue = StepAction::LastStepAction + 1, | 59 Continue = StepAction::LastStepAction + 1, |
60 StepNext = StepAction::StepNext, | 60 StepNext = StepAction::StepNext, |
61 StepIn = StepAction::StepIn, | 61 StepIn = StepAction::StepIn, |
62 StepOut = StepAction::StepOut, | 62 StepOut = StepAction::StepOut |
63 StepFrame = StepAction::StepFrame | |
64 }; | 63 }; |
65 struct BreakPoint { | 64 struct BreakPoint { |
66 int position; | 65 int position; |
67 Action action; | 66 Action action; |
68 BreakPoint(int position, Action action) | 67 BreakPoint(int position, Action action) |
69 : position(position), action(action) {} | 68 : position(position), action(action) {} |
70 }; | 69 }; |
71 | 70 |
72 explicit BreakHandler(Isolate* isolate, | 71 explicit BreakHandler(Isolate* isolate, |
73 std::initializer_list<BreakPoint> expected_breaks) | 72 std::initializer_list<BreakPoint> expected_breaks) |
(...skipping 30 matching lines...) Expand all Loading... |
104 auto summ = FrameSummary::GetTop(frame_it.frame()).AsWasmInterpreted(); | 103 auto summ = FrameSummary::GetTop(frame_it.frame()).AsWasmInterpreted(); |
105 CHECK_EQ(expected_breaks_[count_].position, summ.byte_offset()); | 104 CHECK_EQ(expected_breaks_[count_].position, summ.byte_offset()); |
106 | 105 |
107 Action next_action = expected_breaks_[count_].action; | 106 Action next_action = expected_breaks_[count_].action; |
108 switch (next_action) { | 107 switch (next_action) { |
109 case Continue: | 108 case Continue: |
110 break; | 109 break; |
111 case StepNext: | 110 case StepNext: |
112 case StepIn: | 111 case StepIn: |
113 case StepOut: | 112 case StepOut: |
114 case StepFrame: | |
115 isolate_->debug()->PrepareStep(static_cast<StepAction>(next_action)); | 113 isolate_->debug()->PrepareStep(static_cast<StepAction>(next_action)); |
116 break; | 114 break; |
117 default: | 115 default: |
118 UNREACHABLE(); | 116 UNREACHABLE(); |
119 } | 117 } |
120 ++count_; | 118 ++count_; |
121 } | 119 } |
122 | 120 |
123 static void DebugEventListener(const v8::Debug::EventDetails& event_details) { | 121 static void DebugEventListener(const v8::Debug::EventDetails& event_details) { |
124 if (event_details.GetEvent() != v8::DebugEvent::Break) return; | 122 if (event_details.GetEvent() != v8::DebugEvent::Break) return; |
(...skipping 155 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
280 {19, BreakHandler::StepIn}, // GetLocal | 278 {19, BreakHandler::StepIn}, // GetLocal |
281 {21, BreakHandler::StepIn}, // Call | 279 {21, BreakHandler::StepIn}, // Call |
282 {1, BreakHandler::StepOut}, // in f2 | 280 {1, BreakHandler::StepOut}, // in f2 |
283 {23, BreakHandler::Continue} // After Call | 281 {23, BreakHandler::Continue} // After Call |
284 }); | 282 }); |
285 | 283 |
286 Handle<Object> global(isolate->context()->global_object(), isolate); | 284 Handle<Object> global(isolate->context()->global_object(), isolate); |
287 CHECK(!Execution::Call(isolate, main_fun_wrapper, global, 0, nullptr) | 285 CHECK(!Execution::Call(isolate, main_fun_wrapper, global, 0, nullptr) |
288 .is_null()); | 286 .is_null()); |
289 } | 287 } |
OLD | NEW |