Index: tools/ddbg_service/bin/ddbg_service.dart |
diff --git a/tools/ddbg_service/bin/ddbg_service.dart b/tools/ddbg_service/bin/ddbg_service.dart |
new file mode 100644 |
index 0000000000000000000000000000000000000000..0023ba30ddab49ae2268cf6fabddc4de76a110d5 |
--- /dev/null |
+++ b/tools/ddbg_service/bin/ddbg_service.dart |
@@ -0,0 +1,34 @@ |
+// Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file |
+// for details. All rights reserved. Use of this source code is governed by a |
+// BSD-style license that can be found in the LICENSE file. |
+ |
+// A command line debugger implemented using the VM Service protocol. |
+ |
+library ddbg2; |
+ |
+import "dart:async"; |
+ |
+import 'package:ddbg/debugger.dart'; |
+ |
+Debugger debugger; |
+ |
+void onError(self, parent, zone, error, StackTrace trace) { |
+ if (debugger != null) { |
+ debugger.onUncaughtError(error, trace); |
+ } else { |
+ print('\n--------\nExiting due to unexpected error:\n' |
+ ' $error\n$trace\n'); |
+ exit(); |
+ } |
+} |
+ |
+void main(List<String> args) { |
+ // Setup a zone which will exit the debugger cleanly on any uncaught |
+ // exception. |
+ var zone = Zone.ROOT.fork(specification:new ZoneSpecification( |
+ handleUncaughtError: onError)); |
+ |
+ zone.run(() { |
+ debugger = new Debugger(); |
+ }); |
+} |