调试程序的过程
- 复现:使用最小的测试用例集复现错误
- 分析:(重点)
(1)测量法:使用logging
(2)二分法:分治的寻找错误的位置
(3)基于差异的调试 - 修复
- 反思
Debug的方法
- 内存转储:将内存的信息以文件的形式写入磁盘
- 调用栈的分析
- 打印debug的方法:使用print打印寻找错误位置
- 日志技术:
(1)基本日志
使用全局日志记录器
a. Logger.getGlobal().info(“File->Open menu item selected”);生成
b.Logger.getGlobal().setLevel(Level.OFF);取消
(2)高级日志
定义自己的日志记录器,防止混淆
a.private static final Logger myLogger = Logger.getLogger(“com.mycompany.myapp”); 创建日志记录器
b.mylog.info("…");生成记录
c.logger.setLevel(Level.FINE); 默认显示INFO以上,可自行设置显示级别
(3)日志处理器
默认ConsoleHandler输出到控制台。
Handler handler = new ConsoleHandler();
log.addHandler(handler);此处使用委托机制使二者松耦合
(4)日志格式 - 严格对待warning的编译信息
- 设置断点动态调试–最常用
单步调试
Resume-跳转到下一断点
step in/out–进入方法内部/跳过方法