OLD | NEW |
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 #include "vm/debugger.h" | 5 #include "vm/debugger.h" |
6 | 6 |
7 #include "include/dart_api.h" | 7 #include "include/dart_api.h" |
8 | 8 |
9 #include "vm/code_generator.h" | 9 #include "vm/code_generator.h" |
10 #include "vm/code_patcher.h" | 10 #include "vm/code_patcher.h" |
(...skipping 1466 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1477 cbpt->Disable(); | 1477 cbpt->Disable(); |
1478 } | 1478 } |
1479 } | 1479 } |
1480 cbpt = cbpt->next(); | 1480 cbpt = cbpt->next(); |
1481 } | 1481 } |
1482 } | 1482 } |
1483 | 1483 |
1484 | 1484 |
1485 void Debugger::OneTimeBreakAtEntry(const Function& target_function) { | 1485 void Debugger::OneTimeBreakAtEntry(const Function& target_function) { |
1486 InstrumentForStepping(target_function); | 1486 InstrumentForStepping(target_function); |
| 1487 if (target_function.HasImplicitClosureFunction()) { |
| 1488 const Function& closure_func = |
| 1489 Function::Handle(target_function.ImplicitClosureFunction()); |
| 1490 InstrumentForStepping(closure_func); |
| 1491 } |
1487 } | 1492 } |
1488 | 1493 |
1489 | 1494 |
1490 SourceBreakpoint* Debugger::SetBreakpointAtEntry( | 1495 SourceBreakpoint* Debugger::SetBreakpointAtEntry( |
1491 const Function& target_function) { | 1496 const Function& target_function) { |
1492 ASSERT(!target_function.IsNull()); | 1497 ASSERT(!target_function.IsNull()); |
1493 return SetBreakpoint(target_function, | 1498 return SetBreakpoint(target_function, |
1494 target_function.token_pos(), | 1499 target_function.token_pos(), |
1495 target_function.end_token_pos()); | 1500 target_function.end_token_pos()); |
1496 } | 1501 } |
(...skipping 606 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2103 } | 2108 } |
2104 | 2109 |
2105 | 2110 |
2106 void Debugger::RegisterCodeBreakpoint(CodeBreakpoint* bpt) { | 2111 void Debugger::RegisterCodeBreakpoint(CodeBreakpoint* bpt) { |
2107 ASSERT(bpt->next() == NULL); | 2112 ASSERT(bpt->next() == NULL); |
2108 bpt->set_next(code_breakpoints_); | 2113 bpt->set_next(code_breakpoints_); |
2109 code_breakpoints_ = bpt; | 2114 code_breakpoints_ = bpt; |
2110 } | 2115 } |
2111 | 2116 |
2112 } // namespace dart | 2117 } // namespace dart |
OLD | NEW |