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??
感谢您的回答
答案 0 :(得分:4)
如果GDB具有这样的功能,那么只有当GDB能够使用SGDT指令读取GDTR时,此功能才有效。这意味着GDB必须在0环中运行。
Linux,Windows和Mac OS都不允许在环0中运行应用程序(如GDB),因此它不适用于本地应用程序。
如果使用远程调试(使用RS-232或TCP / IP连接调试另一台计算机或虚拟机):用于远程调试的默认协议不指定用于读取GDTR的数据包。
在远程调试的情况下,后端(调试计算机上的代码段)可以使用“monitor”命令定义非标准功能。您可以使用“monitor readspr gdtr”等命令来实现这样的功能。