public override async Task<ProcessAnalysisResult> Run() { ProcessAnalysisResult result = null; try { using (DataTarget target = DataTarget.AttachToProcess((int)_pid, Constants.MAX_ATTACH_TO_PPROCESS_TIMEOUT)) { if (CheckTargetBitness(target)) { Console.WriteLine("Attached To Process Successfully"); var clrVer = target.ClrVersions[0]; var runtime = clrVer.CreateRuntime(); using (ProcessAnalyzer handler = new ProcessAnalyzer(target, runtime, (uint)_pid)) { result = await handler.Handle(); } } } } catch (ClrDiagnosticsException ex) { result = SetError(ex.Message); } return result; }
public override async Task<ProcessAnalysisResult> Run() { ProcessAnalysisResult result = null; if (File.Exists(_filePath)) { try { using (DataTarget target = DataTarget.LoadCrashDump(_filePath)) { if (CheckTargetBitness(target)) { Console.WriteLine("Dump file loaded successfully."); ClrRuntime runtime = target.ClrVersions[0].CreateRuntime(); using (ProcessAnalyzer handler = new ProcessAnalyzer(target, runtime, _filePath)) { result = await handler.Handle(); } } } } catch (Exception ex) { result = SetError(ex.Message); } } else { result = SetError("File Not Found"); } return result; }