如何在kgdb中读取GDTR和LDTR?

时间:2015-03-25 17:36:31

标签: debugging linux-kernel x86 kgdb

This question处理您无法在用户模式GDB中读取GDTR和LDTR的原因。但是我不明白为什么在调试Linux内核(使用KGDB编译),在另一台使用串行电缆的机器上使用GDB时,不应该这样做。

正在调试的内核应该能够告诉调试器GDTR和LDTR的值,但似乎没有任何GDB命令可以这样做。有这么好的理由吗?这只是没人实施的东西吗?

1 个答案:

答案 0 :(得分:1)

正如你所说,没有人实现它。 gdb特别不考虑那些有效寄存器,因此内核调试接口甚至不会尝试发送它们。

除非您愿意更改gdb,否则必须使用变通方法来获取该信息。我能想到的一种可能性是ThreadExtraInfo命令,它应该能够发送在gdb中打印的任意字符串消息。因此,您可以在kernel/debug/gdbstub.c

中添加该信息