| Index: runtime/vm/thread_interrupter.cc
 | 
| diff --git a/runtime/vm/thread_interrupter.cc b/runtime/vm/thread_interrupter.cc
 | 
| index 0ad9ead78a78515ad8db21d12bffd6bca09eacf7..0372f68bcf3b44b79e4ef72a21d4e72ff27eda5a 100644
 | 
| --- a/runtime/vm/thread_interrupter.cc
 | 
| +++ b/runtime/vm/thread_interrupter.cc
 | 
| @@ -70,8 +70,17 @@ void ThreadInterrupter::InitOnce() {
 | 
|  
 | 
|  void ThreadInterrupter::Startup() {
 | 
|    ASSERT(initialized_);
 | 
| +  if (IsDebuggerAttached()) {
 | 
| +    MonitorLocker shutdown_ml(monitor_);
 | 
| +    shutdown_ = true;
 | 
| +    if (FLAG_trace_thread_interrupter) {
 | 
| +      OS::PrintErr(
 | 
| +          "ThreadInterrupter disabled because a debugger is attached.\n");
 | 
| +    }
 | 
| +    return;
 | 
| +  }
 | 
|    if (FLAG_trace_thread_interrupter) {
 | 
| -    OS::Print("ThreadInterrupter starting up.\n");
 | 
| +    OS::PrintErr("ThreadInterrupter starting up.\n");
 | 
|    }
 | 
|    ASSERT(interrupter_thread_id_ == OSThread::kInvalidThreadJoinId);
 | 
|    {
 | 
| @@ -83,7 +92,7 @@ void ThreadInterrupter::Startup() {
 | 
|    }
 | 
|    ASSERT(interrupter_thread_id_ != OSThread::kInvalidThreadJoinId);
 | 
|    if (FLAG_trace_thread_interrupter) {
 | 
| -    OS::Print("ThreadInterrupter running.\n");
 | 
| +    OS::PrintErr("ThreadInterrupter running.\n");
 | 
|    }
 | 
|  }
 | 
|  
 | 
| @@ -100,7 +109,7 @@ void ThreadInterrupter::Shutdown() {
 | 
|      shutdown_ml.Notify();
 | 
|      ASSERT(initialized_);
 | 
|      if (FLAG_trace_thread_interrupter) {
 | 
| -      OS::Print("ThreadInterrupter shutting down.\n");
 | 
| +      OS::PrintErr("ThreadInterrupter shutting down.\n");
 | 
|      }
 | 
|    }
 | 
|  
 | 
| @@ -110,7 +119,7 @@ void ThreadInterrupter::Shutdown() {
 | 
|    interrupter_thread_id_ = OSThread::kInvalidThreadJoinId;
 | 
|  
 | 
|    if (FLAG_trace_thread_interrupter) {
 | 
| -    OS::Print("ThreadInterrupter shut down.\n");
 | 
| +    OS::PrintErr("ThreadInterrupter shut down.\n");
 | 
|    }
 | 
|  }
 | 
|  
 | 
| @@ -149,7 +158,7 @@ void ThreadInterrupter::ThreadMain(uword parameters) {
 | 
|    ASSERT(initialized_);
 | 
|    InstallSignalHandler();
 | 
|    if (FLAG_trace_thread_interrupter) {
 | 
| -    OS::Print("ThreadInterrupter thread running.\n");
 | 
| +    OS::PrintErr("ThreadInterrupter thread running.\n");
 | 
|    }
 | 
|    {
 | 
|      // Signal to main thread we are ready.
 | 
| @@ -215,7 +224,7 @@ void ThreadInterrupter::ThreadMain(uword parameters) {
 | 
|    }
 | 
|    RemoveSignalHandler();
 | 
|    if (FLAG_trace_thread_interrupter) {
 | 
| -    OS::Print("ThreadInterrupter thread exiting.\n");
 | 
| +    OS::PrintErr("ThreadInterrupter thread exiting.\n");
 | 
|    }
 | 
|    {
 | 
|      // Signal to main thread we are exiting.
 | 
| 
 |