4
我想將一個工具移植到設計爲在linux和freebsd上運行的osx。該計劃有一個需要訪問EIP和EBP的案例。這是通過ucontext完成的。在OS X上通過ucontext訪問EIP和EBP
因此,我添加了一個用於__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。
THX,也__ss是一個指針。所以它必須是: uc-> uc_mcontext - > __ ss .__ eip; – optixx 2009-04-28 13:08:39