5
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??

ご回答有難うございます

4

1 に答える 1

5

GDB にそのような関数がある場合、この関数は、GDB が SGDT 命令を使用して GDTR を読み取ることができる場合にのみ機能します。これは、GDB をリング 0 で実行する必要があることを意味します。

Linux も Windows も Mac OS もリング 0 でアプリケーション (GDB など) を実行できないため、ローカル アプリケーションでは機能しません。

リモート デバッグを使用する場合 (RS-232 または TCP/IP 接続を使用して別のコンピューターまたは仮想マシンをデバッグする場合): リモート デバッグに使用される既定のプロトコルは、GDTR を読み取るためのパケットを指定しません。

リモート デバッグの場合、バックエンド (デバッグ対象のコンピューター上のコードの一部) は、"monitor" コマンドを使用して非標準機能を定義する場合があります。「monitor readpr gdtr」などのコマンドを使用して、このような機能を実装できます。

于 2015-02-01T14:29:17.030 に答える