当前位置:首页 » 多媒体相关

请问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   ;  
  }  
 

推荐阅读

  • RealNetworks存在未明MActiveX漏洞 [详细内容]
  • 锐捷网络万兆数字化图书馆献礼暨南大学 信息化解决方案/案例资料中心 [详细内容]
  • 烽火网络校园网解决方案 信息化解决方案/案例资料中心 [详细内容]
  • Network Appliance公布2005财年收益情况 [详细内容]
  • 我今天发现的小5的最新死机BUG [详细内容]
  • 天寓网络精品课程平台整体解决方案 信息化解决方案/案例资料中心 [详细内容]
  • Taxsoftware.com助IRS加速纳税申请 [详细内容]
  • 网友回答:
    网友:steedhorse

    我觉得只要通过单步跟踪,很容易发现程序是运行到wsprintf那句才出错的,然后瞪大眼睛一瞧,就瞧出来了。  
      这种问题还是事前预防好,使用带变参的函数时,事前小心一点,调试时就减少好多麻烦。

    网友:fengqinggao

    一般是内存问题,例如指针没有new就使用或者指针被delete了还在使用等,还有资源定义不当夜可能出现这类错误。  
       
      一般来讲大概可以估计到是那个模块出了问题,然后到该模块去查这两个方面:指针、资源,应该还比较快  
       
      当然,也可能是其他的问题,但首先要考虑这两个方面

    .

    讨论区

    Login