4
linuxとfreebsdで動作するように設計されたosxに移植しようとしています。 EIPとEBPへのアクセスが必要な場合があります。これはucontextを介して行われます。OS Xのucontext経由でEIPとEBPにアクセス
したがって、ucontext構造体に適切にアクセスするために__APPLE__のケースを追加しました。
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
ありがとう、修正済み – Hasturkun
「__eip」ではなく「__rip」と呼ばれるようになったので、今すぐです:uc-> uc_mcontext - > _ ss .__ rip; –