0x0000000149ab0d2c < 0000> jmpq * 0x1e04b6(%RIP)#0x149c911e8爲什麼jmpq可以跳到與Mac OS X上的GDB提示不同的地址?
(GDB)P $ RIP $ 1 =(無效(*)(無效))0x149ab0d2c
(GDB)P $ RIP + 6 + 0x1e04b6 $ 4 =(無效(*)(無效))0x149c911e8
步驟1之後:(它應該是在0x149c911e8然後,然而...)
(GDB)p $ RIP $ 5 =( void(*)(void))0x148c46d4a
順便說一句,我的環境是Mac OS X 10.6.4。該程序加載2個dylib,這兩個dylib鏈接到使用-fPIC選項編譯的相同靜態庫。這個問題混淆了dylib,並讓其中一個在另一個調用函數,這不應該,因爲它們實際上是相互獨立的。
您的意思是_indirect_? – ninjalj 2011-04-15 22:14:51