基于 qemu 内建模式调试 ucore

调试举例:调试 lab1,跟踪 bootmain 函数:

(1) 运行 qemu -S -hda ucore.img -monitor stdio

(2) 查看 bootblock.asm 得到 bootmain 函数地址为 0x7d60,并插入断点。

(3) 使用命令 c 连续执行到断点。

(4) 使用 xp 命令进行反汇编。

(5) 使用 s 命令进行单步执行。 运行结果如下:

chy@laptop: ~/lab1$ qemu -S -hda ucore.img -monitor stdio
(qemu) b 0x7d60
insert breakpoint 0x7d60 success!
(qemu) c
    working …
(qemu)
    break:
        0x00007d60:  push   %ebp
(qemu) xp /10i $pc
    0x00007d60:  push   %ebp
    0x00007d61:  mov    %esp,%ebp
    0x00007d63:  push   %esi
    0x00007d64:  push   %ebx
    0x00007d65:  sub   $0x4,%esp
    0x00007d68:  mov    0x7da8,%esi
    0x00007d6e:  mov    $0x0,%ebx
    0x00007d73:  movsbl (%esi,%ebx,1),%eax
    0x00007d77:  mov    %eax,(%esp,1)
    0x00007d7a:  call   0x7c6c
(qemu) step
    0x00007d61:  mov    %esp,%ebp
(qemu) step
    0x00007d63:  push   %esi

results matching ""

    No results matching ""