使用gdb在xv6上调试用户代码

时间:2012-05-10 13:15:31

标签: gdb qemu xv6

我正在做一个基于xv6的操作系统类,我编写了一个需要在其上运行的程序。

我知道我可以使用make qemu-gdb调试内核代码,但我不确定如何调试我自己的用户程序。

假设我想调试cat,我该怎么做呢?

由于

P.S。是不是有xv6标签?这个问题是否应该在这里?

2 个答案:

答案 0 :(得分:8)

来自xv6顶级目录:

  1. 以调试模式运行模拟器(假设没有X11):make qemu-nox-gdb

  2. 在其他终端中运行调试器加载内核符号:    gdb kernel 这很重要,否则调试器会在内核和用户程序符号之间混淆,例如main()

  3. 从gdb界面运行:(gdb) target remote localhost:26000 其中26000是步骤#1最后报告的TCP端口(可能会更改)。

  4. 使用(gdb)file user_program

  5. 加载用户exec
  6. 放置一个断点(gdb) break main并继续(gdb) continue

  7. 等...

答案 1 :(得分:5)

file catbreak maincontinue

半参考running and debugging xv6