程序运行一段时间崩溃,如何调试找到崩溃的位置呢?? vc编写了一个数据采集的程序,程序编译运行没有问题,可运行了一段时间后,发生崩溃,程序退出,如何才能找出崩溃的位置呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 以debug方式运行。当出现错误的时候,重试就可以查看到运行的错误代码处。甚至可以看到错误的变量。也可以通过查看调用堆栈窗口查看错误所在处 release编译,生成pdb文件,用windbg运行程序 查看被windows捕获到的崩溃地址和模块 http://blog.csdn.net/guo_wei/archive/2007/09/29/1805978.aspx看看这个吧,不知道对你的问题有没有帮助,希望有 如果只有一个exe文件,这个问题好办。如果加了DLL,就难办了 首先看一下程序的内存占用情况,是否一直在增加?尤其是临近崩溃时。检查使用的资源是否恰当释放了,比如申请的内存块、各种句柄等。此外,可以添加一下Log,记录函数调用过程,以便出错时分析。 1。 可以使用记录的方式,如环形记录的方式(就是说采用一个链表最大能接收500个数据,这个值可以随便设置,当大于这个值得时候,删除前100条,继续记录)2。 在release条件下生成*.pdb,然后再运行。3。看内存使用情况,资源使用情况等是否在一直增加,如果是这样,则有内存泄露,资源未释放,如果出现这种情况最好还是换成debug环境,也可以使用boundchecker,purity等内存检测工具,或者可以使用visual leaker doctor等工具来检测内存泄露的地方和资源泄露的地方。4。如果出现违规操作,则可以出现指针没有初始化,或者使用野指针的情况(就是delete了,但没有置为NULL)5。 如果可以换成debug,则更能逮住问题。在这种情况下可以使用一下办法:1)生成*.pdb,当出现异常时,选择继续,然后调试,查看调用堆栈,分析问题的原因。2)可以生成make文件,根据崩溃地址,来查找错误的原因。3)结合debug的调试输出功能,使用viaual leaker doctor等,以及调用堆栈功能,输出相应的信息。4) 使用trace语句输出信息。以上四个方法都可以在没有调试环境的条件下进行。 请教:如何计算显示器的物理尺寸 一个界面很多按钮处理问题 简单程序 赐教 这些天总有人在VC群中问如何安装VC6 网页里有alert弹出的对话框,如何用程序代码实现“点击”? 为何我用GetTextExtentPoint32这个API总是得不到正确的文本长度? 有哪位VC高手能幫我解決這個難題嗎? 请教随机函数的用法? 内存映射的问题 Visual Studio 2015 源代码存到云端或服务器上 请问下如果做撤消???重做? 关于wsprintf函数,请高手帮帮忙
看看这个吧,不知道对你的问题有没有帮助,希望有
检查使用的资源是否恰当释放了,比如申请的内存块、各种句柄等。
此外,可以添加一下Log,记录函数调用过程,以便出错时分析。
2。 在release条件下生成*.pdb,然后再运行。
3。看内存使用情况,资源使用情况等是否在一直增加,如果是这样,则有内存泄露,资源未释放,如果出现这种情况最好还是换成debug环境,也可以使用boundchecker,purity等内存检测工具,或者可以使用visual leaker doctor等工具来检测内存泄露的地方和资源泄露的地方。
4。如果出现违规操作,则可以出现指针没有初始化,或者使用野指针的情况(就是delete了,但没有置为NULL)
5。 如果可以换成debug,则更能逮住问题。
在这种情况下可以使用一下办法:
1)生成*.pdb,当出现异常时,选择继续,然后调试,查看调用堆栈,分析问题的原因。
2)可以生成make文件,根据崩溃地址,来查找错误的原因。
3)结合debug的调试输出功能,使用viaual leaker doctor等,以及调用堆栈功能,输出相应的信息。
4) 使用trace语句输出信息。
以上四个方法都可以在没有调试环境的条件下进行。