《Orange'S:一个操作系统的实现》学习笔记(四)

新版本的bochs调试命令和老版本有些不同,作者书中给出的命令无法在我的2.6版本的bochs中使用。例如dump_cpu命令已经无法使用了。

下面给出一些常用命令,这些都可以在网上找到,记录备查。

1. b | break:设置断点

    例:b 0x7c00 在物理地址0x7c00处设置断点

2. info b | info break:查看设置的断点

     blist:列出所有断点

3. c:执行程序,遇到断点停止

4. s | step:单步调试,会进入函数

     s N:可执行N条指令

5. p | n | next:单步调试,不会进入函数

6. xp /nuf addr:查询从某个物理地址开始的N个字节的内存

    n表示显示多少内存

    u表示内存单位大小,可以为:b字节;h两个字节;w双字(4字节);g 4字(8字节)。注意,它们不符合Intel字节命名格式,但遵守GDB约定

    f 表示打印格式,可以为:x 16进制;d 10进制;u 无符号10进制;o 8进制;t 2进制。

    例:xp /32bx 0x00007c00 查询0x00007c00开始的32个字节内容


     x /nuf addr:查看线性地址内容


7. print-stack:打印当前栈中内容


8. u:反汇编指令。

    u 0x7c00:反编译0x7c00地址处指令

    u /10 0x7c00:反编译0x7c00开始的10条指令

    u 0x7c00 0x7c10:反编译0x7c00到0x7c10处指令:

9. trace-reg on:开启寄存器跟踪功能,调试每一步都会自动显示当前寄存器值

    trace-reg off:关闭

10. info cpu:查看cpu信息

11. r:查询基本寄存器的值


12. fp:查看寄存器

13. sreg:查看寄存器

14. creg:查看寄存器

15. trace on:开启反汇编每一条指令

      trace off:关闭

16. Ctrl+c 结束执行状态,返回调试器提示符

       Ctrl+d 执行完所有命令后退出

17. vb seg:off:在虚拟地址上加断点(段:偏移)

       lb addr::在线性地址上加断点

       pb addr:在物理地址上加断点

      d n | delete n:删除断点n,n是断点序号,可用blist命令查看

18. where:打印当前call stack 只能在保护模式下使用

你可能感兴趣的:(操作系统)