この命令が実行される直前、fs には 0x0 が含まれます。
また、GDB のこのメモリ領域から読み取る方法を知りたいのですが、そのためのコマンドは何でしょうか?
Linux や Windows などの最新の OSのレジスタfs
とgs
レジスタは、スレッド固有の構造やその他の OS 定義の構造を指します。セグメント レジスタの変更は保護された命令であるため、これらを設定できるのは OS だけです。
この質問は、 amd64 fs/gs が linux に登録することを正確に説明するのに役立ちます。
fs
レジスタの実際の値はアドレスではありません。これはセレクターであり、GDT へのオフセットであり、そのセグメントを使用できる/できないものを記述します。非表示の fs ベース レジスタとリミット レジスタの値はわかりません。これらは内部 CPU レジスタであり、新しい「セレクタ」を fs に書き込むことによってのみ更新されます (この時点で、ベース/リミット レジスタは GDT から更新されます)。