我可以在gdb下打印gdtr和gdt描述符吗?

时间:2015-02-01 14:14:08

标签: assembly linux-kernel x86 gdb gdt

I want to use gdb to see my GDTR/LDTR/TTR and segment register

隐形部分(x86)     所以在gdb中我输入“p / x $ gdtr”....等     但结果是“$ 6 =值无法转换为整数”     在gdb中我输入“p / x $ cs”     唯一的结果是CS,只是可见部分

can anyone tell me how to view these value??

感谢您的回答

1 个答案:

答案 0 :(得分:4)

如果GDB具有这样的功能,那么只有当GDB能够使用SGDT指令读取GDTR时,此功能才有效。这意味着GDB必须在0环中运行。

Linux,Windows和Mac OS都不允许在环0中运行应用程序(如GDB),因此它不适用于本地应用程序。

如果使用远程调试(使用RS-232或TCP / IP连接调试另一台计算机或虚拟机):用于远程调试的默认协议不指定用于读取GDTR的数据包。

在远程调试的情况下,后端(调试计算机上的代码段)可以使用“monitor”命令定义非标准功能。您可以使用“monitor readspr gdtr”等命令来实现这样的功能。