Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2014, 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 library debugger_page_element; | 5 library debugger_page_element; |
| 6 | 6 |
| 7 import 'dart:async'; | 7 import 'dart:async'; |
| 8 import 'dart:html'; | 8 import 'dart:html'; |
| 9 import 'observatory_element.dart'; | 9 import 'observatory_element.dart'; |
| 10 import 'package:observatory/app.dart'; | 10 import 'package:observatory/app.dart'; |
| (...skipping 348 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 359 | 359 |
| 360 String helpShort = | 360 String helpShort = |
| 361 'Continue running the isolate until the current function exits'; | 361 'Continue running the isolate until the current function exits'; |
| 362 | 362 |
| 363 String helpLong = | 363 String helpLong = |
| 364 'Continue running the isolate until the current function exits.\n' | 364 'Continue running the isolate until the current function exits.\n' |
| 365 '\n' | 365 '\n' |
| 366 'Syntax: finish\n'; | 366 'Syntax: finish\n'; |
| 367 } | 367 } |
| 368 | 368 |
| 369 class BreakOnExceptionsCommand extends DebuggerCommand { | |
| 370 BreakOnExceptionsCommand(Debugger debugger) | |
| 371 : super(debugger, 'break-on-exceptions', []); | |
|
rmacnak
2015/06/11 17:31:17
Don't really want to introduce the first hyphenate
Cutch
2015/06/11 21:20:12
What about a 'set' command for configuring behavio
rmacnak
2015/06/12 00:09:38
Somewhat better.
| |
| 372 | |
| 373 Future run(List<String> args) async { | |
| 374 if (args.length == 0) { | |
| 375 var result = await debugger.isolate.getExceptionPauseInfo(); | |
| 376 debugger.console.print(result.toString()); | |
| 377 } else if (args.length == 1) { | |
| 378 var result = await debugger.isolate.setExceptionPauseInfo(args[0]); | |
| 379 debugger.console.print(result.toString()); | |
| 380 } else { | |
| 381 debugger.console.print("break-on-exceptions expects 0 or 1 argument"); | |
| 382 } | |
| 383 } | |
| 384 | |
| 385 String helpShort = | |
| 386 'Set the break-on-exceptions policy: all, none or unhandled'; | |
| 387 | |
| 388 String helpLong = | |
| 389 'Set the break-on-exceptions policy: all, none or unhandled' | |
| 390 '\n' | |
| 391 'Syntax: break-on-exceptions "all" | "none" | "unhandled"' | |
| 392 '- Set the policy\n' | |
| 393 ' break-on-exceptions ' | |
| 394 '- Query the policy\n'; | |
| 395 } | |
| 396 | |
| 369 class BreakCommand extends DebuggerCommand { | 397 class BreakCommand extends DebuggerCommand { |
| 370 BreakCommand(Debugger debugger) : super(debugger, 'break', []); | 398 BreakCommand(Debugger debugger) : super(debugger, 'break', []); |
| 371 | 399 |
| 372 Future run(List<String> args) async { | 400 Future run(List<String> args) async { |
| 373 if (args.length > 1) { | 401 if (args.length > 1) { |
| 374 debugger.console.print('not implemented'); | 402 debugger.console.print('not implemented'); |
| 375 return new Future.value(null); | 403 return new Future.value(null); |
| 376 } | 404 } |
| 377 var arg = (args.length == 0 ? '' : args[0]); | 405 var arg = (args.length == 0 ? '' : args[0]); |
| 378 var loc = await DebuggerLocation.parse(debugger, arg); | 406 var loc = await DebuggerLocation.parse(debugger, arg); |
| (...skipping 470 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 849 new PrintCommand(this), | 877 new PrintCommand(this), |
| 850 new DownCommand(this), | 878 new DownCommand(this), |
| 851 new UpCommand(this), | 879 new UpCommand(this), |
| 852 new FrameCommand(this), | 880 new FrameCommand(this), |
| 853 new PauseCommand(this), | 881 new PauseCommand(this), |
| 854 new ContinueCommand(this), | 882 new ContinueCommand(this), |
| 855 new NextCommand(this), | 883 new NextCommand(this), |
| 856 new StepCommand(this), | 884 new StepCommand(this), |
| 857 new FinishCommand(this), | 885 new FinishCommand(this), |
| 858 new BreakCommand(this), | 886 new BreakCommand(this), |
| 887 new BreakOnExceptionsCommand(this), | |
| 859 new ClearCommand(this), | 888 new ClearCommand(this), |
| 860 new DeleteCommand(this), | 889 new DeleteCommand(this), |
| 861 new InfoCommand(this), | 890 new InfoCommand(this), |
| 862 new IsolateCommand(this), | 891 new IsolateCommand(this), |
| 863 new RefreshCommand(this), | 892 new RefreshCommand(this), |
| 864 ]); | 893 ]); |
| 865 } | 894 } |
| 866 | 895 |
| 867 VM get vm => page.app.vm; | 896 VM get vm => page.app.vm; |
| 868 | 897 |
| (...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 985 Frame frame = stack['frames'][0]; | 1014 Frame frame = stack['frames'][0]; |
| 986 var script = frame.location.script; | 1015 var script = frame.location.script; |
| 987 script.load().then((_) { | 1016 script.load().then((_) { |
| 988 var line = script.tokenToLine(frame.location.tokenPos); | 1017 var line = script.tokenToLine(frame.location.tokenPos); |
| 989 var col = script.tokenToCol(frame.location.tokenPos); | 1018 var col = script.tokenToCol(frame.location.tokenPos); |
| 990 if (event.breakpoint != null) { | 1019 if (event.breakpoint != null) { |
| 991 var bpId = event.breakpoint.number; | 1020 var bpId = event.breakpoint.number; |
| 992 console.print('Paused at breakpoint ${bpId} at ' | 1021 console.print('Paused at breakpoint ${bpId} at ' |
| 993 '${script.name}:${line}:${col}'); | 1022 '${script.name}:${line}:${col}'); |
| 994 } else if (event.exception != null) { | 1023 } else if (event.exception != null) { |
| 995 // TODO(turnidge): Test this. | 1024 console.print('Paused due to exception at ' |
| 996 console.print('Paused due to exception ${event.exception} at ' | |
| 997 '${script.name}:${line}:${col}'); | 1025 '${script.name}:${line}:${col}'); |
| 1026 // This seems to be missing if we are paused-at-exception after | |
| 1027 // paused-at-isolate-exit. Maybe we shutdown part of the debugger too | |
| 1028 // soon? | |
| 1029 console.printRef(event.exception); | |
| 998 } else { | 1030 } else { |
| 999 console.print('Paused at ${script.name}:${line}:${col}'); | 1031 console.print('Paused at ${script.name}:${line}:${col}'); |
| 1000 } | 1032 } |
| 1001 }); | 1033 }); |
| 1002 } | 1034 } |
| 1003 } | 1035 } |
| 1004 | 1036 |
| 1005 Future _reportBreakpointEvent(ServiceEvent event) { | 1037 Future _reportBreakpointEvent(ServiceEvent event) { |
| 1006 var bpt = event.breakpoint; | 1038 var bpt = event.breakpoint; |
| 1007 var verb = null; | 1039 var verb = null; |
| (...skipping 655 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1663 default: | 1695 default: |
| 1664 busy = false; | 1696 busy = false; |
| 1665 break; | 1697 break; |
| 1666 } | 1698 } |
| 1667 }); | 1699 }); |
| 1668 } | 1700 } |
| 1669 | 1701 |
| 1670 DebuggerInputElement.created() : super.created(); | 1702 DebuggerInputElement.created() : super.created(); |
| 1671 } | 1703 } |
| 1672 | 1704 |
| OLD | NEW |