starl1985
驱动小牛
驱动小牛
  • 注册日期2009-02-04
  • 最后登录2016-01-09
  • 粉丝2
  • 关注2
  • 积分134分
  • 威望1021点
  • 贡献值1点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:3714回复:6

windbg+VMware调试ddk自带的portio,下了断点,却中断不了?

楼主#
更多 发布于:2009-06-18 11:21

系统环境
本机是 windows XP SP2,目标机用的是虚拟机,装的系统是 windows XP SP2 都是干净的系统!

调试环境配置
最新版windbg+ddk(3970-10086),办公电脑部能上外网,所以使用的是MS上的XP SP2的符号文件,windbg中符号文件路径的如下:
C:\Windows\Symbols\;srv*C:\WINDOWS\Symbols*http://msdl.microsoft.com/download/symbols;E:\WINDDK\3790.1830\src\general\portio\sys\objchk_wxp_x86\i386;srv*

符号文件说明下:
1.C:\Windows\Symbols\是下载的符号文件本机路径
2.E:\WINDDK\3790.1830\src\general\portio\sys\objchk_wxp_x86\i386这个是编译DDK中的portio的私人符号文件路径,中间那段是服务器路径,由于电脑不能上外网,所以肯定是没用处的!

下面是windbg+VMware调试过程!
Microsoft (R) Windows Debugger Version 6.11.0001.404 X86
Copyright (c) Microsoft Corporation. All rights reserved.

Opened \\.\pipe\com_1
Waiting to reconnect...
Connected to Windows XP 2600 x86 compatible target at (Thu Jun 18 09:53:08.132 2009 (GMT+8)), ptr64 FALSE
Kernel Debugger connection established.  (Initial Breakpoint requested)
Symbol search path is: C:\Windows\Symbols\;srv*C:\WINDOWS\Symbols*http://msdl.microsoft.com/download/symbols
Executable search path is:
Windows XP Kernel Version 2600 UP Free x86 compatible
Built by: 2600.xpsp_sp2_rtm.040803-2158
Machine Name:
Kernel base = 0x804d8000 PsLoadedModuleList = 0x805541a0
System Uptime: not available
Opened log file 'dbgeng.log'
Break instruction exception - code 80000003 (first chance)
*******************************************************************************
*                                                                             *
*   You are seeing this message because you pressed either                    *
*       CTRL+C (if you run kd.exe) or,                                        *
*       CTRL+BREAK (if you run WinDBG),                                       *
*   on your debugger machine's keyboard.                                      *
*                                                                             *
*                   THIS IS NOT A BUG OR A SYSTEM CRASH                       *
*                                                                             *
* If you did not intend to break into the debugger, press the "g" key, then   *
* press the "Enter" key now.  This message might immediately reappear.  If it *
* does, press "g" and "Enter" again.                                          *
*                                                                             *
*******************************************************************************
nt!RtlpBreakWithStatusInstruction:
80527da8 cc              int     3


这一段表示windbg已经成功的连接上了目标系统,也没有出现报错没有找到符号文件,以前虚拟机用番茄的系统的时候,在连接虚拟机的这一步的时候就会报错符号文件找不到,现在改了个干净的SP2系统,没有出现报错信息,应该是说我系统的符号文件是正确的?不知道这样理解是正确的不?不正确希望指出,谢谢!


下一步调试:
 kd> bu portio!DriverEntry
kd> bl
 0 eu             0001 (0001) (portio!DriverEntry)

kd> g
PortIo:IRP_MN_QUERY_DEVICE_RELATIONS
PortIo:IRP_MN_QUERY_REMOVE_DEVICE
PortIo:IRP_MN_REMOVE_DEVICE
PortIo:Waiting for outstanding requests
PortIo:unload
PortIo:Entered Driver Entry
PortIo:Entered AddDevice: 8162CDF8
PortIo:AddDevice: 816144C0 to 8162CDF8->8162CDF8
PortIo:IRP_MN_?????
PortIo:IRP_MN_FILTER_RESOURCE_REQUIREMENTS
PortIo:IRP_MN_QUERY_INTERFACE
PortIo:IRP_MN_START_DEVICE
PortIo:Resource Translated Port: (300) Length: (4)
PortIo:IRP_MN_QUERY_CAPABILITIES
PortIo:IRP_MN_QUERY_PNP_DEVICE_STATE
PortIo:IRP_MN_QUERY_DEVICE_RELATIONS


这是在成功连接上目标机之后,我对portio的DriverEntry下了一个延时断点,显示断点应该是下成功了吧!然后我在目标机里面动态的加载了一次portio驱动,然后g命令之后,却显示没有中断到目标机!不知道是什么原因,是不是断点没下成功?试了几次都没成功,只能这里寻求些达人的帮助了,上面的解释应该蛮清楚了,本人刚刚接触驱动开发,希望好心人抽空帮忙看下!万分感谢!

多看DDK,勤搜索
starl1985
驱动小牛
驱动小牛
  • 注册日期2009-02-04
  • 最后登录2016-01-09
  • 粉丝2
  • 关注2
  • 积分134分
  • 威望1021点
  • 贡献值1点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2009-06-18 17:19
半天了,怎么没一个兄弟帮忙看下呢。。。。
多看DDK,勤搜索
znsoft
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2023-10-25
  • 粉丝300
  • 关注6
  • 积分910分
  • 威望14796点
  • 贡献值7点
  • 好评度2410点
  • 原创分5分
  • 专家分100分
  • 社区居民
  • 最爱沙发
  • 社区明星
板凳#
发布于:2009-06-21 21:41
你得保证你运行时符号加载成功
http://www.zndev.com 免费源码交换网 ----------------------------- 软件创造价值,驱动提供力量! 淡泊以明志,宁静以致远。 ---------------------------------- 勤用搜索,多查资料,先搜再问。
starl1985
驱动小牛
驱动小牛
  • 注册日期2009-02-04
  • 最后登录2016-01-09
  • 粉丝2
  • 关注2
  • 积分134分
  • 威望1021点
  • 贡献值1点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2009-06-22 21:14
感动啊,谢谢ZNSOFT的回复,我被WINDBG征服了,在同事电脑上都可以搞定,就我的不行!!

顺便问下,portio的那个基地址怎么确定?应用程序写一个端口,但是却写不进数据进去,那个write的派遣例程里面写基地址+端口的基地址怎么确定啊?好像没怎么讲清楚,不知道理解了没?
多看DDK,勤搜索
KunYi
驱动牛犊
驱动牛犊
  • 注册日期2008-07-24
  • 最后登录2009-09-09
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望12点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2009-08-18 18:26
回 3楼(starl1985) 的帖子
PortIo:Resource Translated Port: (300) Length: (4),
^^ Base Address
to check your install inf file if you want change the base address
ytfrdfiw
驱动牛犊
驱动牛犊
  • 注册日期2005-09-28
  • 最后登录2016-02-19
  • 粉丝0
  • 关注0
  • 积分19分
  • 威望138点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2009-09-30 14:10
其实你也不必用bu来设置断点,你直接在portio的driverentry里写上DbgBreakPoint()。另你可以用ms提供的srvinstw.exe安装驱动,方法详见楚狂人的寒江独钓。
oushengfen
驱动牛犊
驱动牛犊
  • 注册日期2007-06-28
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分747分
  • 威望124点
  • 贡献值1点
  • 好评度82点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2010-03-02 20:01
windbg+VMware能详细点不
我不知道如何看啊

游客

返回顶部