This question处理您无法在用户模式GDB中读取GDTR和LDTR的原因。但是我不明白为什么在调试Linux内核(使用KGDB编译),在另一台使用串行电缆的机器上使用GDB时,不应该这样做。
正在调试的内核应该能够告诉调试器GDTR和LDTR的值,但似乎没有任何GDB命令可以这样做。有这么好的理由吗?这只是没人实施的东西吗?
答案 0 :(得分:1)
正如你所说,没有人实现它。
gdb
特别不考虑那些有效寄存器,因此内核调试接口甚至不会尝试发送它们。
除非您愿意更改gdb
,否则必须使用变通方法来获取该信息。我能想到的一种可能性是ThreadExtraInfo
命令,它应该能够发送在gdb
中打印的任意字符串消息。因此,您可以在kernel/debug/gdbstub.c
。