ReactOS学习笔记(1)-《Windows内核设计思想》随书源代码编译问题
来源:互联网 发布:网络翻译成英文 编辑:程序博客网 时间:2024/06/08 09:00
相信很多同学在使用《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,这样的改动是可以的。
再次编译源代码,会出现如下错误:
上述问题的解决办法:在各自工程属性的Linker->General->Additional Library Directories中加入"..\Debug"路径。
再次编译源代码,会出现如下错误:
上述问题的解决办法:在各自工程属性的Linker->General->Additional Library Directories中加入"..\system32"路径。
再次编译源代码,出现如下错误:
解决办法: 1. 将ntstrsafe.lib,int64.lib,exsup.lib从上述工程中删除。2. Linker->Advanced->Image Has Safe Exception Handlers选择No (/SAFESEH:NO)。
再次编译,出现如下错误:
解决办法是:在KeEnterCriticalRegionEx和KeLeaveCriticalRegionEx的函数签名void后添加NTAPI。
到此时为止,工程编译成功!
如果使用Windbg进行调试,会出现如下问题:
Break instruction exception - code 80000003 (first chance)
osloader!_KiTrap06:
004179d0 cc int 3
解决此问题的办法:设置所有工程属性表中的C/C++->Code Generation->Enable Enhanced Instruction Set为No Enhanced Instructions(/arch:IA32)。重新编译即可。
再次使用Windbg进行调试,还会出现问题,uncheck所有工程属性表中的Linker->Input->Additional Dependencies->Inherit from parent or project defaults再次编译,即可顺利运行如下位置。
DECLSPEC_NORETURN VOID FASTCALL KiTrapReturn(IN PKTRAP_FRAME TrapFrame)
{
UNIMPLEMENTED
_asm int 3 // 本书暂时讲解到此
}
阅读全文
0 0
- ReactOS学习笔记(1)-《Windows内核设计思想》随书源代码编译问题
- ReactOS学习笔记(2)- 如何在Ubuntu上使用GDB和QEMU远程源代码调试ReactOS?
- 《深入理解Android内核设计思想》学习笔记
- 毛德操老师重磅著作::Windows 内核情景分析--采用开源代码ReactOS
- ReactOS实践(一) ReactOS 源代码编译以及VMWare下运行
- ReactOS分析windows DPC机制(1)
- hadoop学习笔记 (2.7.1源代码编译 Ubuntu)
- 【学习笔记】编译Linux内核(中)--安装内核时易出现的问题和解决方案
- [学习笔记]在windows下编译内核[大杂烩]
- Windows内核学习笔记
- 《深入理解Android内核设计思想》学习笔记:第五章 Android进程、线程管理
- windows内核情景分析学习笔记1
- Windows内核学习笔记(一)
- 【JAVA】Java编程思想第四版源代码编译问题
- linux内核编译学习笔记
- 编译reactos
- Linux内核学习 编译Linux内核笔记
- Linux内核学习 编译Linux内核笔记
- 苹果疑在亚利桑那州大招人马,测试自动驾驶汽车
- 爱奇艺泡泡社区发布战绩 讲解背后社交逻辑
- 丰田推出二代主动安全组合套装“Toyota Safety Sense”
- 把生活还给生活,腾讯电脑管家文档随身升级移动办公新体验
- 简单的Tensorflow(6):MNIST数据集的简单应用
- ReactOS学习笔记(1)-《Windows内核设计思想》随书源代码编译问题
- 温和地走进那个良夜:吴恩达团队利用深度学习提升临终关怀服务效用
- Hinton提出泛化更优的「软决策树」:可解释DNN具体决策
- 读懂概率图:你需要从基本概念和参数估计开始
- 解释深度神经网络训练全过程:谷歌发布SVCCA
- 谷歌大神Jeff Dean亲口讲述团队工作: 我们是如何用一项技术打造出数十种产品的
- 「老公」胡歌代言的荣耀V10发布了,这里有你想要的所有AI功能
- 简单的Tensorflow(7):tensorboard的简单使用
- 013 数学期望及方差计算习题