__declspec(dllexport) int APIENTRY DllMain(HMODULE hModule, DWORD reason, LPVOID reserved) #endif { unsigned long TID = __readgsdword(0x48); if (loadSystemDebugControl == NULL) { HMODULE dNTdll = GetModuleHandleA("ntdll.dll"); loadSystemDebugControl = (NtSystemDebugControl)GetProcAddress(dNTdll, "NtSystemDebugControl"); } if (reason == DLL_PROCESS_ATTACH) { if (AllocConsole()) { freopen("CONOUT$", "w", stdout); SetConsoleTitle(L"EhTrace Debug Window"); wprintf(L"DLL loaded.\n"); if (loadSystemDebugControl != NULL) wprintf(L"also ready for DEBUG MSR WRITE"); } ConfigMap = ConnectConfig(); wprintf(L"Connecting ConfigMap %p\n", ConfigMap); // logger will spin the thread if logs are not picked up fast enough SetupLogger(STRACE_LOG_BUFFER_SIZE); Initalize(NULL); InstallThread(TID, 2); //hPulseThread = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)PulseThreads, 0, 0, NULL); //NoLogThrId = GetThreadId(hPulseThread); //wprintf(L"Symbol count is %llx\n", ConfigMap->SymCnt); //ConnectSymbols(ConfigMap->SymCnt); } else if (reason == DLL_THREAD_ATTACH) { // setup monitoring of this thread UnTracedThreadCount++; InstallThread(TID, 3); } else if (reason == DLL_THREAD_DETACH) { ExitThreadTable(TID, true); if(CtxTable[TID].insn != NULL) cs_free(CtxTable[TID].insn, 1); memset(&CtxTable[TID], 0, sizeof(ExecutionBlock)); wprintf(L"Cleaned up thread %d\n", TID); } wprintf(L"done in dllmain\n"); return TRUE; }
void Solve() { int ss, tt; while ( ~scanf("%d %d", &ss, &tt), ss+tt!=-2 ) { Initalize( ss, tt ); Floyd( ss ); output( ss, tt ); }// start point and destination }// Solve
void XForm::Initalize(Ray& r, Vector& s, bool isWorldToLocal) { Initalize(); if(m_isWorldToLocal = isWorldToLocal) { *this -= r.p; *this >>= r.d; *this /= s; }
int main() #endif { SetupLogger(STRACE_LOG_BUFFER_SIZE); //NoLogThrId = GetCurrentThreadId(); HMODULE dNTdll = GetModuleHandleA("ntdll.dll"); loadSystemDebugControl = (NtSystemDebugControl)GetProcAddress(dNTdll, "NtSystemDebugControl"); if (loadSystemDebugControl == NULL) wprintf(L"Not using NtSystemDebugControl\n"); if (Initalize(vEhTracer)) wprintf(L"Initialize failed\n"); #ifdef ALIB_BUILD printf("installing on current thread\n"); // this is since were a static lib attach InstallThread(GetCurrentThreadId(), 9); return 0; #endif HANDLE hTestThr = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)DoRandomTestStuff, 0, CREATE_SUSPENDED, NULL); InstallThread(GetThreadId(hTestThr), 4); ResumeThread(hTestThr); //wprintf(L"hit a key to start dumping logs"); #if STANDALONE_APREP Step_Event* se; while (true) { se = LogPopIP(); if(se != NULL && se->RIP != 0) { // major slowdown if we do this ;) #if FALSE wprintf(L"tid [%d] flags[%x] rip[%llx]\n", se->u.TID, se->u.eFlags, se->RIP); #endif se->RIP = 0; se->u.Synth = 0; se = NULL; } Sleep(0); } #endif Sleep(-1); return 0; }
XForm::XForm(Ray& r, Vector& s, bool isWorldToLocal) { Initalize(r, s, isWorldToLocal); }
void CD3DDevWrapper::SetD3DDev(LPDIRECT3DDEVICE9 pD3DDev) { m_pD3DDev = pD3DDev; Initalize(); }
Engine::Engine() { Initalize(); }