Operating system gdb未命中kern/entry.S中的断点

Operating system gdb未命中kern/entry.S中的断点,operating-system,xv6,Operating System,Xv6,我试图让gdb在内核中启用分页的部分(kern/entry.S)中断,我在反汇编程序显示的地址(如kernel.asm)设置了一个断点,但没有命中。有人能帮我理解为什么会这样吗。早些时候,我也无法命中引导加载程序boot/boot.S boot/main.c中的任何断点,例如,我无法命中bootmain(使用函数名设置断点告诉我符号尚未加载),我可以检查nm/objdump输出,我可以清楚地看到定义了bootmain 请帮助我理解我做错了什么我猜你没有权限在内核地址空间中设置断点。你是否在虚拟地

我试图让gdb在内核中启用分页的部分(kern/entry.S)中断,我在反汇编程序显示的地址(如kernel.asm)设置了一个断点,但没有命中。有人能帮我理解为什么会这样吗。早些时候,我也无法命中引导加载程序boot/boot.S boot/main.c中的任何断点,例如,我无法命中bootmain(使用函数名设置断点告诉我符号尚未加载),我可以检查nm/objdump输出,我可以清楚地看到定义了bootmain


请帮助我理解我做错了什么

我猜你没有权限在内核地址空间中设置断点。你是否在虚拟地址或物理地址设置断点?@Daniel,我将其设置在物理地址(并且随后能够从gdb中命中地址),我仍然无法理解的是,在汇编代码中有一个函数调用(函数稍后在c文件中定义),当我设置断点(b functionName,它表示未定义且未中断)时,为什么gdb看不到该函数(没有链接的外部库)