Browse Source

Remove CFG debugging code - ILSpy doesn't use the CFG as shown in the graph. Closes #9.

pull/37/head
Daniel Grunwald 15 years ago
parent
commit
758f18c73f
  1. 63
      ILSpy/MainWindow.xaml.cs

63
ILSpy/MainWindow.xaml.cs

@ -72,9 +72,6 @@ namespace ICSharpCode.ILSpy @@ -72,9 +72,6 @@ namespace ICSharpCode.ILSpy
}
sessionSettings.FilterSettings.PropertyChanged += filterSettings_PropertyChanged;
#if DEBUG
AddDebugItemsToToolbar();
#endif
this.Loaded += new RoutedEventHandler(MainWindow_Loaded);
}
@ -254,66 +251,6 @@ namespace ICSharpCode.ILSpy @@ -254,66 +251,6 @@ namespace ICSharpCode.ILSpy
}
#endregion
#region Debugging CFG
#if DEBUG
void AddDebugItemsToToolbar()
{
toolBar.Items.Add(new Separator());
Button cfg = new Button() { Content = "CFG" };
cfg.Click += new RoutedEventHandler(cfg_Click);
toolBar.Items.Add(cfg);
Button ssa = new Button() { Content = "SSA" };
ssa.Click += new RoutedEventHandler(ssa_Click);
toolBar.Items.Add(ssa);
Button varGraph = new Button() { Content = "Var" };
varGraph.Click += new RoutedEventHandler(varGraph_Click);
toolBar.Items.Add(varGraph);
}
void cfg_Click(object sender, RoutedEventArgs e)
{
MethodTreeNode node = treeView.SelectedItem as MethodTreeNode;
if (node != null && node.MethodDefinition.HasBody) {
var cfg = ControlFlowGraphBuilder.Build(node.MethodDefinition.Body);
cfg.ComputeDominance();
cfg.ComputeDominanceFrontier();
ShowGraph(node.MethodDefinition.Name + "-cfg", cfg.ExportGraph());
}
}
void ssa_Click(object sender, RoutedEventArgs e)
{
MethodTreeNode node = treeView.SelectedItem as MethodTreeNode;
if (node != null && node.MethodDefinition.HasBody) {
node.MethodDefinition.Body.SimplifyMacros();
ShowGraph(node.MethodDefinition.Name + "-ssa", SsaFormBuilder.Build(node.MethodDefinition).ExportBlockGraph());
}
}
void varGraph_Click(object sender, RoutedEventArgs e)
{
MethodTreeNode node = treeView.SelectedItem as MethodTreeNode;
if (node != null && node.MethodDefinition.HasBody) {
node.MethodDefinition.Body.SimplifyMacros();
ShowGraph(node.MethodDefinition.Name + "-var", SsaFormBuilder.Build(node.MethodDefinition).ExportVariableGraph());
}
}
void ShowGraph(string name, GraphVizGraph graph)
{
foreach (char c in Path.GetInvalidFileNameChars())
name = name.Replace(c, '-');
string fileName = Path.Combine(Path.GetTempPath(), name);
graph.Save(fileName + ".gv");
Process.Start("dot", "\"" + fileName + ".gv\" -Tpng -o \"" + fileName + ".png\"").WaitForExit();
Process.Start(fileName + ".png");
}
#endif
#endregion
#region Open/Refresh
void OpenCommandExecuted(object sender, ExecutedRoutedEventArgs e)
{

Loading…
Cancel
Save