WeHack BBS
用GDB调试QEMU中的coreboot - 可打印的版本

+- WeHack BBS (https://bbs.wehack.space)
+-- 版块: 计算机技术 (https://bbs.wehack.space/forum-5.html)
+--- 版块: 固件技术讨论区 (https://bbs.wehack.space/forum-8.html)
+--- 主题: 用GDB调试QEMU中的coreboot (/thread-208.html)



用GDB调试QEMU中的coreboot - vimacs - 12-07-2020

今天在邮件列表里看到一个关于cbfs的变化导致开了USE_OPTION_TABLE导致无法启动的问题。我在QEMU上发现了同样的现象,于是就试着用GDB调试QEMU的coreboot.

在配置coreboot的时候,配置主板为i440fx就行了,不需要在Debug那里打开GDB支持,这个选项在这里用处不大。构建完成之后,运行QEMU:

qemu -bios build/coreboot.rom -m 2G -s -S

然后用GDB的target remote :1234连接QEMU,执行si直到进入保护模式,这个时候可以用symbol-file build/cbfs/fallback/bootblock.debug加载符号了。

麻烦的在之后的阶段,因为这些阶段的ELF都使用了重定位。我的做法是b run_romstage,然后用s和si跟到最后,直到进入下个stage的入口,然后就可以看到这个阶段的入口PC了。用这个PC减去ELF里对应位置的地址,得到偏移,然后用symbol-file -o <offset>加载文件,就能正确载入符号表。