Windbg找应用程序内存泄露

6 篇文章 0 订阅
4 篇文章 0 订阅

给自己做个记号


1.先运行Windbg安装目录下的gflags.exe,Image File,Image填exe名字,不要全路径,选上Create user mode stack trace database;

2.在Windbg中调试模式运行程序,在退出时显示:

e:\vs工程\tests\testsdlg.cpp(101) : {125} normal block at 0x003B9578, 100 bytes long.
Data: < > CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD

3.执行!heap -x 命令

0:000> !heap -x 0x003B9578
Entry User Heap Segment Size PrevSize Unused Flags
-----------------------------------------------------------------------------
003b9550 003b9558 003b0000 003b0640 a0 808 18 busy extra fill

4.执行!heap -p -a 003b9550

二。没有打印"normal block at 0x003B9578"的情况,要使用umdh,在windbg的安装目录下有

1.设置好符号变量路径:echo %_NT_SYMBOL_PATH%
C:\WINDOWS\Symbols\dll;E:\Symbols;http://192.168.74.55/sym;http://msdl.microsoft
.com/download/symbols

2.建一个内存快照:umdh.exe -p:2728 -f:c:\1.log

3.再建一个内存快照:umdh.exe -p:2728 -f:c:\2.log

4.比较两个内存快照:umdh -d c:\1.log c:\2.log >c:\3.log

前面是+号的表示增加的,如

+ 8216 ( 8216 - 0) 1 allocs BackTrace65
+ 1 ( 1 - 0) BackTrace65 allocations

前面是-号的表示是减少的

- 8216 ( 0 - 8216) 0 allocs BackTrace61
- 1 ( 0 - 1) BackTrace61 allocations

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值