使用调试器工具
开始使用
#开发工具中包含了一个完整的源码级调试器,支持断点、单步调试以及变量检视。
当你打开调试器标签页时,你应该会看到你的应用入口点的源码已经加载到了调试器中。
为了浏览更多的应用源码,点击 Libraries(右上角)或者使用快捷键 ⌘ + P
/ ctrl + P
。这会打开库窗口并允许你搜索其他源文件。
设置断点
#可以点击源码区左边空白(行数展示栏内)来设置断点。单击一次就设置了一个断点,并且也会在 Breakpoints 区域展示出来。再次单击则取消断点。
调用栈和变量区
#当应用运行到某个断点时,就会在此处暂停,调试器也会在源码区显示当前暂停的位置。此外,Call stack
和 Variables
区域也会显示暂停时的调用栈以及选中帧的本地变量。在 Call stack
选择其他的帧可以改变变量区的内容。
在 Variables
内,可以通过点击对象展开查看其内容来检视独立的对象。指针停在 Variables
区域的对象上时会调用该对象的 toString()
方法并展示结果。
单步调试源码
#三个单步调试按钮在暂停后会变为可用状态。
-
使用 Step in 来进入被调用的方法,在遇到方法内的第一行可执行代码时结束。
-
使用 Step over 直接执行某个方法调用而不进入内部;该按钮在当前方法内按行执行。
-
使用 Step out 来跳出当前方法,这种方式会直接执行完所有当前方法内的语句。
另外,Resume 按钮的作用是恢复应用的正常执行。
命令行输出
#运行中应用的命令行输出(stdout 和 stderr)会在命令行中输出,该区域在源代码区下方。Logging view 中也可以看到相应输出。
异常跳出
#请在调试器视图顶部切换 Ignore 下拉菜单来适配异常跳出的行为。
Break on unhandled exceptions:只在断点被认为应用内代码无法捕获时暂停执行。 Breaking on all exceptions:无论是否被捕获都会暂停执行。
已知问题
#当 Flutter 应用执行热重载时,用户的断点会被清除。
其他资源
#访问 Debugging 页面来获取更多关于调试器和性能分析的信息。
除非另有说明,本文档之所提及适用于 Flutter 的最新稳定版本,本页面最后更新时间: 2024-04-27。 查看文档源码 或者 为本页面内容提出建议。