簡體   English   中英

在OS X上通過ucontext訪問EIP和EBP

[英]Access EIP and EBP via ucontext on OS X

我試圖將一個工具移植到osx,它設計用於在linux和freebsd上運行。 程序中存在需要訪問EIP和EBP的情況。 這是通過ucontext完成的。

所以我為__APPLE__添加了一個案例,以便對ucontext結構進行適當的訪問。

 9887 #if defined(__FreeBSD__)
 9888         *paddr = uc->uc_mcontext.mc_eip;
 9889 #elif defined(__dietlibc__)
 9890         *paddr = uc->uc_mcontext.eip;
 9891 #elif defined(__APPLE__)
 9892         *paddr = uc->uc_mcontext.ss.eip;
 9893 #else
 9894         *paddr = uc->uc_mcontext.gregs[REG_EIP];
 9895 #endif

但是uc-> uc_mcontext.ss.eip不能編譯。 不確定如何從ucontext訪問EIP。

似乎OS X 10.5中的命名方案發生了變化,它應該是uc->uc_mcontext->__ss.__eip 在更高版本中,這是uc->uc_mcontext->__ss.__rip for x86_64。

通過快速發現谷歌搜索 ,參考文獻: 12

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM