亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 1642 | 回復(fù): 0
打印 上一主題 下一主題

請教系統(tǒng)調(diào)用,CPU上下文保存的問題(64位),不勝感激 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2016-04-08 22:32 |只看該作者 |倒序瀏覽
最近在分析一個coredump的問題,但是由于core不完整,導(dǎo)致無法直觀的看到案發(fā)現(xiàn)場的調(diào)用棧,只能通過棧楨結(jié)構(gòu)反推。

但是,由于注冊了信號捕獲函數(shù)core_handler。

也就是,coredump發(fā)生時,進程捕獲到coredump信號(如:11信號,07信號等),需要先保護現(xiàn)場(寄存器等信息)

之后再通過系統(tǒng)調(diào)用,進入信號處理函數(shù)core_handler。


但是查了很多資料,沒有明確找到,系統(tǒng)調(diào)用時的現(xiàn)場保護,壓棧了哪些內(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宏的介紹,但是這個應(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;
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP