IntelliJ IDEA社区版调试Flutter时如何查看stacktrace堆栈跟踪?
IntelliJ IDEA Community 版 Flutter 调试查看堆栈跟踪的方法
你当前使用的版本组合(IDEA 2021.3.3 + Flutter 3.0.0 稳定版)下不存在单独命名为「Stacktrace」的独立标签页,堆栈信息分两个场景存放:
命中断点时的堆栈查看
- 你在Debug标签页看到的
Frames子标签页,就是断点状态下的实时调用堆栈(即stacktrace)展示区:面板从上到下按调用顺序排列栈帧,最顶部是当前断点所在位置,往下依次是上游调用链路,每个栈帧会标注方法名、所属文件、对应行号 - 点击任意栈帧会自动跳转到对应代码行,同时旁边的
Variables面板会同步展示该栈帧上下文的所有变量值 - 如果Frames面板被意外关闭,点击Debug面板右上角的齿轮状Layout Settings按钮,勾选
Frames选项即可恢复显示;如果面板内容显示不全,拖动面板边框拉宽展示区域即可看到完整信息
未捕获异常抛出时的堆栈查看
- 程序抛出未捕获异常时的完整堆栈不会展示在Debug标签页,直接切换到IDE底部和Debug并列的
Run标签页即可 - 异常触发时,异常类型、错误提示、从异常抛出点到程序入口的全链路堆栈会直接打印在Run面板的日志输出区,滚动日志即可查看;日志过多时可以用面板自带的搜索功能,输入
Exception关键词快速定位堆栈位置
常见异常排查(Frames面板无栈内容时)
如果命中断点后Frames面板空白无内容,按以下顺序修复:
- 打开
Settings > Plugins检查Flutter插件版本,2021.3.3版本IDEA兼容的Flutter插件版本区间为60.x-68.x,插件版本过高或过低都会导致栈帧读取失败 - 打开
Run > Edit Configurations,检查当前选中的Flutter调试配置,确认Dart入口文件指向项目的lib/main.dart,连接的调试设备状态正常 - 上述操作无效时,终止当前调试会话,执行
flutter clean命令后重新启动调试即可
内容的提问来源于stack exchange,提问作者Andrew
相关产品推荐
相关产品推荐

