请问vc6这种问题怎样才能快速的发现和定位?
下面的程序wsprintf函数的使用错误,但是在编译时没有任何错误提示信息,在运行中报"unhandled exception in hello.exe(user32.dll):0xc0000005:access violation"的错误,并定位到一大堆汇编语言中。这个错误是我在一个较大的程序中犯的,因此当时花了相当大的精力把bug找出来,请问这种错误能够通过什么方法快速查找和定位出来吗?
开发环境是:vc 6,sdk
#include <windows.h>
int winapi winmain (hinstance hinstance, hinstance hprevinstance,
pstr szcmdline, int icmdshow)
{
char sbuf[100];
wsprintf(sbuf,"%3s",a);
return 0 ;
}
推荐阅读
我觉得只要通过单步跟踪,很容易发现程序是运行到wsprintf那句才出错的,然后瞪大眼睛一瞧,就瞧出来了。
这种问题还是事前预防好,使用带变参的函数时,事前小心一点,调试时就减少好多麻烦。
一般是内存问题,例如指针没有new就使用或者指针被delete了还在使用等,还有资源定义不当夜可能出现这类错误。
一般来讲大概可以估计到是那个模块出了问题,然后到该模块去查这两个方面:指针、资源,应该还比较快
当然,也可能是其他的问题,但首先要考虑这两个方面


讨论区