/bionic/linker/linker_soinfo.cpp
static void call_function(const char* function_name __unused,
linker_ctor_function_t function,
const char* realpath __unused) {
if (function == nullptr || reinterpret_cast<uintptr_t>(function) == static_cast<uintptr_t>(-1)) {
return;
}
// add start
char tmp[256] = {0};
sprintf(tmp, "init_array:path=%s addr=%p", realpath, function);
clogi("call_function", tmp);
// add end
TRACE("[ Calling c-tor %s @ %p for '%s' ]", function_name, function, realpath);
function(g_argc, g_argv, g_envp);
TRACE("[ Done calling c-tor %s @ %p for '%s' ]", function_name, function, realpath);
}
效果: