亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区
Chinaunix
標(biāo)題:
請教系統(tǒng)調(diào)用,CPU上下文保存的問題(64位),不勝感激
[打印本頁]
作者:
looper0001
時(shí)間:
2016-04-08 22:32
標(biāo)題:
請教系統(tǒng)調(diào)用,CPU上下文保存的問題(64位),不勝感激
最近在分析一個(gè)coredump的問題,但是由于core不完整,導(dǎo)致無法直觀的看到案發(fā)現(xiàn)場的調(diào)用棧,只能通過棧楨結(jié)構(gòu)反推。
但是,由于注冊了信號捕獲函數(shù)core_handler。
也就是,coredump發(fā)生時(shí),進(jìn)程捕獲到coredump信號(如:11信號,07信號等)
,需要先保護(hù)現(xiàn)場(寄存器等信息)
之后再通過系統(tǒng)調(diào)用,進(jìn)入信號處理函數(shù)core_handler。
但是查了很多資料,沒有明確找到,系統(tǒng)調(diào)用時(shí)的現(xiàn)場保護(hù),
壓棧了哪些內(nèi)容?壓棧順序是怎么樣的?
在系統(tǒng)調(diào)用這一棧楨看到的內(nèi)容,
環(huán)境是x64 suse11的:
gdb查看rsp往上的 22 * 8字節(jié)內(nèi)容,但是不知道前面 5 * 8字節(jié)保存的是什么內(nèi)容?
x /22xg $rsp
?
?
?
?
?
r8寄存器
r9寄存器
r10寄存器
r11寄存器
r12寄存器
r13寄存器
r14寄存器
r15寄存器
rbp寄存器
rdi寄存器
rsi寄存器
rdx寄存器
rbx寄存器
rcx寄存器
rax寄存器
rsp寄存器
rip寄存器
有看到關(guān)于SAVE_ALL宏的介紹,但是這個(gè)應(yīng)該是32位系統(tǒng)的,對于64位系統(tǒng)應(yīng)該不一樣的吧?
#define SAVE_ALL \
cld; \
pushl %es; \
pushl %ds; \
pushl %eax; \
pushl %ebp; \
pushl %edi; \
pushl %esi; \
pushl %edx; \
pushl %ecx; \
pushl %ebx; \
movl $(__USER_DS), %edx; \
movl %edx, %ds; \
movl %edx, %es;
歡迎光臨 Chinaunix (http://www.72891.cn/)
Powered by Discuz! X3.2