跳到主内容

使用调试器

如何使用 DevTools 的源代码级别调试器。

入门

#

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

打开调试器选项卡时,您应该看到应用程序的主要入口点对应的源代码加载到调试器中。

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

Screenshot of the debugger tab

设置断点

#

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

调用堆栈和变量区域

#

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

变量区域内,您可以展开对象以查看其字段,从而检查单个对象。 将鼠标悬停在变量区域中的对象上会为该对象调用toString()并显示结果。

单步执行源代码

#

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

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

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

控制台输出

#

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

断点异常

#

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

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

已知问题

#

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

其他资源

#

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