0
我有一個不透明的靜態鏈接庫(.a
文件)和一些不透明的目標文件(.o
),它們調用所述靜態庫中的函數。我想在靜態庫中的一些函數調用中添加包裝。靜態庫中的Shim函數
如果它是一個動態庫,我會在運行時使用LD_PRELOAD
,但由於這是靜態鏈接的,我相信我將不得不使用編譯時技術。我想-Z muldefs
,這將允許我重寫函數調用,但我仍然需要能夠調用我的墊片中的原始函數,所以我不能直接使用它。
到目前爲止,我可以想出的最佳解決方案是使用objcopy --redefine-sym
重新命名不透明庫中的函數,然後使我的填充代碼按其新名稱調用函數。有沒有更好的辦法?