在 Python 中,我可以在任何代码行上插入breakpoint()
关键字,当我从命令行运行脚本时,当它到达该行时它将停止,我将有机会与任何先前定义的变量进行交互或访问。 我一直在寻找一种用Dart语言做到这一点的方法,但到目前为止还没有成功。
我已经看到了对dart:developer
库提供的debugger
关键字的引用,但脚本没有允许我进行交互,而是挂起:
// bin/my_script.dart
import "dart:developer"; // source of debugger();
main() {
var x = 5;
print("X: ${x}"); //> X: 5
debugger(); // ... just hangs
print("END");
}
我也看到了对console
包的引用,但我没有看到它做任何事情:
// bin/my_script.dart
import "package:console/console.dart"; // source of Console.init()
main() {
var x = 5;
print("X: ${x}"); //> X: 5
Console.init(); // ... nothing happens
print("END");
}
仅供参考:我正在通过dart bin/my_script.dart
运行此脚本,命令行解决方案将是理想的,但使用 VS Code 文本编辑器的解决方案也足够了。
如果没有附加调试器,则无法进行调试,这就是为什么从命令行运行将挂起在断点中的原因,因为您可以单步执行下一条指令。
如果使用 VS Code 或 Intellij 并在调试模式Shift+Cmd+R下使用该debugger()
,它将在那里触发断点,您可以分析变量并前进到下一个指令。