双机调试和windbg的命令

本文详细介绍了如何进行WinDbg的双机调试,包括VMware的配置、boot.ini修改、宿主机Windbg设置,以及调试过程中常用的Windbg命令,如符号加载、断点设置、线程和进程控制、内存与句柄查看等,旨在为驱动程序员提供全面的调试教程。
摘要由CSDN通过智能技术生成

各位大牛以及和我一样还是菜鸟的朋友们,大家好,今天在调试驱动程序时,由于要做双机调试,所以顺便再论坛发给以后需要的朋友,相对网上其他教程我的这个
算是比较详细了,因为我是看了网上很多相关文章,他们多多少少都还是存在一些问题,可能导致我们无法正常调试。
我通过结合自己的实践,做个教程叫大家,Windebug双机调试是任何做驱动的程序员都必须会的。。。。。。。。。。
废话不多说,直接来教程:

(1)
1.配置VMware(windows XP)   >>>>>为VMware工作站添加串口






添加完毕,然后在设置时把I/O模式勾了,如果添加完毕没有出来如图右边的选项(虚拟机禁用了什么什么的)我们可以在编辑--->首选项---->设备

2.修改boot.ini文件完成配置

如果找不到就设置下查看文件加属性显示受保护的文件。

直接打开C:\boot.ini(如果看不见的同学需要在文件夹选项中打开显示隐藏文件),然后在文件末尾另起一行添加如下启动参数:

multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional Debug" /fastdetect /debugport=COM1 /baudrate=115200

3.配置宿主机windbg

在开始里面找到我们安装的Windebug图标,创建桌面快捷方式,鼠标右键,选择属性。


在目标后面 空格添加 -b -k com:pipe,port=\\.\pipe\com_1,baud=115200,pipe(记住打空格)。

5.下载调试所需符号

打开windbg
现在已经是完事具备,只欠符号.接下来点击 File – Symbol File Path…,填入 SRV*D:\symbol*http://msdl.microsoft.com/download/symbols 后,选中reload.单击OK(如果是平时调试您自己的程序,或者存有本地 Symbol,这里也可填写本地符号文件路径).

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

#重要说明

(1) windbg命令分为标准命令元命令扩展命令

     标准命令提供最基本的调试功能,不区分大小写。如:bp  g  dt  dv  k等

     元命令提供标准命令没有提供的功能,也内建在调试引擎中,以.开头。如.sympath  .reload等

     扩展命令用于扩展某一方面的调试功能,实现在动态加载的扩展模块中,以!开头。如!analyze等

(2) 进入调试状态时,直接回车可重复执行上一条命令;按上下方向键可以浏览和选择以前输入过的命令

(3) 神奇的Tab键,进行命令补全;ESC清除当前命令输入框中的文本

(4) 使用;作为分隔符,可以在同一行输入多条命令

(5) 上图红色框中的“0:000”。0当前调试会话的进程号000调试会话的线程号

(6) 当命令提示符显示*BUSY*时,即使命令输入框可以输入命令,但输入的命令不会立即被执行,要等windbg空闲时才能执行。

     可使用Ctrl + Break来终止一个长时间未完成的命令

(7) 一次可以执行多条命令,命令间用分号;分隔 【:bp main;bp `view.cpp:120`】,一次打2个断点

(8) 为了保证windbg流畅运行,在调试时,尽量不要开启Watch、Locals、Registers、Call Stack、Processes and Threads窗口,直接用command来获取信息

#启动调试

windbg -I  // 将windbg设置成默认调试器

windbg "notepad.exe" arguments  // 使用windbg启动调试notepad.exe

windbg -p 4200  // 将windbg附加到一个正在运行的pid为4200的进程上

windbg -pn "notepad.exe"  // 将windbg附加到一个正在运行的名为notepad.exe的进程上

windbg –z "c:\mydumpfile.dmp" // 调试mydumpfile.dmp文件

.opendump "c:\mydumpfile.dmp"  // 调试mydumpfile.dmp文件

.attach 0n4220  // 4220为十进制pid,使用该命令附加调试时,必须先存在一个调试会话

.detach   // 分离调试

.restart  // 重启并调试

.kill  // 强制结束当前调试

q  // 结束当前调试会话,回到基础工作空间,并结束调试进程

qd  // 结束当前调试会话,回到基础工作空间,但不结束调试进程

#获取帮助

?   // 打印出所有标准命令

.help  // 打印出所有元命令

.hh  // 打开windbg的chm帮助文件

.hh bp  // 打开windbg的chm帮助文件bp命令介绍页

command /?  // 打印命令command具体参数用法

#注释符

*  // 注释整行

$$ // 注释(遇到分号结束)

#配置调试环境

:如果被调试的模块(无论移动到本机的何处)是用本机代码编译产生的,都不需要进行符号和源代码的路径设置

.sympath   // 查看当前符号查找路径

.sympath c:\symbols   // 将符号查找路径设为:c:\symbols

.sympath+ c:\symbols  // 将c:\symbols添加到符号查找路径集合中

.symfix // 将符号查找路径设为:SRV*WinDbg安装目录\Sym*http://msdl.microsoft.com/download/symbols

.symfix f:\symbols // 将符号查找路径设为:SRV*f:\symbols*http://msdl.microsoft.com/download/symbols

.symfix+ f:\symbols  // 将SRV*f:\symbols*http://msdl.microsoft.com/download/symbols添加到符号查找路径集合中

.srcpath // 查看当前源文件查找路径

.srcpath f:\src // 将源文件查找路径设为:f:\src   注:必须勾选上菜单“Debug”-“Source Mode”;另外pdb须与exe、dll等执行模块匹配上

.srcpath+ f:\src  // 将f:\src添加到源文件查找路径集合中

.exepath // 查看可执行文件查找路径

.exepath f:\bin // 将可执行文件查找路径设为:f:\bin

.exepath+ f:\bin  // 将f:\bin添加到可执行文件查找路径集合中

#系统信息

vertarget // os信息

!cpuid  // cpu信息

#wow64模式  【x64版windbg调试win32程序】

.effmach  

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值