eax
のようなレジスタを取得して設定するのにpt_regs
構造体を使用しようとしていますが、コンパイルエラーはpt_regs
にこのようなメンバーがないと伝えますeax
。pt_regs構造体のどこにeaxがありますか?唯一のaxが存在する
しかし、私はax
レジスタを取得することができます。誰が何が起こっているか教えていただけますか?
私は3.0.0
カーネルの32ビットUbuntu Linuxを使用しています。ありがとうございました。
eax
のようなレジスタを取得して設定するのにpt_regs
構造体を使用しようとしていますが、コンパイルエラーはpt_regs
にこのようなメンバーがないと伝えますeax
。pt_regs構造体のどこにeaxがありますか?唯一のaxが存在する
しかし、私はax
レジスタを取得することができます。誰が何が起こっているか教えていただけますか?
私は3.0.0
カーネルの32ビットUbuntu Linuxを使用しています。ありがとうございました。
はarch/x86/include/asm/ptrace.hでstruct pt_regs
の定義を見てみましょう。
お知らせが#ifndef __KERNEL__
ものは、その構造体の定義は、カーネルモードとユーザーモードのコードのために異なることを意味します。
カーネルコードでは、おそらくpt_regs::ax
が必要な値です。 32ビットシステムでは%eax
、64ビットシステムでは%rax
の値を含める必要があります。
それをクリアするための束に感謝! – user490895
あなたの最後のコメントが正しいです。 [head_64.S](http://elixir.free-electrons.com/linux/latest/source/arch/x86/kernel/head_64.S#L358)を参照してください。もちろん、同様の名前の32ビットバージョンもあります。 – sherrellbc
XY質問:どうやって取得しようとしていますか? –