From 6343ab7c156eba61f8074db9844475f04e13cf6e Mon Sep 17 00:00:00 2001 From: Daniel Grunwald Date: Sun, 27 Nov 2016 18:32:05 +0100 Subject: [PATCH] Improve debug UI --- ICSharpCode.Decompiler/IL/Instructions/ILFunction.cs | 6 +++++- ICSharpCode.Decompiler/IL/Transforms/BlockTransform.cs | 5 +++++ ILSpy/Languages/ILAstLanguage.cs | 4 ++++ 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/ICSharpCode.Decompiler/IL/Instructions/ILFunction.cs b/ICSharpCode.Decompiler/IL/Instructions/ILFunction.cs index aa47dbca1..2677d4085 100644 --- a/ICSharpCode.Decompiler/IL/Instructions/ILFunction.cs +++ b/ICSharpCode.Decompiler/IL/Instructions/ILFunction.cs @@ -83,7 +83,11 @@ namespace ICSharpCode.Decompiler.IL this.CheckInvariant(ILPhase.Normal); foreach (var transform in transforms) { context.CancellationToken.ThrowIfCancellationRequested(); - context.Stepper.StartGroup(transform.GetType().Name); + if (transform is BlockILTransform blockTransform) { + context.Stepper.StartGroup(blockTransform.ToString()); + } else { + context.Stepper.StartGroup(transform.GetType().Name); + } transform.Run(this, context); this.CheckInvariant(ILPhase.Normal); context.Stepper.EndGroup(keepIfEmpty: true); diff --git a/ICSharpCode.Decompiler/IL/Transforms/BlockTransform.cs b/ICSharpCode.Decompiler/IL/Transforms/BlockTransform.cs index fb62f81f2..95505f5d4 100644 --- a/ICSharpCode.Decompiler/IL/Transforms/BlockTransform.cs +++ b/ICSharpCode.Decompiler/IL/Transforms/BlockTransform.cs @@ -63,6 +63,11 @@ namespace ICSharpCode.Decompiler.IL.Transforms public IList PreOrderTransforms { get; } = new List(); public IList PostOrderTransforms { get; } = new List(); + public override string ToString() + { + return $"{nameof(BlockILTransform)} ({string.Join(", ", PreOrderTransforms.Concat(PostOrderTransforms).Select(t => t.GetType().Name))})"; + } + public void Run(ILFunction function, ILTransformContext context) { var blockContext = new BlockTransformContext(context); diff --git a/ILSpy/Languages/ILAstLanguage.cs b/ILSpy/Languages/ILAstLanguage.cs index a3ce6787d..10089bb4f 100644 --- a/ILSpy/Languages/ILAstLanguage.cs +++ b/ILSpy/Languages/ILAstLanguage.cs @@ -168,6 +168,10 @@ namespace ICSharpCode.ILSpy OnStepperUpdated(new EventArgs()); } } + (output as ISmartTextOutput)?.AddButton(Images.ViewCode, "Show Steps", delegate { + DebugSteps.Show(); + }); + output.WriteLine(); il.WriteTo(output); } }