连续几个周末加班了
程序在我机器上跑一直没有问题,发到合作方去就崩了一片,在公司测试也没问题,郁闷中,以为是他们服务器配置或环境导致,其实就算服务器配置问题导致我程序崩溃,我也应该找原因,只因为太忙了。
每天给我发几十个crash文件,虽然收下,我也没时间去调,主要是对调试这个问题需要花费多长时间一直没地,所以还是把知道的先做了。昨天开始调,公司有台XP系统也崩了,正好可用,发现原来调试这个也没这么难了。首先是要保留对应的exe的pdb,文件,否则我是无办法的了。
1、下载windbg.
2、以后自己要注意发版本的时候,同时备份该版本的pdb文件。
3、打开windbg,设置符号路径。就是pdb所在文件路径。
4、设置源码路径。
使用命令进行调试了:
!analyze [-v] [-f | -hang] [-D BucketID] 目前为止我的崩溃使用!analyze -v就可以看出问题,其他几个命令没试过
.excr命令,好像可以把源码的哪一行给找出来,当然前提是设置源码路径了。
kb我使用感觉我使用!analyze -v是一样的
总结:调试技术是需要了解一下,否则对于一些问题真实拿着无招的。这次这个exe只会XP系统上崩,就是一个例子。而且不是所有XP都会崩。最后调试还是发现代码里面写得确实有些问题,但是WIN7下和大多数系统工作得却是非常正常,只有真的通过windbg跟到这个位置的时候才会发现,哦,原来这种情况是会导致问题的,只是那些系统容忍度太高了。
ok,收工。有时间继续学习windbg.