void libdyninstAPI_RT_init() { static int initCalledOnce = 0; rtdebug_printf("%s[%d]: DYNINSTinit: welcome to libdyninstAPI_RT_init()\n", __FILE__, __LINE__); if (initCalledOnce) return; initCalledOnce++; #if defined(arch_x86) || defined(arch_x86_64) /* Modern x86-32/x86-64 cpus have non-executable data */ mark_heaps_exec(); #endif /* RTmutatedBinary_init(); */ if (libdyninstAPI_RT_init_localCause != -1 && libdyninstAPI_RT_init_localPid != -1 && libdyninstAPI_RT_init_maxthreads != -1) { DYNINSTinit(libdyninstAPI_RT_init_localCause, libdyninstAPI_RT_init_localPid, libdyninstAPI_RT_init_maxthreads, libdyninstAPI_RT_init_debug_flag); } rtdebug_printf("%s[%d]: did DYNINSTinit\n", __FILE__, __LINE__); }
BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved) { static int DllMainCalledOnce = 0; if(DllMainCalledOnce) return 1; DllMainCalledOnce++; if(libdyninstAPI_RT_init_localPid != -1 || libdyninstAPI_RT_init_localCause != -1) DYNINSTinit(libdyninstAPI_RT_init_localCause, libdyninstAPI_RT_init_localPid, libdyninstAPI_RT_init_maxthreads, libdyninstAPI_RT_init_debug_flag); return 1; }
BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved) { static int DllMainCalledOnce = 0; //fprintf(stderr,"RTLIB: In DllMain staticmode=%d %s[%d]\n", DYNINSTstaticMode, __FILE__,__LINE__); if(DllMainCalledOnce) return 1; DllMainCalledOnce++; DYNINSTinit(); #if defined(cap_mutatee_traps) if (DYNINSTstaticMode) { DYNINSTinitializeTrapHandler(); } #endif return 1; }