本文并无奇特技术,只是一种方法论。
最近用opengl做交通可视化模拟遇到一个蛋疼的bug。运行时屏幕上掠过n辆车以后必然崩溃,调试运行一切正常。最开始漫无目的地通过各种printf寻找异常点,但是十倍功半。后来简单动了动脑,开始有计划的找bug。
分别在可疑函数的开头和末尾加入
printf("entre myFunction");
和
printf("entre myFunction");
如此一来就能将bug定位的某一个函数中了。之后通过2分法的思想继续找下去直到确定具体位置。
这些小技巧听上去实在不值一提,不过有时候如果能想到这些确实能节省不少时间。
P.S. 找了好几天的bug,原因竟是 -1%5=-1, 本以为答案是4,,,好蛋疼啊。这才想起来很久以前遇到过,这个东西跟编译器有关。最开始写的时候还特意用微软自带的计算器算了一下……现在才发觉这是多么2的行为。