在进一步研究GeekOS内核之前,有必要掌握调试这个技能,有了调试器,可以更直观地查看内部变量的值,也可以单步跟踪程序运行的轨迹。
这里研究的调试,当然是指源码级的调试。
首先从apt里安装的bochs模拟器可能是没有gdb stub的,也就是不能支持和gdb进行远程连接调试,为了支持这个功能,需要从bochs网站上下载最新版本的源代码,并且手工加入调试支持参数进行编译,下载地址为:
http://bochs.sourceforge.net/getcurrent.html
下载后解压到任意文件夹,然后进行设置和编译:
这样就得到了带有gdb-stub的bochs。
接下来还需要设置bochs的配置文件,使之开启gdb-stub,并且配置端口。
在.bochsrc中加入如下一行。
接下来引导系统,在build文件夹下运行bochs:
就会打开一个黑色没有内容的主界面,控制台显示&
这里研究的调试,当然是指源码级的调试。
首先从apt里安装的bochs模拟器可能是没有gdb stub的,也就是不能支持和gdb进行远程连接调试,为了支持这个功能,需要从bochs网站上下载最新版本的源代码,并且手工加入调试支持参数进行编译,下载地址为:
http://bochs.sourceforge.net/getcurrent.html
下载后解压到任意文件夹,然后进行设置和编译:
$ ./configure --enable-gdb-stub
$ make
# make install
这样就得到了带有gdb-stub的bochs。
接下来还需要设置bochs的配置文件,使之开启gdb-stub,并且配置端口。
在.bochsrc中加入如下一行。
gdbstub: enabled=1, port=1234, text_base=0, data_base=0, bss_base=0
接下来引导系统,在build文件夹下运行bochs:
$ bochs
选择Begin simulation
就会打开一个黑色没有内容的主界面,控制台显示&