我很好奇我的应用程序在运行时使用了哪些库和Syscalls。所以我开始使用LD_PRELOAD和一些"系统调用"来调查我的应用程序。喜欢开放,访问和写作。
但是当我试图预加载dlopen时,为了找出加载了哪些库,我收到了这个错误:找不到符号:
def onchange_partner(self, cr, uid, ids, partner_id, context=None):
似乎dlsym无法第二次找到dlopen。我用-ldl和android NDK提供的arm-gcc编译了我预加载的* .so文件。使用-rdynamic也不起作用。
预加载工作正常但不适用于dlopen。也许你可以帮助我...
提前致谢
答案 0 :(得分:0)
Android dlopen
由链接器提供 ,因此在从预加载的库中查找RTLD_DEFAULT
符号时,您需要使用dlopen
。请参阅:bionic/libdl/libdl.c和bionic/linker/linker.cpp。