By::ProgrammeBoy
Blog:http://hi.baidu.com/ProgrammeBoy
老鸟飞过,科普类….有错的地方大家别笑,
看ReactOS的源码好多天了,许多windows下不明白的地方看看ReactOS的代码也就知道差不多了...写ReactOS的同志们可真是好人呀.想看linux但是还的学那一大堆命令....使用看reactos,照样可以理解操作系统的精髓...还有就是编译reactos在windows下,方便呀...,
废话不多说,看了半天的reactos的代码,心里跃跃欲试,想为reactos做点贡献,但是前提是怎么调试代码呢?.. ....由于网上关于reactos的调试很少...reactos的wiki上只有寥寥无几的几篇,也只是介绍内核调试器的使用..作为菜鸟的我只知道他是用9帧串口来传输数据.并不知道用什么来接收调试数据.和发送调试命令,在群里看的老蔡的使用的调试工具是: 总觉得不好使......自己尝试着瞎整..还真找出了点路子.(鉴于是自己瞎整,错误的概率也就很大,此文的目的是为调试reactos提供一个方向)
在reactos的论坛上搜"调试"的时候知道源码中有个fDebug是好像是用来调试的.所以我就找了先下fDebug的的代码.在D:\ReactOS\ReactOS_src\boot\freeldr\fdebug这个目录下.
这里我啰嗦下.源代码的路径别放到目录中有空格的文件夹中,有时会导致不能编译.例如,以前我把源码放在了D:\Program Files\ReactOS_src\boot\freeldr\fdebug这个目录下,在编译时可能会发生错误.(至于为什么?我就不啰嗦了)
好了,回到正题.接下来就是编译fDebug...,看了下fDebug的模块名(怎么看?打开fDebug下的 fDebug.rbuild文件里面有个module name=的字样,后面的就是)当时我随手打开了编译环境,输入"makex freeldr_fdebug",可是提示,mingw32-make: *** No rule to make target `fDebug'. Stop.,没有次模块,打开配置文件D:\ReactOS\ReactOS_src\boot\freeldr\freeldr.rbuild,发现并没有fDebug,那我们自己填,怎么填?嗯是个问题.
follow me:来到这个模块所在的主目录下也就是D:\Program Files\ReactOS_src\boot\freeldr\,找到freeldr.rebuild文件打开添加下面的:
<directory name="fdebug">
<xi:include href="fdebug/fdebug.rbuild" />
</directory>
[LD] output-i386\boot\freeldr\fdebug\fdebug.exe
[RSYM] output-i386\boot\freeldr\fdebug\fdebug.exe
_stprintf(PortName, TEXT("\\\\.\\%s"), CommPort);
hPortHandle = CreateFile(PortName,
GENERIC_READ|GENERIC_WRITE,
0,
0,
OPEN_EXISTING,
0,
0);
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课
上传的附件: