【问题标题】:How to interact with dart debugger from the command line?如何从命令行与 dart 调试器交互?
【发布时间】:2019-07-28 15:31:56
【问题描述】:

假设你有一个简单的命令行 Dart 程序,它调用 debugger() 来设置断点。例如:

main() {
  print('hello');
  debugger();
  print('goodbye');
}

当我运行程序时:

dart main.dart

控制台显示输出直到断点并在控制台中暂停。但是,我没有看到调试器的任何输出,也无法与调试器交互。如何从命令行与调试器交互?

【问题讨论】:

    标签: debugging dart


    【解决方案1】:

    我不确定是否有用于处理调试的命令行工具,但如果您使用 --observe 运行您的应用程序,例如以下输出:

    dart --observe program.dart 
    Observatory listening on http://127.0.0.1:8181/t8BNcN7MCEo=/
    hello
    vm-service: isolate (208832671) 'main' has no debugger attached and is paused.  Connect to Observatory at http://127.0.0.1:8181/t8BNcN7MCEo=/ to debug.
    

    在 Web 前端,您可以通过单击“在 main (program.dart:7:1) [debug] 处被断点暂停”的链接访问调试器,您可以访问所有常用的调试实用程序,例如一步。

    【讨论】:

    • 啊,就是这样。谢谢!
    • 无法与变量交互。只需查看这些命令(breakclearcls 等,但即使它们也无法按预期工作)。
    • 您能否详细说明您对这些命令的期望?关于与变量的交互,我认为 Dart VM 不支持从调试器修改变量值。但是你可以在你的范围内看到每个变量的值。
    • @julemand101 在 python 中寻找等效的 when,我可以在某行插入关键字 breakpoint(),当我从命令行运行脚本时,它会在到达时停止行,我将可以访问断点之前定义的任何变量。见:docs.python.org/3/library/functions.html#breakpoint
    猜你喜欢
    • 1970-01-01
    • 2012-02-20
    • 1970-01-01
    • 2021-05-12
    • 2012-12-18
    • 2016-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多