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 #include "src/debug/debug.h" | 5 #include "src/debug/debug.h" |
6 | 6 |
7 #include "src/api.h" | 7 #include "src/api.h" |
8 #include "src/arguments.h" | 8 #include "src/arguments.h" |
9 #include "src/bootstrapper.h" | 9 #include "src/bootstrapper.h" |
10 #include "src/code-stubs.h" | 10 #include "src/code-stubs.h" |
(...skipping 263 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
274 // Debugger statement always calls debugger. No need to modify it. | 274 // Debugger statement always calls debugger. No need to modify it. |
275 if (IsDebuggerStatement()) return; | 275 if (IsDebuggerStatement()) return; |
276 | 276 |
277 // If there is already a break point here just return. This might happen if | 277 // If there is already a break point here just return. This might happen if |
278 // the same code is flooded with break points twice. Flooding the same | 278 // the same code is flooded with break points twice. Flooding the same |
279 // function twice might happen when stepping in a function with an exception | 279 // function twice might happen when stepping in a function with an exception |
280 // handler as the handler and the function is the same. | 280 // handler as the handler and the function is the same. |
281 if (IsDebugBreak()) return; | 281 if (IsDebugBreak()) return; |
282 | 282 |
283 DCHECK(IsDebugBreakSlot()); | 283 DCHECK(IsDebugBreakSlot()); |
284 Builtins* builtins = debug_info_->GetIsolate()->builtins(); | 284 Isolate* isolate = debug_info_->GetIsolate(); |
| 285 Builtins* builtins = isolate->builtins(); |
285 Handle<Code> target = | 286 Handle<Code> target = |
286 IsReturn() ? builtins->Return_DebugBreak() : builtins->Slot_DebugBreak(); | 287 IsReturn() ? builtins->Return_DebugBreak() : builtins->Slot_DebugBreak(); |
287 DebugCodegen::PatchDebugBreakSlot(pc(), target); | 288 DebugCodegen::PatchDebugBreakSlot(isolate, pc(), target); |
288 DCHECK(IsDebugBreak()); | 289 DCHECK(IsDebugBreak()); |
289 } | 290 } |
290 | 291 |
291 | 292 |
292 void BreakLocation::ClearDebugBreak() { | 293 void BreakLocation::ClearDebugBreak() { |
293 // Debugger statement always calls debugger. No need to modify it. | 294 // Debugger statement always calls debugger. No need to modify it. |
294 if (IsDebuggerStatement()) return; | 295 if (IsDebuggerStatement()) return; |
295 | 296 |
296 DCHECK(IsDebugBreakSlot()); | 297 DCHECK(IsDebugBreakSlot()); |
297 DebugCodegen::ClearDebugBreakSlot(pc()); | 298 DebugCodegen::ClearDebugBreakSlot(debug_info_->GetIsolate(), pc()); |
298 DCHECK(!IsDebugBreak()); | 299 DCHECK(!IsDebugBreak()); |
299 } | 300 } |
300 | 301 |
301 | 302 |
302 bool BreakLocation::IsStepInLocation() const { | 303 bool BreakLocation::IsStepInLocation() const { |
303 return IsConstructCall() || IsCall(); | 304 return IsConstructCall() || IsCall(); |
304 } | 305 } |
305 | 306 |
306 | 307 |
307 bool BreakLocation::IsDebugBreak() const { | 308 bool BreakLocation::IsDebugBreak() const { |
(...skipping 2323 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2631 } | 2632 } |
2632 | 2633 |
2633 | 2634 |
2634 void LockingCommandMessageQueue::Clear() { | 2635 void LockingCommandMessageQueue::Clear() { |
2635 base::LockGuard<base::Mutex> lock_guard(&mutex_); | 2636 base::LockGuard<base::Mutex> lock_guard(&mutex_); |
2636 queue_.Clear(); | 2637 queue_.Clear(); |
2637 } | 2638 } |
2638 | 2639 |
2639 } // namespace internal | 2640 } // namespace internal |
2640 } // namespace v8 | 2641 } // namespace v8 |
OLD | NEW |