1
傳入的說法,我想從調用函數一個的輸入參數訪問功能乙數據。有沒有辦法做到這一點?如何獲得調用函數的C或ASM
#define get_caller_incoming_arg(call) 0
void B(int z)
{
int _arg0 = get_caller_incoming_arg(0);
printf ("in A(arg0): %x\n", _arg0);
printf ("in B: %x\n", z);
}
void A(int x)
{
int buff[10];
for (int i = 0; i < 10; ++i)
buff[i] = i + 5;
B(buff[1]);
}
int main(int argc, const char * argv[])
{
A(0xdeadbeef);
return 0;
}
目標機器是x86_64的運行OSX和編譯器鐺
32位或64位? Linux還是Windows?什麼編譯器? –
我會解決這個問題。這是64位的OSX與鏗鏘。但是對於大多數環境來說,不是64位的ABI是一樣的嗎? – mrdvlpr
是的x86_64 ABI是相當一致的,但你沒有說你以前使用過64位。 :)下一個問題:是父函數總是相同的函數,還是你需要它爲可能有不同簽名的不同父函數工作? –