Bochs是由Kevin Lawton 于1994年开始开发的一个用于完全模拟Intel的x86模拟器。使用C++开发,它被设计成可以运行于多种主流平台下,包括x86, PPC, Alpha, Sun和MIPS。
Bochs全部用软件来模拟的,从启动到重启,包括PC的外设键盘,鼠标,VGA卡,磁盘,网卡等。Bochs自带调试器bochsdbg,它可以从PC机刚启动的时就开始模拟。
bochs常用命令:
1、bximage 生成虚拟盘;
2、在bochsrc中进行配置,然后启动,bochs -f bochsrc;
3、调试常用指令。
行为 | 指令 | 举例 |
在某物理地址设置断点 | b addr | b 0x30400 |
显示当前所有断点信息 | info break | info break |
继续执行,直到遇上断点 | c | c |
单步执行 | s | s |
单步执行(遇到函数则跳过) | n | n |
查看寄存器信息 | info cpu r fp sreg creg | info cpu r fp sreg creg |
查看堆栈 | print-stack | print-stack |
查看内存物理地址内容 | xp /nuf addr | xp /40bx 0x9013e |
查看线性地址内容 | x /nuf addr | x /40bx 0x13e |
反汇编一段内存 | u start end | u 0x30400 0x3040D |
反汇编执行的每一条指令 | trace-on | trace-on |
每执行一条指令就打印CPU信息 | trace-reg | trace-reg on |