
windbg
文章平均质量分 55
CAir2
这个作者很懒,什么都没留下…
展开
-
dump 定位分析
dump定位分析原创 2023-04-11 14:22:55 · 642 阅读 · 0 评论 -
windbg !htrace 定位句柄泄露
!htrace:扩展用于显示一个或多个句柄的堆栈回溯信息!htrace [Handle [Max_Traces]] !htrace -enable [Max_Traces]!htrace -snapshot!htrace -diff!htrace -disable!htrace -? !htrace,显示当前的所有句柄信息使用!htrace 定位句柄内存泄露基本步骤:!htrace -enable,启用handle trace,并且创建第一个快照作为初始状态,方便使用 -diff选项原创 2020-07-24 11:36:12 · 757 阅读 · 0 评论 -
windbg 内存搜索 s
s 内存搜索。具体更复杂的的s命令可以通过.hh查看该命令具体介绍。索索指定范围内的字符串s -sa Range#搜索Range范围内的ansi字符串 s -su Range#搜索Range范围内的unicode字符串 s -a Range text#搜索Range范围内的指定的ansi字符串 s -a Range text#搜索Range范围内的指定的unicode字符串eg:搜索起始地址为00fc0000 ,长度为0x100范围内的ansi字符串s -sa 00fc0000 00f原创 2020-07-23 18:23:52 · 2580 阅读 · 0 评论 -
调试DLL卸载时的死锁
转载原文:https://zhuanlan.zhihu.com/p/90591425Dll死锁根本原因是因为FreeLibrary的时候会触发DllMain的DLL_PROCESS_DETACH,而线程退出的时候会触发DllMain的DLL_THREAD_ATTACH,由于对DllMain()的调用需要序列化,需要等待0号线程释放锁后,其它线程才能调用。而0号线程又在无限等待1号线程结束,故死锁。前言最近我们的程序在退出时会卡住,调查发现是在卸载dll时死锁了。大概流程是这样的:我们的dll在加转载 2020-07-23 15:24:18 · 1169 阅读 · 0 评论 -
windbg 初始断点
1.什么是初始断点?当调试进程的时候,为了让调试人员尽早的分析目标调试程序,windows操作系统的进程加载器加入了特别的调试支持:在完成最基本的用户态初始化之后,系统的初始化函数就会主动执行断点指令,触发断点,让调试目标中断到调试器中。这个断点被称为初始断点。2.Windbg初始断点触发为了给我们提供更好的调试机会,所以windbug在调试的时候首先会触发初始断点。file=>...原创 2019-06-18 17:45:45 · 601 阅读 · 0 评论 -
windbg 基本知识
1. 元命令:以.开头的命令。eg:.reload 2. 扩展命令:以!开头的命令。eg:!lmi进程线程限定符观察模块信息lm 1. m:指定模块名的过滤模式。eg:lm m k* 以k开头的模块 2. M:指定模块路径的过滤模式 3. o:只显示加载的模块 4. l:只显示已经加载符号的模块 5. e:死按时有符号问题的模块分析符号x [Options]...原创 2019-06-18 17:00:26 · 456 阅读 · 0 评论 -
windbg 内存查看
1.内存查看命令(d)d{a|b|c|d|D|f|p|q|u|w|W} [Options] [Range]dy{b|d} [Options] [Range]d[Options] [Range] 1. a:ASCII码 2. b:字节和ASCII码 3. c:DWORD和ASCII码 4. d:DWORD 5. D:double 6. f:float 7. p:按指针宽度显示...原创 2019-06-18 16:20:41 · 1117 阅读 · 0 评论 -
windbg 观察栈
1.显示栈回溯(k)k命令选项f:显示相邻两个栈的内存距离L:屏蔽源文件信息k:命令k输出解析:每行代表一个函数,也就是一个栈帧。第一列:栈帧基址。第二列:函数返回地址第三列:函数名和执行位置,之后是源文件信息。@符号后面的数字表示当前源文件所在的行。k命令增加参数L可以屏蔽源文件信息。kb:显示栈上的前三个参数(不一定是参数,仅仅是三个固定位置的值)kp:根据pd...原创 2019-06-18 15:12:59 · 1800 阅读 · 0 评论 -
windbg 断点+单步
1.设置断点bp,bu,bm 软中断[~td] bp[ID] [Options] [Address[Passess]] ['CommandString']~td:线程序号。如果设置了线程序号,则只有当该线程调用才会触发断点。ID:断点编号,如果不指定则从0开始编排Address:断点地址,eg:TestModals 模块的Func 函数 TestModals!Func Passess:...原创 2019-06-18 14:25:45 · 4711 阅读 · 0 评论 -
windbg 安装
WinDbg 安装https://blog.youkuaiyun.com/counsellor/article/details/80816583x64http://download.microsoft.com/download/A/6/A/A6AC035D-DA3F-4F0C-ADA4-37C8E5D34E3D/setup/WinSDKDebuggingTools_amd64/dbg_amd64.m...原创 2019-06-18 10:03:08 · 527 阅读 · 0 评论