windbg生成和分析dump

本文详细介绍了如何使用Windbg生成和分析dump文件,包括配置调试工具、生成dump文件的过程,以及如何通过分析dump文件定位程序崩溃的具体原因。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

记录一下使用windbg.exe生成和分析dump文件的过程:

1,在 客户机 的注册表中配置调试工具为windbg.exe,具体方法见上面文章。

2,配置完成后,在 客户机 运行程序,使程序崩溃。如下:下面的例子是除0崩溃的例子。

输入0后,程序崩溃,跳出windbg工具的界面:

3,在工具栏点击如图所示的按钮 

     或者在命令窗口输入g,然后回车,使程序运行,如下图:

4,生成dump文件。

在命令窗口输入 .dump /ma c:\fullTest.dump (dump文件中包含完整的信息),或者

在命令窗口输入.dump c:\miniTest.dump(dump文件是压缩的)。

5,完成后,将在c盘目录下,生成两个文件。

这个两个文件只需一个即可。将其中一个发给程序的开发者。

下面是分析dump文件:

1,程序的开发者收到dump文件后,将其保存到电脑某个目录下。

2,程序的开发者肯定有源代码,打开windbg.exe,配置符号文件路径,即pdb文件的路径

3,配置源文件的路径。.cpp的路径。

4,打开  dump文件  

即可在windbg.exe中显示 崩溃代码的位置:

 

然后通过下面的命令分析dump文件:

k:查看堆栈
0038fda0 01302f6e demo1!main+0x10d [e:\c++实例\第07章vc++实战调试技巧\demo\demo1\demo1.cpp @ 52]
0038fdb4 01302dd0 demo1!invoke_main+0x1e [f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl @ 64]
0038fe0c 01302c6d demo1!__scrt_common_main_seh+0x150 [f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl @ 253]
0038fe14 01302f88 demo1!__scrt_common_main+0xd [f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl @ 296]
*** ERROR: Symbol file could not be found.  Defaulted to export symbols for kernel32.dll - 
0038fe1c 75ed33aa demo1!mainCRTStartup+0x8 [f:\dd\vctools\crt\vcstartup\src\startup\exe_main.cpp @ 17]
WARNING: Stack unwind information not available. Following frames may be wrong.
0038fe28 77699f72 kernel32!BaseThreadInitThunk+0x12
0038fe68 77699f45 ntdll!RtlInitializeExceptionChain+0x63
0038fe80 00000000 ntdll!RtlInitializeExceptionChain+0x36

lsa:查看崩溃点。 例  lsa main+0x10d(这个就是堆栈第一行的地址)
    48:         cin >> im;
    49:         if (im == -1)
    50:             break;
    51: 
>   52:         int it = 100 / im;
    53: 
    54:         cout << it << endl;
    55:     }
    56:     
    57: 
    
dt :查看结构体变量

dv: 查看局部变量

扩展的分析工具:!analyze -v

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值