1

这个问题涉及为什么您无法在用户模式 ​​GDB 中读取 GDTR 和 LDTR。但是我不明白为什么在调试Linux内核(编译了KGDB)时,在另一台带有串行电缆的机器上使用GDB时不可能。

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

4

1 回答 1

2

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

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

于 2015-03-27T17:26:23.693 回答