我有一個JavaScriptCore框架的分支,我添加了一個我自己的函數,該函數被導出。該框架編譯只是找到。在框架運行nm
揭示了功能(JSContextCreateBacktrace_unsafe
)的確是出口:CFBundleGetFunctionPointerForName和dlsym爲導出的函數返回NULL
Leo-Natans-Wix-MPB:JavaScriptCore.framework lnatan$ nm -gU JavaScriptCore.framework/JavaScriptCore | grep JSContextCreateBacktrace
00000000004cb860 T _JSContextCreateBacktrace
00000000004cba10 T _JSContextCreateBacktrace_unsafe
但是,我無法獲得使用CFBundleGetFunctionPointerForName
或dlsym
該函數的指針;均返回NULL
。起初,我用dlopen
打開我的框架,然後嘗試使用CFBundleCreate
,然後CFBundleGetFunctionPointerForName
但也返回NULL。
這是什麼原因造成的?
更新
有鬼是怎麼回事。我改名爲JSC功能之一,nm
反映了這一點。但是,dlsym
仍然能夠找到具有原始名稱的功能,而不是重命名。
正是我需要的。謝謝你的答案! –