如何读取kgdb中的GDTR和LDTR?

How to read GDTR and LDTR in kgdb?

This question 处理为什么你不能在用户模式 ​​GDB 中读取 GDTR 和 LDTR。但是我不明白为什么在调试 Linux 内核(编译了 KGDB)时,在另一台带有串行电缆的机器上使用 GDB 时不可能。

被调试的内核应该能够告诉调试器 GDTR 和 LDTR 的值,但似乎没有任何 GDB 命令可以做到这一点。这有充分的理由吗?只是没有人实施过吗?

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

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

中添加该信息