入门

#

DevTools 包含一个完整的源代码级别调试器,支持断点、单步调试和变量检查。

当您打开调试器选项卡时,您应该会在调试器中看到应用程序的入口点源代码。

要浏览更多应用程序源代码,请点击右上角的“”,或按 Ctrl / Cmd + P。这将打开库窗口,允许您搜索其他源文件。

Screenshot of the debugger tab

设置断点

#

要设置断点,请单击源代码区域的左侧边距(行号标尺)。单击一次即可设置断点,该断点也应显示在左侧的“断点”区域中。再次单击可删除断点。

调用堆栈和变量区域

#

当您的应用程序遇到断点时,它会在此处暂停,并且 DevTools 调试器会在源代码区域显示暂停的执行位置。此外,“调用堆栈”和“变量”区域会填充当前暂停的 isolate 的调用堆栈,以及选定帧的局部变量。选择“调用堆栈”区域中的其他帧会更改变量的内容。

在“变量”区域中,您可以通过展开单个对象来检查它们,查看它们的字段。将鼠标悬停在“变量”区域中的对象上会调用该对象的 toString() 方法并显示结果。

单步调试源代码

#

暂停时,三个单步调试按钮将变为可用。

  • 使用“单步进入”进入方法调用,并在该调用方法的第一行可执行代码处停止。
  • 使用“单步跳过”跳过方法调用;这将逐步执行当前方法中的源代码行。
  • 使用“单步退出”退出当前方法,而无需在任何中间行停止。

此外,“继续”按钮会继续应用程序的正常执行。

控制台输出

#

正在运行的应用程序的控制台输出(stdout 和 stderr)显示在源代码区域下方的控制台中。您也可以在 日志记录视图中查看输出。

中断异常

#

要调整“中断异常”行为,请切换调试器视图顶部的“忽略”下拉菜单。

仅在断点被应用程序代码视为未捕获时,中断未捕获的异常才会暂停执行。中断所有异常将导致调试器暂停,无论断点是否被应用程序代码捕获。

已知问题

#

执行 Flutter 应用程序的热重置时,用户断点将被清除。

其他资源

#

有关调试和性能分析的更多信息,请参阅 调试页面。