《游戏引擎架构》读书笔记(二)

一.调试技巧及工具

(1)基础调试

a)   日志及追踪,有些bug难以用VS自带的调试来进行单步调试,最好的解决方案就是printf调试法,打印一组数据,观察情况。之前我的做法是单独生成一个控制台,不过VS自带了一个OutPutDebugString()的方法,可以打印调试信息。不过这个只支持char*内容,我们可以将这个函数加工一下,使其支持不同类型的数据,甚至可以使其接受可变参数个数。

b)   冗长级别:我们有时想要打印,有时又不想打印,所以可以设置打印内容的级别,每个信息设置一个级别,然后设置一个全局的级别,大于这个级别的打印,然后可以通过调节全局级别,控制打印内容的范围。

c)      频道:再扩展的想一想,有很多要打印的内容时,就会比较乱,那么,将不同模块的打印信息分成不同的频道就可以解决问题了,再增加一个频道的参数,就可以控制打印哪个频道的相关信息啦。

d)      日志:有时候程序会莫名的崩掉,这时候就不单单要只看打印信息了,我们需要将程序的执行过程写入日志文件来供运行后查看结果。这里有个纠结的地方,如果每次打印都输入到日志文件,会保证日志的完整性,但是会损失性能,如果缓冲满了才输出到日志,有可能程序崩了就没办法将缓冲区的内容输出了,所以这是个取舍的问题。

e)  崩溃报告:崩溃报告也是一种日志,不过是程序崩溃时才有的日志,多数操作系统有一个顶层的异常处理函数,可以在此函数中打印各种异常信息,甚至发送电子邮件给程序团队(这个有点6啊)&

你可能感兴趣的:(读书笔记,游戏引擎,大型项目,游戏引擎,架构,3d,游戏)