public void OpenClrRuntime() { if (CurrentDataTarget == null) { OpenDump(); } if (CurrentDataTarget == null) { //throw new ArgumentNullException("_dataTarget"); return; } try { var info = CurrentDataTarget.ClrVersions.Single(); } catch (NullReferenceException ex) { // set error header MessageBox.Show(ex.Message, "Cannot opern CLR window", MessageBoxButton.OK, MessageBoxImage.Error); var viewModel2 = new DataTargetViewModel(CurrentDataTarget); ActivateItem(viewModel2); return; } catch (InvalidOperationException ex) { MessageBox.Show("Cannot find CLR in this process", "Cannot open CLR window", MessageBoxButton.OK, MessageBoxImage.Error); return; } var clrVersion = CurrentDataTarget.ClrVersions.FirstOrDefault(); if (clrVersion == null) { throw new ArgumentNullException("clrVersion"); } try { if (CurrentClrRuntime == null) { CurrentClrRuntime = CurrentDataTarget.CreateRuntime(clrVersion.TryGetDacLocation() ?? clrVersion.TryDownloadDac()); } } catch (SystemException ex) { MessageBox.Show("Cannot open CLR runtime, due the: " + ex.Message); return; } var viewModel = new ClrRuntimeViewModel(CurrentClrRuntime); ActivateItem(viewModel); }
public void OpenDataTarget() { if (CurrentDataTarget == null) { OpenDump(); } if (CurrentDataTarget != null) { var viewModel = new DataTargetViewModel(CurrentDataTarget); ActivateItem(viewModel); } }
private void OpenDump(string path) { if (String.IsNullOrEmpty(path)) { throw new ArgumentException(nameof(path)); } if (_model.TryToOpenDump(path, out CurrentDataTarget)) { try { var viewModel2 = new DataTargetViewModel(CurrentDataTarget); ActivateItem(viewModel2); } catch (NullReferenceException ex) { // dump without clr process } catch (ClrDiagnosticsException ex) { } } }
public void OpenDump() { CurrentDataTarget = null; CurrentClrRuntime = null; OpenFileDialog dlg = new OpenFileDialog(); dlg.Filter = "Dump files (*.dmp)|*.dmp"; dlg.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.Desktop); string path; var res = dlg.ShowDialog(); if (res.HasValue && res.Value) { path = dlg.FileName; } else { return; } if (_model.TryToOpenDump(path, out CurrentDataTarget)) { try { var viewModel2 = new DataTargetViewModel(CurrentDataTarget); ActivateItem(viewModel2); } catch (NullReferenceException ex) { // dump without clr process } catch (ClrDiagnosticsException ex) { } } }