前言
之前我们为了正确的调试bochs,采用了很多方法,一种是利用IDA进行调试,第二种是采用bochs-dbg配合调试,第三种是在cpu_loop(..)中下循环来进行调试。这三种来实际操作中都很不方便。
真正的调试姿势
IDA以二进制模式分别以0x7c00,0x8000-2为偏移打开uboot.bin与setup.bin文件,静态分析;配置调试模式编译bochs,精确下断点定位指令;再通过visual studio 在cpu_loop(..)函数中下软件断点分析指令的运行情况
ida分析静态文件
通过我们上篇对boot.asm的分析,其uboot加载到0x7c00处,setup进程加载到0x8000-2处。我们获取这个信息可以用ida来进行静态分析,确定其汇编代码地址。
通过调试模式的bochs来定位代码
当我们知道地址了,我们可以直接使用调试器来定位该对应汇编指令。注意,我们必须要使用pb(physical breakpoint)指令,因为其是物理断点&#