下面是勘误表的地址:
http://advdbg.org/books/swdbg/errata.aspx
对于这个dec ebx,这个地方没有错,就是这个样子,不过书中如果解释一下为什么不是EIP,而是EBX就好了。
这里要用执行上下文的思路来考虑,因为断点异常,CPU中断到异常处理函数了,即KiTrap03,这时需要递减的应该是要保存到线程上下文中的EIP,而不是CPU的当前EIP,如果当前EIP被减一,那么相当与让CPU立刻后退一步,那么要么死循环,要么就非法指令了。因此这地方是把异常发生时CPU压到栈上的地址先放到EBX,然后作为参数调用CommonDispatchException,后者会将这个地址放到异常结构中。
看的很仔细,多谢反馈 :-)