入门

#

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

当你打开调试器选项卡时,你应该会看到你的应用的主入口源代码已加载到调试器中。

为了浏览更多应用程序源代码,请点击右上角的 Libraries(库)或按下 Ctrl / Cmd + P。这将打开库窗口,允许你搜索其他源文件。

Screenshot of the debugger tab

设置断点

#

要设置断点,请在源代码区域中点击左侧空白处(行号标尺)。点击一次会设置一个断点,该断点也应显示在左侧的 Breakpoints(断点)区域中。再次点击可移除断点。

调用堆栈和变量区域

#

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

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

单步调试源代码

#

暂停时,三个单步执行按钮变为活跃状态。

  • 使用 Step in(步入)可步入方法调用,并在被调用方法中的第一条可执行行处停止。
  • 使用 Step over(步过)可步过方法调用;这会在当前方法中单步执行源代码行。
  • 使用 Step out(步出)可步出当前方法,而不会在任何中间行停止。

此外,Resume(恢复)按钮会继续应用程序的正常执行。

控制台输出

#

运行中应用程序的控制台输出(标准输出和标准错误)显示在控制台中,位于源代码区域下方。你也可以在日志视图中查看输出。

异常中断

#

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

仅在未处理的异常处中断表示只有当应用程序代码未捕获到断点时才暂停执行。在所有异常处中断会导致调试器暂停,无论断点是否被应用程序代码捕获。

已知问题

#

当对 Flutter 应用程序执行热重启时,用户断点将被清除。

其他资源

#

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