相信很多同学在使用《Windows内核设计思想》随书源代码中的VMWare虚拟机进行调试的时候会发现:启动虚拟机后通过快捷方式运行Windbg,Windbg执行到第一个断点(osloader!DbgBreakPoint+0x9)时,源代码文件窗口并没有像书中描述的一样弹出,解决这个问题的方式如下:
- 随书源代码的压缩文件名为25314.rar,解压后文件夹名为25314,需将其重命名为code并置于E盘根目录下。
- 如果没有E盘,使用subst命令将code的父文件夹映射成E盘。
- 最后,从E盘下的目录打开虚拟机就可以成功地跟踪到断点处的源代码。
如果修改源代码并进行重新编译(笔者使用Windows7+VS2015),会发现如下错误:
11>ntoskrnl.rc(10): fatal error RC1015: cannot open include file 'afxres.h'.
解决方法:将afxres.h修改为windows.h。源代码中并没有使用MFC,这样的改动是可以的。
再次编译源代码,会出现如下错误:
Severity | Code | Description | Project | File | Line |
Error | LNK1181 | cannot open input file 'ntoskrnl.lib' | acpi | E:\code\ntos\acpi\LINK | 1 |
Error | LNK1181 | cannot open input file 'ntoskrnl.lib' | uniata | E:\code\ntos\uniata\LINK | 1 |
Error | LNK1181 | cannot open input file 'ntoskrnl.lib' | scsiport | E:\code\ntos\scsiport\LINK |