private bool attachProfiler(int pid, string fileName) { if (isProfilerLoaded(pid)) { throw new Exception("CLRProfiler is already loaded in the target process."); } ProfConfig config = new ProfConfig(); config.usage = OmvUsage.OmvUsageNone; config.bOldFormat = 0; config.szFileName = fileName; config.bDynamic = 0; config.bStack = 0; config.dwSkipObjects = 0; config.szClassToMonitor = String.Empty; config.dwInitialSetting = 0; config.dwDefaultTimeoutMs = maxWaitingTimeInMiliseconds; uint result = AttachProfiler(pid, "v4.", getProfilerFullPath(), ref config, noUI); profiledProcess = System.Diagnostics.Process.GetProcessById(pid); if (WaitForProcessToConnect(GetLogDir(), "Waiting for application to load the CLRProfiler", true, result) > 0) { return(true); } else { profiledProcessEnded(); return(false); } }
private static extern uint AttachProfiler(int pid, string targetVersion, string profilerPath, [In] ref ProfConfig profConfig, bool fConsoleMode);
private bool attachProfiler(int pid, string fileName) { if (isProfilerLoaded(pid)) { throw new Exception("CLRProfiler is already loaded in the target process."); } ProfConfig config = new ProfConfig(); config.usage = OmvUsage.OmvUsageNone; config.bOldFormat = 0; config.szFileName = fileName; config.bDynamic = 0; config.bStack = 0; config.dwSkipObjects = 0; config.szClassToMonitor = String.Empty; config.dwInitialSetting = 0; config.dwDefaultTimeoutMs = maxWaitingTimeInMiliseconds; uint result = AttachProfiler(pid, "v4.", getProfilerFullPath(), ref config, noUI); profiledProcess = System.Diagnostics.Process.GetProcessById(pid); if (WaitForProcessToConnect(GetLogDir(), "Waiting for application to load the CLRProfiler", true, result) > 0) { return true; } else { profiledProcessEnded(); return false; } }