Flutter学习3-调试
阅读时间:全文 606 字,预估用时 4 分钟
创作日期:2019-03-10
上篇文章:Flutter学习4-基础组件
下篇文章:Flutter学习2-项目运行
BEGIN
关于调试
相信很多人对程序调试都非常看中, 也有很多同仁认为调试能力比编码能力还重要, 我就是其中一个, 如果某种语言多年使用经历却连基础的调试技巧都不会, 那其实与应届实习生没多大区别的.
看了Container Widget后, 可以拿示例跑代码就赶紧看Flutter的调试了, 详细之前学JavaScript是在浏览器上输出一个事件对象后一个劲往他的原型链点想一探究竟, 之后接触了GDB(C/C++)和PDB/IPDB(Python), 尤其是IPDB双击Tab时带命令提示的, 喜欢的不得了, 同时也悟出了不管学什么语言, 调试总是非常重要的.
因此, 当程序跑起来后就马上调出了调试文档, 看看Flutter的调试有何不同.
Flutter的调试
由于Flutter开发模式运行一个程序是持续连着的, 和Python的某些服务端程序调试有点相似, 会不会是跑起来后遇到断点后就在命令行中断程序运行并显示一个和PDB一样的调试窗口呢, 不过并不是, 跑起来后会生成一个环路网址, 果然, 这个地址打开有很多功能, 其中一项就是调试(debugger)
开发窗口
根据地址打开对应开发窗口, 可以看到页面中写了项目的相关信息, 还有11个二级目录, 分别是:
debug: 调试
class hierarchy: 类层次结构
cpu profile: CPU执行流
cpu profile (table): CPU执行流表格化显示
allocation profile: 资源分配信息
heap snapshot: 堆快照
heap map: 堆映射
metrics: 指标
persistent handles: 持久化句柄
ports: 端口
logging: 日志
如何调试
- 程序顶部需引入:
import 'dart:developer'
; - 然后在需要调试的地方使用
debugger()
打断点, 其中括号内可以写断点调点, 这个还是比较高级的, 如:debugger(when: offset > 30.0)
, 其中offset为变量; - 开发窗口中点击debug进入调试窗口并r键重新打包运行程序;
调试命令
按h<CR>
后看命令发现其实都一样, 和GDB/PDB都大尽相同
命令如下:
命令 | 简写 | 作用 | 示例 |
---|---|---|---|
break | - | 用于打断点, 后面跟着行数或函数名 | break 10 |
clear | - | 清除所有断点 | - |
cls | - | 清屏 | - |
continue | c | 继续执行直到下一个断点 | - |
FINISH
上篇文章:Flutter学习4-基础组件
下篇文章:Flutter学习2-项目运行