Advanced Debugging
About AdvDbg Consult Train Services Products Tools Community Contact  
欢迎光临 高端调试 登录 | 注册 | FAQ
 
  ACPI调试
Linux内核调试
Windows内核调试
 
  调试战役
调试原理
新工具观察
 
  Linux
Windows Vista
Windows
 
  Linux驱动
WDF
WDM
 
  PCI Express
PCI/PCI-X
USB
无线通信协议
 
  64位CPU
ARM
IA-32
  CPU Info Center
 
  ACPI标准
系统认证
Desktop
服务器
 
  Embedded Linux
嵌入式开发工具
VxWorks
WinCE
嵌入式Windows
 
  格蠹调试套件(GDK)
  格蠹学院
  小朱书店
  老雷的微博
  《软件调试》
  《格蠹汇编》
  《软件调试(第二版)》
沪ICP备11027180号-1

Windows内核调试

帖子发起人: nigel   发起时间: 2009-08-21 08:58 上午   回复: 5

Print Search
帖子排序:    
   2009-08-21, 08:58 上午
yicaolove 离线,最后访问时间: 2011/2/17 6:15:38 nigel

发帖数前50位
注册: 2009-05-20
发 贴: 18
调试windows7加载驱动的问题
Reply Quote
向大家求教一个问题,就是在windows7开机后发现TouchPad经常不会动了,查看device manager发现TouchPad的位置显示感叹号,也就是驱动没有加载上。现在我想用windbg看看开机时/后device mamager是怎样枚举设备的,以及它是怎样检查到设备驱动没有加载上的,可是由于应用widbg的熟练度有限,现在只能在开机过程中用windbg断到nt!IopLoadDriver这个函数中来查看到开机过程中touchpad的驱动执行的汇编指令,并且发先进入device maanger时也会调用一个驱动,所以求教大家我怎样设断点可以断到device manager 检查设备驱动是否加载正常的过程中,怎样来查看一下device manager的工作原理?
IP 地址: 已记录   报告
   2009-08-21, 18:59 下午
Raymond 离线,最后访问时间: 2020/7/3 3:40:25 格蠹老雷

发帖数前10位
注册: 2005-12-19
发 贴: 1,303
Re: 调试windows7加载驱动的问题
Reply Quote
首先,是内核中的IO管理器(IO Manager)承担着加载和管理设备和驱动程序的任务。用户态运行的设备管理器只是一个界面程序,它主要是使用Setup API来从IO管理器那里获取信息,然后显示出来。不清楚你的目的是什么,你是要调试你自己开发的TouchPad驱动,还是想学习设备管理器的原理。达到这两目标的方法是有很大不同的。
IP 地址: 已记录   报告
   2009-08-21, 20:01 下午
yicaolove 离线,最后访问时间: 2011/2/17 6:15:38 nigel

发帖数前50位
注册: 2009-05-20
发 贴: 18
Re: 调试windows7加载驱动的问题
Reply Quote
dear Raymond,由于上面所讲的丢失TouchPad驱动的情况出现的很频繁(包括用厂商的驱动和微软自带的),所以我想解决这个bug,我的目的是:第一,在开机开始断下来,然后设断点,找到载入touchpad驱动的入口,进去,查看厂商或微软用于touchpad的驱动是怎样工作的,其中包括它都访问了哪些端口或函数等信息。这一点的目的就是想用windbg弄明白别人的驱动是怎样工作的,以便找到出现问题的可能原因(究竟是软件还是硬件的问题);第二个目的就是想用windbg深入学习设备管理器的工作原理.因为经常会遇到device manager里出现“感叹号”的问题,想追其究竟,但拿起windbg来又不知道该如何下手,怎样下断点可以查看到它的真面目。所以在这里诚请张老师给予指点,教我一个方法!谢谢张老师!(这个帖子以第二个目的为主)
IP 地址: 已记录   报告
   2009-08-24, 09:33 上午
yicaolove 离线,最后访问时间: 2011/2/17 6:15:38 nigel

发帖数前50位
注册: 2009-05-20
发 贴: 18
Re: 调试windows7加载驱动的问题
Reply Quote
up
IP 地址: 已记录   报告
   2009-08-24, 12:49 下午
Raymond 离线,最后访问时间: 2020/7/3 3:40:25 格蠹老雷

发帖数前10位
注册: 2005-12-19
发 贴: 1,303
Re: 调试windows7加载驱动的问题
Reply Quote
如果注册表里正确注册了驱动,那么系统一般会加载驱动文件的,很多驱动的问题都是因为驱动和系统交互不当,又被卸载了。
如果你有这个驱动的调试符号,那么可以设置一个延迟的断点, 比如 bp touchpad!driverentry
这样当这个驱动被加载的时候,断点便会命中。
如果没有符号,那么便很难调试,但是可以通过启用加载模块事件中断下来,比如 sxe ld:touchpad.sys

如果出于学习目的,那么应该找个有符号的驱动,最好还有源代码的来学习。
IP 地址: 已记录   报告
   2009-08-24, 15:49 下午
yicaolove 离线,最后访问时间: 2011/2/17 6:15:38 nigel

发帖数前50位
注册: 2009-05-20
发 贴: 18
Re: 调试windows7加载驱动的问题
Reply Quote
thanks Raymond!
IP 地址: 已记录   报告
高端调试 » 软件调试 » Windows内核调试 » Re: 调试windows7加载驱动的问题

 
Legal Notice Privacy Statement Corporate Governance Corporate Governance
(C)2004-2020 ADVDBG.ORG All Rights Reserved.