| 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 1259 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1270 ASSERT(!IsPaused()); | 1270 ASSERT(!IsPaused()); |
| 1271 ASSERT(latent_locations_ == NULL); | 1271 ASSERT(latent_locations_ == NULL); |
| 1272 ASSERT(breakpoint_locations_ == NULL); | 1272 ASSERT(breakpoint_locations_ == NULL); |
| 1273 ASSERT(code_breakpoints_ == NULL); | 1273 ASSERT(code_breakpoints_ == NULL); |
| 1274 ASSERT(stack_trace_ == NULL); | 1274 ASSERT(stack_trace_ == NULL); |
| 1275 ASSERT(obj_cache_ == NULL); | 1275 ASSERT(obj_cache_ == NULL); |
| 1276 } | 1276 } |
| 1277 | 1277 |
| 1278 | 1278 |
| 1279 void Debugger::Shutdown() { | 1279 void Debugger::Shutdown() { |
| 1280 // TODO(johnmccutchan): Do not create a debugger for isolates that don't need |
| 1281 // them. Then, assert here that isolate_ is not one of those isolates. |
| 1282 if ((isolate_ == Dart::vm_isolate()) || |
| 1283 ServiceIsolate::IsServiceIsolateDescendant(isolate_)) { |
| 1284 return; |
| 1285 } |
| 1280 while (breakpoint_locations_ != NULL) { | 1286 while (breakpoint_locations_ != NULL) { |
| 1281 BreakpointLocation* bpt = breakpoint_locations_; | 1287 BreakpointLocation* bpt = breakpoint_locations_; |
| 1282 breakpoint_locations_ = breakpoint_locations_->next(); | 1288 breakpoint_locations_ = breakpoint_locations_->next(); |
| 1283 delete bpt; | 1289 delete bpt; |
| 1284 } | 1290 } |
| 1285 while (latent_locations_ != NULL) { | 1291 while (latent_locations_ != NULL) { |
| 1286 BreakpointLocation* bpt = latent_locations_; | 1292 BreakpointLocation* bpt = latent_locations_; |
| 1287 latent_locations_ = latent_locations_->next(); | 1293 latent_locations_ = latent_locations_->next(); |
| 1288 delete bpt; | 1294 delete bpt; |
| 1289 } | 1295 } |
| 1290 while (code_breakpoints_ != NULL) { | 1296 while (code_breakpoints_ != NULL) { |
| 1291 CodeBreakpoint* bpt = code_breakpoints_; | 1297 CodeBreakpoint* bpt = code_breakpoints_; |
| 1292 code_breakpoints_ = code_breakpoints_->next(); | 1298 code_breakpoints_ = code_breakpoints_->next(); |
| 1293 bpt->Disable(); | 1299 bpt->Disable(); |
| 1294 delete bpt; | 1300 delete bpt; |
| 1295 } | 1301 } |
| 1296 // Signal isolate shutdown event. | 1302 // Signal isolate shutdown event. |
| 1297 if (!ServiceIsolate::IsServiceIsolateDescendant(isolate_)) { | 1303 SignalIsolateEvent(DebuggerEvent::kIsolateShutdown); |
| 1298 SignalIsolateEvent(DebuggerEvent::kIsolateShutdown); | |
| 1299 } | |
| 1300 } | 1304 } |
| 1301 | 1305 |
| 1302 | 1306 |
| 1303 static RawFunction* ResolveLibraryFunction( | 1307 static RawFunction* ResolveLibraryFunction( |
| 1304 const Library& library, | 1308 const Library& library, |
| 1305 const String& fname) { | 1309 const String& fname) { |
| 1306 ASSERT(!library.IsNull()); | 1310 ASSERT(!library.IsNull()); |
| 1307 const Object& object = Object::Handle(library.ResolveName(fname)); | 1311 const Object& object = Object::Handle(library.ResolveName(fname)); |
| 1308 if (!object.IsNull() && object.IsFunction()) { | 1312 if (!object.IsNull() && object.IsFunction()) { |
| 1309 return Function::Cast(object).raw(); | 1313 return Function::Cast(object).raw(); |
| (...skipping 1930 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3240 } | 3244 } |
| 3241 | 3245 |
| 3242 | 3246 |
| 3243 void Debugger::RegisterCodeBreakpoint(CodeBreakpoint* bpt) { | 3247 void Debugger::RegisterCodeBreakpoint(CodeBreakpoint* bpt) { |
| 3244 ASSERT(bpt->next() == NULL); | 3248 ASSERT(bpt->next() == NULL); |
| 3245 bpt->set_next(code_breakpoints_); | 3249 bpt->set_next(code_breakpoints_); |
| 3246 code_breakpoints_ = bpt; | 3250 code_breakpoints_ = bpt; |
| 3247 } | 3251 } |
| 3248 | 3252 |
| 3249 } // namespace dart | 3253 } // namespace dart |
| OLD | NEW |