Skip to content

Latest commit

 

History

History
10 lines (7 loc) · 693 Bytes

File metadata and controls

10 lines (7 loc) · 693 Bytes

2.8 练习

你可以使用gdb来观察最开始的“内核空间到用户空间”的转换。

  1. 请运行make qemu-gdb(如果想以单线程方式,则输入make CPUS=1 qemu-gdb)。
  2. 打开另一个窗口,并在相同的目录下运行gdb(注:应当使用riscv64-linux-gnu-gdb)。
  3. 键入gdb命令break*0x3ffffff10e,这将在内核中的sret指令处设置一个断点,该指令从内核空间跳入用户空间。
  4. 键入gdb命令continue。gdb应当会停留在即将执行sret的断点处。
  5. 键入stepi。gdb现在应当会指示目前在地址为0x0处执行,该地址就是以initcode.S开始的用户空间的起始地址