我是司机的新手。我试图使用串行COM端口调试内核驱动程序但没有成功。有人可以告诉我如何解决问题的正确方向吗?
我在kd控制台上看到以下消息。
错误:DavReadRegistryValues / RegQueryValueExW(4)。 WStatus = 127
错误:DavReadRegistryValues / RegQueryValueExW(5)。 WStatus = 127
错误:DavReadRegistryValues / RegQueryValueExW(6)。 WStatus = 127
此时,我按下了Ctl ^ D和kd控制台,我看到了
阅读:超时。
READ:等待类型7包
阅读:超时。
READ:等待类型7包
阅读:超时。
编辑:WinDbg解决了这个问题。在Target系统完全启动之前,我将波特率更改为115200并插入break(Ctr ^ Break)。我现在能够调试代码。如果我在目标系统完全启动后插入break,那么我无法调试。我不知道确切的原因,但对目前的情况感到满意。
Here are the things I have done
1) Prepared Target system for debug mode by editing the boot.ini file. Added “/debugport=com1 /baudrate=57600” to boot.ini
2) On Host system, started kd.exe and seeing the following output
C:\Program Files\Debugging Tools for Windows>kd.exe -k com:port=1,baud=57600
Microsoft (R) Windows Debugger Version 6.6.0007.5
Copyright (c) Microsoft Corporation. All rights reserved.
Opened \\.\com1
Waiting to reconnect...
3) Rebooted Target system, system boots slowly than normal boot and I am seeing some messages <<below>> on Host system console
4) At this time, If I press Ctl-C on KD console then Target system freezes (hangs) and proceeds if I enter "g" at kd prompt. This means that Target system is going to debug mode
5) However After some time I am seeing the following message on the host machine console
ERROR: DavReadRegistryValues/RegQueryValueExW(4). WStatus = 127
ERROR: DavReadRegistryValues/RegQueryValueExW(5). WStatus = 127
ERROR: DavReadRegistryValues/RegQueryValueExW(6). WStatus = 127
After the above message there are no messages appearing on kd console.
I searched internet for "ERROR: DavReadRegistryValues/RegQueryValueExW(6). WStatus = 127" but didn't get proper reason for it.
I pressed Ctl^D and kd console and I am seeing
READ: Timeout.
READ: Wait for type 7 packet
READ: Timeout.
READ: Wait for type 7 packet
READ: Timeout.
I have tried above steps with following options ..but no luck
I disabled firewall & antivirus software on both Host and Target systems.
I unplugged and re-plugged serial cable connection between each trail
I have logged-in with Domain account local account with Admin rights
Can someone show some light on how to proceed? Both systems are running on XP 32bit SP3 OS.
由于 景
答案 0 :(得分:2)
您确定串口连接良好吗?
电缆必须是零调制解调器电缆 - 您应该使用终端程序验证这一点(在目标上未启用内核调试)。在目标计算机和主机上运行程序(超级终端或其他)(记住,就像我在内核调试之前说的那样,不能在目标上启用该端口或者无法打开端口)。
你可以在这里找到一些指向免费终端程序的链接(我不认为微软会提供自Vista以来的超级终端):http://www.lvr.com/serport.htm#software
在一台机器上键入一些字符,并确保它们显示在另一侧。在另一台机器上做同样的事情。
如果你不能这样做,那么就没有串行连接,你必须得到零调制解调器电缆或适配器。在你做到这一点之前,尝试让KD在这个连接上工作没有意义。
另外,请记住,目标上的内核调试使用的COM端口必须是标准的8250系列UART(现在通常是16550或更好,通常烘焙到主板芯片组中)。它不能是USB串口连接器(虽然在主机端可以正常工作,因为在主机上kd.exe是常规的Win32程序)。
编辑:
如果这不是串行连接问题,则问题可能是您的目标不支持使用boot.ini
进行配置。自Vista以来,已使用“引导配置数据库”(BCD)指定引导参数,该引导配置数据库使用bcdedit.exe
之类的程序进行操作。不幸的是,使用BCDedit配置系统要比编辑boot.ini
之类的简单文本文件复杂得多。
您应该阅读调试器帮助文件部分“在目标计算机上配置软件”;特别是“使用引导参数”部分。有关于如何使用bcdedit在Vista及更高版本系统上启用调试的详细信息。
答案 1 :(得分:0)
您可以测试另一件事,看看调试是否在目标上工作是在目标上调用kd -kl - 如果它告诉您调试没有启用,那么您还没有设置正确启动boot.ini。