dhbellwyc
驱动牛犊
驱动牛犊
  • 注册日期2007-02-28
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分-42分
  • 威望68点
  • 贡献值0点
  • 好评度12点
  • 原创分0分
  • 专家分0分
阅读:2304回复:2

请教一个WINDOWS的调试中断异常分发例程的问题!

楼主#
更多 发布于:2007-11-19 09:38
用WINDBG工具进行内核调试,输入指令!idt,打印出中断例程分派表。

目前我有一事搞不清楚,当系统中任何一个进程发起调试中断的时候,也就是CPU中断号为1号和3号(来源于IA-32编程手册)的异常时,CPU首先是跳转到操作系统中的哪一个分派程序啊,这个例程肯定是中断例程分派表里的一项。但我搞不清楚是哪一项。我记得中断例程分派表里有这两项:halprofileinterrrupt和apicinterruptdispatchrotine这两个例程,名字大概是这个,记不太清了。这两函数是我认为最有可能的,因为其它的例程似乎在名字上看的出都对应了一个外部设备。但这两个函数在WRK-1.2里整个找不到源代码,能找到的线索也就是KE文件夹里有一个raiseexp的文件,里面就定义了三个函数。

感觉《深入理解WINDOWS操作系统》也就是windows internals这书看起来内容很详实,很厚,哪怕就是WRK也是这样。看起来很全,一到真正要解决问题的时候,感觉捉襟见肘。

不知道谁能解决我的问题啊!
凝气神通
A1000S12
驱动牛犊
驱动牛犊
  • 注册日期2002-10-27
  • 最后登录2012-05-14
  • 粉丝0
  • 关注0
  • 积分7分
  • 威望43点
  • 贡献值0点
  • 好评度12点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2008-02-29 08:57
WRK里的ntos\ke\i386\trap.asm是这样写的:

_IDT            label byte

IDTEntry        _KiTrap00, D_INT032             ; 0: Divide Error
IDTEntry        _KiTrap01, D_INT032             ; 1: DEBUG TRAP
IDTEntry        _KiTrap02, D_INT032             ; 2: NMI/NPX Error
IDTEntry        _KiTrap03, D_INT332             ; 3: Breakpoint

所以直接找_KiTrap01和_KiTrap03的代码就行了。
明镜心
禁止发言
禁止发言
  • 注册日期2008-06-22
  • 最后登录2008-07-25
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望40点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2008-06-24 01:17
有道理,支持!
用户被禁言,该主题自动屏蔽!
游客

返回顶部