Add creation message flag to Debugger

Don't send the shutdown event if we never sent the creation event.

BUG=
R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org/1415603013 .
This commit is contained in:
Zachary Anderson 2015-11-05 11:27:40 -08:00
parent 8568b9e4df
commit 59b9f02307
2 changed files with 10 additions and 3 deletions

View file

@ -1251,6 +1251,7 @@ Debugger::Debugger()
: isolate_(NULL),
isolate_id_(ILLEGAL_ISOLATE_ID),
initialized_(false),
creation_message_sent_(false),
next_id_(1),
latent_locations_(NULL),
breakpoint_locations_(NULL),
@ -1299,8 +1300,11 @@ void Debugger::Shutdown() {
bpt->Disable();
delete bpt;
}
// Signal isolate shutdown event.
SignalIsolateEvent(DebuggerEvent::kIsolateShutdown);
// Signal isolate shutdown event, but only if we previously sent the creation
// event.
if (creation_message_sent_) {
SignalIsolateEvent(DebuggerEvent::kIsolateShutdown);
}
}
@ -2809,8 +2813,10 @@ void Debugger::Initialize(Isolate* isolate) {
void Debugger::NotifyIsolateCreated() {
// Signal isolate creation event.
if (!ServiceIsolate::IsServiceIsolateDescendant(isolate_)) {
if ((isolate_ != Dart::vm_isolate()) &&
!ServiceIsolate::IsServiceIsolateDescendant(isolate_)) {
SignalIsolateEvent(DebuggerEvent::kIsolateCreated);
creation_message_sent_ = true;
}
}

View file

@ -655,6 +655,7 @@ class Debugger {
Isolate* isolate_;
Dart_Port isolate_id_; // A unique ID for the isolate in the debugger.
bool initialized_;
bool creation_message_sent_; // The creation message has been sent.
// ID number generator.
intptr_t next_id_;