分类: LINUX
2011-12-22 22:54:39
1. 生成带gdb-stub功能的bochs
./configure --enable-debugger-gui --enable-gdb-stub --with-wx
make
make install
--with-wx表示使用wxWidget界面库
2. 生成bochsdbg
在windows下安装完官方下载的bochs后,会有一个大概是bochsdbg.exe用来调试的程序,但linux底下是没有的,必须编译安装源代码。
创建对应的makefile文件。命令:
./configure --enable-debugger --enable-disasm
或复杂点:(增加相关GUI库支持)
./configure --enable-debugger --enable-disasm --enable-debugger-gui --with-all-libs --enable-x86-debugger
再make, 这样bochs就生成了。把bochs改名为bochsdbg并复制到bin目录下或者/usr/local/bin下面
3. 命令行方式启动bochs
bochsdbg -q -f sample.bxrc (调试版本)
bochs -q -f sample.bxrc
4. 使用GDB调试bochs里面的代码
通过第一步,我们得到了具有gdb-stub功能的bochs,接下去在bxrc文件中开始处添加:
gdbstub: enabled=1, port=1234, text_base=0, data_base=0, bss_base=0
保存后,使用命令:
bochs -q -f sample.bxrc
启动程序后,会得到以下信息:
00000000000i[ ] reading configuration from bochsrc-0.00_mini.bxrc
00000000000i[ ] Enabled gdbstub
00000000000e[ ] bochsrc-0.00_mini.bxrc:14: 'vga_update_interval' will be replaced by new 'vga: update_freq' option.
00000000000i[ ] installing x module as the Bochs GUI
00000000000i[ ] using log file bochsout.txt
Waiting for gdb connection on port 1234
接下去切换到另一个终端,使用gdb打开对应的需要debug的程序
gdb sample