我試圖使用pt_regs
結構來獲取和設置寄存器,如eax
,但編譯錯誤告訴我,pt_regs
沒有這樣的成員eax
。pt_regs結構中的eax在哪裏?只有斧頭
但是,我能夠獲得ax
註冊。有人可以告訴我發生了什麼事嗎?
我使用32位Ubuntu Linux與3.0.0
內核。再次感謝你。
我試圖使用pt_regs
結構來獲取和設置寄存器,如eax
,但編譯錯誤告訴我,pt_regs
沒有這樣的成員eax
。pt_regs結構中的eax在哪裏?只有斧頭
但是,我能夠獲得ax
註冊。有人可以告訴我發生了什麼事嗎?
我使用32位Ubuntu Linux與3.0.0
內核。再次感謝你。
看看struct pt_regs
的定義arch/x86/include/asm/ptrace.h。
注意#ifndef __KERNEL__
這裏的東西,這意味着該結構的定義對於內核模式和用戶模式代碼是不同的。
對於內核代碼,pt_regs::ax
可能是您需要的值。它應該包含在32位系統上的%eax
和在64位上的%rax
的值。
感謝一羣人清理起來! – user490895 2012-04-11 21:48:36
你最後的評論是正確的。見[head_64.S](http://elixir.free-electrons.com/linux/latest/source/arch/x86/kernel/head_64.S#L358)。當然,也有一個名字相似的32位版本。 – sherrellbc 2017-07-11 22:18:50
XY問題:你是如何獲得和設置他們? – 2015-05-23 10:33:36