●●● ●●● ●●●●● ●●●● ●●● ●●●● ●●0● 排错( debugging)
排错(debugging)
●●● 错误(bug)类型 ●●●●● ●●●● ●●● ●●●● ●●0● ●编译错误( Compiling error) ●链接错误( Link error) 异常错误 Runtime error ●逻辑错误(算法错误) 程序运行结果不对
错误(bug)类型 ⚫ 编译错误(Compiling error) ⚫ 链接错误(Link error) ⚫ 异常错误 ⚫ Runtime error ⚫ 逻辑错误(算法错误) ⚫ 程序运行结果不对
如何减少错误发生? ●●●●● ●●●● ●●● ●●●● ●●0● ●追求简单优雅的程序设计结构 ●减少程序各部分耦合 ●完全了解函数的输入输出要求后再使用 ●避免使用不安全的语法 少用 pointer多用 reference ●取消goto 一些 notes ●尽量不用全局变量 注意变量初始化 尽量使用 const ●详尽的注释
如何减少错误发生? ⚫ 追求简单优雅的程序设计结构 ⚫ 减少程序各部分耦合 ⚫ 完全了解函数的输入输出要求后再使用 ⚫ 避免使用不安全的语法 ⚫ 少用pointer多用reference ⚫ 取消goto ⚫ 一些notes ⚫ 尽量不用全局变量 ⚫ 注意变量初始化 ⚫ 尽量使用const ⚫ 详尽的注释
●●● ●●●●● ●●●● ●●● ●●●● ●●0● 没有哪种方法能防止你犯错误!!
没有哪种方法能防止你犯错误!!!
●●● ●●● 重视排错 ●●●●● ●●●● ●●● ●●●● ●●0● ●排错时间至少和写程序一样长 ●正常运行的程序不是没有错误,只是还没 发现错误 ●尽量少借助排错系统 ●多进程多线程分布式系统要靠自己的经 验和推理能力排错 ●找错误就像猜谜一样,可以是件愉快的事 情
重视排错 ⚫ 排错时间至少和写程序一样长 ⚫ 正常运行的程序不是没有错误,只是还没 发现错误 ⚫ 尽量少借助排错系统 ⚫ 多进程多线程分布式系统要靠自己的经 验和推理能力排错 ⚫ 找错误就像猜谜一样,可以是件愉快的事 情