初学者 windbg的使用~~(一)
来源:互联网 发布:linux io性能分析 编辑:程序博客网 时间:2024/06/05 17:57
windows下有很多调试工具的,但是比较强大的调试工具是 windbg 既能调试用户态又能调试 内核态。本人是初学者,也是在学习中,希望大家能一起学习。。
一. 加载符号
1.设置符号路径
.sympath E:\symbols
.symfix c:\symbols 将符号路径修改为Microsoft公有符号库存储库, 结果是将符号路径设置为SRV* downstream folder*http://msdl.microsoft.com/dowmload/symbols
还可以在 File/Symbol file path 里面设置
2.加载符号
显示符号信息
lm l 显示已加载符号的模块
lm vm 模块名字 显示模块版本信息等
! lmi ntdll.dll 显示ntdll.dll 模块的头部信息
.reload 是抛弃已加载的符号信息,重新加载
!sym noisy
如果.relaod 没有成功,用!sym noisy 打开.reload 的命令详细日志 在重新加载
.reload /f 模块名
检查模块是否加载成功
在 !lmi 命令下会有checksum 数值
!chksym 数值 看是不是那个模块的符号加载上了
3.使用符号
x 使用通配符 查找 x *!*singe*查找每个符号文件中包含的字符串 some的符号名
x /v /t 模块名!*
显示所有函数和对象所占字节数按升序排列出符号的类型和大小
ln address 显示address附近的相对应的符号
4.加载源文件
.srcpath cpp路径 逐行调试代码,这样就和vs一样了,在local里面可以查看变量的值
.srcpath c:\ : d:\ 可以有多个路径 查找到对应的.cpp文件
还可以在file/sorce file path 里面设置路径
.srcnoisy 查看状体
.srcnoisy 1 开始 这样会显示丰富的源码信息
.srcnoisy 0 关闭
5.判断程序停下来的原因
.lastevent
1.由于有断点
2.内存越界
version 命令 是打印系统版本及调试器 的版本号
r是寄存器 reax 查看eax寄存器的值
二。断点设置
bp
查看所有断点 bl
bp ntdll!RtlAllocateHeap 每次执行到这个函数都会停下来
bp /p @$pro ntdll!RtAllocateHeap "lprocess -l0:g "
bu 可以设置延迟断点
dv 是显示局部变量的值
dt 结构体 显示结构体信息
eg: dt this 就会显示这个this里面的信息
- 初学者 windbg的使用~~(一)
- WinDBG 使用教学(一)
- Windbg的使用心得
- WinDbg的使用
- windbg的使用
- Windbg脚本的使用
- 通往WinDbg的捷径(一
- 通往WinDbg的捷径(一)
- 使用WinDbg —— .NET篇 (一)
- WinDbg 调试工具的使用
- WinDbg 调试工具的使用
- WinDbg命令dt的使用
- windbg的使用四(Windbg检查死锁 )
- 翻译:通往WinDbg的捷径(一)
- 通往WinDbg的捷径(一)
- 翻译:通往WinDbg的捷径(一)
- 通往WinDbg的捷径(一)
- 通往WinDbg的捷径(一)
- 将OutputStream转为InputStream
- C# 委托和事件
- 《实时碰撞检测算法技术》读书笔记(六):最近点计算(下)
- 产品需求模型之KANO模型
- Hadoop2.2.0伪分布式安装配置
- 初学者 windbg的使用~~(一)
- catalan数总结
- cocos2d-x 源码剖析(17)
- cocos2d-x添加广告条(IOS and Android)
- 用Doxygen为objective-c代码生成文档
- POJ1760
- linux awk
- Android移植教程
- win7系统自动休眠设置