本帖最后由 香水城 于 2012-2-27 10:09 编辑
以下列出bug表现出什么样的行为,可能是怎么样的问题所导致的,虽然不是百分之百的准确,但按照这个方向去查,应该是**不离十。
1:如果驱动程序已经通过严格测试,当发生PC OK但机器上NG的bug时,通常是内存使用不当的问题。
2:函数返回时死机,应该就是stack overflow的问题。
3:当某块memory被损坏时,可以检查一下map文件,看看这块内存的前后各是什么用途,应该就是邻近的内存使用不当。
4:当CPU发生address error时,在某些有address alignment限制的CPU上,可能是在奇数地址操作了偶数个字节,此时应该要检查程序中指针的值。
5:如果heap被破坏了,可在任何可疑的地方调用“检查memory poo完整性" 的函数,应该就可以找出程序中破坏heap的地方。
6:在嵌入式系统中,局部变量是没有初始值的,必须由程序师自己设定,如果没设定局部变量的初始值就直接使用的话,就可能发生每次执行结果都不同的现象。
7:在程序中要用sizef()取得变量工数据结构真正占据内存的size,不要自己想当然地直接写数字,否则很容易造成内存操作的错误。 |