windbg笔记

1.默认栈大小 1024k 申请大于栈最大容量,程序崩溃
2.栈溢出,申请大于栈最大容量
3.堆破坏,使用未初始化的变量
4.堆溢出,赋值申请大小更大的数值
5.打开momory窗口,查看内存地址 , windbg 符号文件加载,程序的运行路径(.exe等)或源文件代码调试,windbg挂在运行程序(中途attach或开始), ,kb命令查看崩溃点, g程序运行
6.windbg UMDH 查询内存泄漏点, !heap -s 查内存泄漏(大程序不好用), !heap -s -stat -h 地址 , !heap -flt -s 大小 , !heap -p -a 地址
在这里插入图片描述
cd C:\Program Files (x86)\Debugging Tools for Windows (x86)
gflags -i a.exe +ust
set _NT_SYMBOL_PATH= D:\Testdemodir\app\aes_test\Debug
umdh -p:1234 -f:c:\old1.log
运行程序一段时间后
umdh -p:1234 -f:c:\new1.log
或 umdh -pn:newChar.exe -f:D:/SecondDump.txt 根据进程名字查询
注释:-p是进程号
然后运行umdh -d –v c:\old1.log c:\new1.log > c:\cmp1.txt
cmp1234.txt就是两个时刻的Heap Stack Trace的差别
我不知道行不行还差九个字还差四个

7.句柄泄漏 !htrace -enable ,!htrace -sanpshot,!htrace diff
查询方法:
导入程序,暂停程序,输入命令 ~*kb打印线程信息
句柄参数是什么0000004c
在这里插入图片描述
输入命令 !handle 0000004c f 查询句柄在干什么
在这里插入图片描述
查看信息,根据线程id(Thread Id)查询并找到线程信息,查看线程在干啥
在这里插入图片描述
再输入命令 !cs 0031fe98
在这里插入图片描述
线程被锁了一次 LockCount
OwningThread 拥有的线程地址,查找这个线程的地址
在这里插入图片描述
8.死锁,互锁,竞争锁 windbg排查方法

9.dump文件分析
打开dump文件
输入命令 !analyze –v

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

路途遥远gg

帮到你了就好

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值