windbg使用技巧

来源:互联网 发布:混乱武林独孤求败软件 编辑:程序博客网 时间:2024/05/17 18:13
dt -v DMS_Server!DataRow 376c4b58+8 转存出数据结构

dt -s 4c -n DMS_Server!* 查找结构体大小


回答本文标题中的问题, 步骤如下:
第一步, 开启日志记录:
.logopen d:\output.txt
第二步, 运行你想要输出到文本文件中的命令:

address

第三步, 关闭日志记录:
.logclose
第四步, 检查是否还有日志记录打开:
.logfile


symbol path:
srv*c:/symbol*http://msdl.microsoft.com/download/symbols;



SRV*C:\WINDOWS\symbol*http://msdl.microsoft.com/download/symbols获取ntdll symbol

lm
列出模块的开始结束地址

lm v m ntdll* 查看模块的版本信息


heap -s 列出所有堆的统计信息

heap -a [address] 列出此堆分配的所有内存

dt -s [size] -n [VMS]!*
查找大小为size 的结构体类型 pdb的名称


dc [address] 转存出内存数据的字符
dt CVFSFileResponse 内存地址+8

dps [address] 查找 一段地址内的 symbol

s -d 00000000 L?ffffffff [address] 查找某个值在内存空间内被谁引用过

dd [address]
打印出地址内的值

map中nil == 1 表示根节点

address 打印内存信息(有用)

Largest free region(最大可分配的内存块空间)


heap -stat -h 03230000 查看线程 堆占用信息


heap -flt s size 打印所有内存变量(有用)


ln


查找全局变量,类的指针
x *!类名* 如:x *!SSDataCenter*
005da2ec SS!SSDataCenter::`vftable' = <no type information>
005da2ec 就是这个指针


在内存空间中查找类
x *!类名* 如:x *!RecordUnit*
005eaf98 SS!RecordUnit::`vftable' = <no type information>
005eaf98 就是这个指针
s -d 00000000 l?ffffffff 005eaf98
打印出RecordUnit的指针
0ffbfb44 005eaf98 005eafa8 00000001 baadf00d ..^...^.........
10357a7c 005eaf98 005eafa8 00000001 baadf00d ..^...^.........
1035fbf4 005eaf98 005eafa8 00000001 baadf00d ..^...^.........
103671dc 005eaf98 005eafa8 00000001 baadf00d ..^...^.........
1038164c 005eaf98 005eafa8 00000001 baadf00d ..^...^.........
103dc81c 005eaf98 005eafa8 00000001 baadf00d ..^...^.........
103e3244 005eaf98 005eafa8 00000001 baadf00d ..^...^.........
103efa1c 005eaf98 005eafa8 00000001 baadf00d ..^...^.........
103fad0c 005eaf98 005eafa8 00000001 baadf00d ..^...^.........
10402b5c 005eaf98 005eafa8 00000001 baadf00d ..^...^.........
1040a32c 005eaf98 005eafa8 00000001 baadf00d ..^...^.........
10423fcc 005eaf98 005eafa8 00000001 baadf00d ..^...^.........
(RecordUnit*) 0x0ffbfb44-8

程序崩溃前的日志可以通过查看日志指针获取。

dt _heap_entry 003f4388
ntdll!_HEAP_ENTRY
+0x000 Size : 3 当前字节大小*8
+0x002 PreviousSize : 4 前一个大小*8
+0x000 SubSegmentCode : 0x00040003
+0x004 SmallTagIndex : 0x39 '9'
+0x005 Flags : 0x1 状态 0x0空闲 0x1提交
+0x006 UnusedBytes : 0x9

+0x007 SegmentIndex : 0

~.kb 列出所有线程的堆栈

ChildEBPRetAddr Args to Child
0e41e1d4 7c956d2b 7c823eb3 00004350 0e41e384 ntdll!KiFastSystemCallRet
0e41e1d8 7c823eb3 00004350 0e41e384 03064da3 ntdll!ZwClose+0xc
0e41e1e4 03064da3 03064db8 00b01ea8 00000000 kernel32!CloseHandle+0x59
0e41e384 03064de3 00b10000 00b01ea8 0e41e4f8 dbghelp!Win32LiveSystemProvider::OpenMapping+0x2c3
0e41e394 0305f95d 00b10000 d615dfcc 03000000 dbghelp!Win32LiveSystemProvider::CloseMapping+0x13
0e41e4f8 03065d99 00005c10 00b01ea8 0e41e514 dbghelp!GenAllocateModuleObject+0x3cd
0e41e508 800704c7 0e41e990 03062c5a 03062ca3 dbghelp!Win32LiveSystemProvider::FinishProcessEnum+0x19
WARNING: Frame IP not in any known module. Following frames may be wrong.



死锁调试

syncblk 查看哪些线程拿到了锁

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 脾气太火爆了怎么办 满月宝宝脾气急怎么办 多颗牙齿缺失怎么办 孩子没有学习动力怎么办 裤子穿着往上跑怎么办 伤囗发炎了怎么办 玩派派背包食物不足怎么办 80岁老人植物人怎么办 steam账户创不起怎么办 小孩读书没有居住证怎么办 小孩上学没有准生证怎么办 小学在外地初中怎么办 小孩上学没准生证怎么办 没结婚出生证明怎么办 异地上高中高考怎么办 高中去外地上学怎么办 农村在城里上学怎么办? 父母没钱不工作怎么办 qq被家长偷看怎么办 孩子考差了怎么办 父母翻看qq记录怎么办 孩子qq屏蔽父母怎么办 杜鹃花老叶脱落怎么办 父母对孩子不好怎么办 家长看孩子手机怎么办 六年级打四年级学生怎么办 儿童被家长打怎么办 老师打孩子耳光怎么办 孩子动手打母亲怎么办 小孩被老师体罚怎么办 儿子跟父母对打怎么办 两个孩子争东西怎么办 大人吵架小孩该怎么办 小孩老爱顶嘴怎么办 孩子老爱顶嘴怎么办 孩子不愿分房睡怎么办 孩子不愿意去补课怎么办 高中孩子不愿意补课怎么办 孩子协调性不好怎么办 孩子暑假不愿意补课怎么办 话唠的孩子怎么办