如何根据程序崩溃时的DMP文件使用WinDbg查找调用堆栈

如何根据程序崩溃时的DMP文件使用WinDbg查找调用堆栈,第1张

dmp文件打开器(debuggingtoolsforwindows)6.12.2.633微软官方版windows发生蓝屏时,如果系统属性有下图设置,windows会自动生成minidump文件,该文件记录蓝屏生成代码和导致蓝屏出现的进程,通过windebug的软件来分析这个minidump文件.我们就可以找到蓝屏出错的原因了。这个文件保存目录是C:\windows\minidump文件夹,一般生成的名字为:Mini040108-01.dmp.系统重启时内存的dump,里边就是当时内存中的数据,要分析这个,得很要两把刷子,你不必费心去试了吧?!!没有工具打得开DMP文件,必须用imp工具导入数据库或者windbg软件调试微软在Windows中设计了一个功能,就派咐稿是在蓝屏出现后,keBugCheck能够生成一个侦错文件一Memory.dmp(-般位于系统目录中,比如:C:\WINNT),它记录了发生篮屏时的详细情况,以便微软专家对错误进行分析。当然,一般用户即使打开它,也根本看不懂其中奥秘。微软建议在遇到蓝屏后,将Memory.dmp压缩并通过FTP、邮件或其他方式寄送给他们,但过程比较繁索,目前还没有人证明这样能尽快得到来自微软的解决方案。如果你对Memory.dmp的内容感兴趣,可运行windows2000安装光盘support\tools文件夹中setup.exe来安装其支持工具,然后再C:\ProgramFiles\SupportTools文件夹中尘孝找到DumPchk.exe,它是一个命令行工具,可以打开Momory.dmp并显示其中内容。默认生成的Memory.dmp体积基本与你的系统内存相等,可以按下Win+Break组合键打开简高“系统属性”,进入“高级--启动和故障恢复”,在“写入调试信息”项选择是否生成Memory.dmp、“小内存转储”、“核心内存转储”或“完全内存转储”。建议选择“无”,因为Memory.dmp可能只对微软有用,并且我们一般也不会选择发给微软

gcc编译时加-g参数,然后用gdb去跑,挂掉的时候使用bt命令就可以看到某一线程的调用栈了,你可以使用thread命令去切换线程,就可仔汪以看到不同线程的调用栈了,具体去百度一下gdb的用法知念就行了。

另:

还可以搭戚困把堆栈错误给dump core,如果你觉得有必要的话。

可能是以下原因:

1、游戏内部文件缺失,需要重新下载魔兽争霸,游戏客户端并不大,而且现在网速也快重新下载一个魔兽争霸游戏。

2、可能是因为Directx文件版本错误引起的问题,我们可以Windows+R呼出敬简“运行“界面然后输入"dxdiag"进入Directx软件查看版本,根盯稿碧据相对应的版本凯举重新下载。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/8278375.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-14
下一篇 2023-04-14

发表评论

登录后才能评论

评论列表(0条)

保存