- 電源ONとともにCPUが起動する。このときはリアルモードである。
- ROMのBIOSコードを実行する。
- フロッピーディスクの先頭セクタ512バイトをメインメモリの0x0000:0x7c00に読み込んでその先頭にジャンプする。
- ここから先は読み込まれた512バイトのブートコードに全ておまかせである。
ブートコードは0x7c00番地に読み込まれてから実行されるのであって、そこでブレークポイントをブートコードの開始番地である0x7c00に設定する。 (これも面白かった)
<bochs:1> lb 0x7c00
See Using Bochs internal debugger for internal debugger commands
Difference Between gdb+bochs and bochsdbg
gdb+bochs:源码级调试
bochsdbg:汇编级调试
汇编级调试器的bochsdbg调试环境配置
- 将bochs的源码解压到/usr/src/bochs-2.3.7文件夹中(For Example)
- cd /usr/src/bochs-2.3.7
- ./configure --enable-debugger --enable-disasm
- make all
- make install
- 在编译安装完成后使用将安装到/usr/local/bin目录下的bochs改名为bochsdbg
mv /usr/local/bin/bochs /usr/local/bin/bochsdbg
源码级调试的gdb+bochs调试环境配置
- 建立能够与gdb通信进行源码级调试的bochs,与上部分相同,进入bochs的源码目录,重新配置编译,加入stub for gdb模块,使其能够与gdb通信,执行以下命令:
cd /usr/src/bochs-2.3.7
./configure --enable-gdb-stub
make all
make install - 要使用gdb进行调试需要修改bochs的配置文件,将
gdbstub: enabled=1, port=1234, text_base=0, data_base=0, bss_base=0
添加到配置文件中,并使用bochs打开虚拟机。 - 另开一个终端窗口,以下命令打开gdb:
>gdb <内核二进制文件>
(gdb) target remote localhost:1234
gdb连接到bochs后就可以使用gdb进行源码级调试了,需要注意的是在编译内核时需要加入”-g”选项以生成调试符号。
bochs-debugger and bochs-gdb in Fedora
- bochs-debugger with the builtin debugger (--enable-x86-debugger --enable-debugger)
- bochs-gdb with the gdb stub (--enable-x86-debugger --enable-gdb-stub)
0 件のコメント:
コメントを投稿