private static DEBUG_EVENT?WaitForDebugEvent(uint timeout) { DEBUG_EVENT debugEvent; var success = DebuggingNativeMethods.WaitForDebugEvent(out debugEvent, timeout); if (!success) { int hr = Marshal.GetHRForLastWin32Error(); if (hr == HResults.HR_ERROR_SEM_TIMEOUT) { return(null); } Marshal.ThrowExceptionForHR(hr); } return(debugEvent); }