众所周知,程序不出bug是好事,程序出bug是常态,如何debug是重点。那么,这篇文章将会简单说说debug大法
~
调试
输出调试
• 适用于长度短,错误容易发现的代码。
• 最简单,最直接就能够使用。
• 使用非常方便,而且输出信息灵活多变,比如观察一个表达式值的变化。
• 直接把你的过程量输出出来。
对拍
什么是对拍?
对拍就是用你的代码和另一份代码不断去运行数据比较结果,直到找出一组能卡掉你的代码的数据。
所以前提就是另一份代码必须保证正确性(一般直接打暴力就好)。然后还需要一份能够产生随机数据的代码,接着在批处理文件上写上以下代码:
1
2
3
4
5
6
7
8
9
@echo off
:loop
std.exe > in.in
text.exe <in.in> 1.out
test1.exe <in.in> 2.out
fc 1.out 2.out
if not errorlevel 1 goto loop
pause
:end
其中:
• std.exe 是产生数据的代码
• test.exe 是复杂度正确但WA的做法
• test1.exe 是暴力的做法
• fc 1.out 2.out 比较两个文件
• Not errorlevel 1 表示上一条语句相同