出现这种错误原因总结:
1. 指针异常。引用指针前判断指针是否为空
2. 数据越界。
一个典型例子,
char ValueName[256];
strncpy(ValueName,&value->Name,value->NameLength);
value->NameLength 大于了256,致使ValueName访问越界,崩溃
顺便记录崩溃调试的方法:
1.vc6,f5直接调试运行,可以再崩溃时停下,但是停的位置不一定准确
2.使用ida+od反汇编调试
3.vc中在1完成之后,可以对猜测位置进行逐步注释,找到崩溃的代码
本文探讨了导致程序崩溃的常见原因,如指针异常和数据越界等问题,并提供了具体的实例说明。此外,还介绍了几种实用的调试方法,包括使用VC6、IDA+OD反汇编调试以及逐步注释法来定位问题。

366

被折叠的 条评论
为什么被折叠?



