Bochs源码分析 - 12:这才是真正的调试姿势!!

本文介绍了在调试Bochs时的正确方法,包括使用IDA静态分析uboot.bin和setup.bin,配置调试模式的Bochs设置硬件断点,以及在Visual Studio中设置软件断点以观察指令执行。通过这些技巧,可以更高效地调试Bochs的CPU代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

        之前我们为了正确的调试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)指令,因为其是物理断点(硬件断点),如果只是用b指令其软件断点无法触发。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值