Browse Source

MethodBodyDisassembler: print variable names found in PDB.

pull/1420/head
Siegfried Pammer 7 years ago
parent
commit
697074f88b
  1. 7
      ICSharpCode.Decompiler/Disassembler/MethodBodyDisassembler.cs

7
ICSharpCode.Decompiler/Disassembler/MethodBodyDisassembler.cs

@ -97,7 +97,7 @@ namespace ICSharpCode.Decompiler.Disassembler @@ -97,7 +97,7 @@ namespace ICSharpCode.Decompiler.Disassembler
if (handle == entrypointHandle)
output.WriteLine(".entrypoint");
DisassembleLocalsBlock(body);
DisassembleLocalsBlock(handle, body);
output.WriteLine();
sequencePoints = DebugInfo?.GetSequencePoints(handle) ?? EmptyList<DebugInfo.SequencePoint>.Instance;
@ -116,7 +116,7 @@ namespace ICSharpCode.Decompiler.Disassembler @@ -116,7 +116,7 @@ namespace ICSharpCode.Decompiler.Disassembler
sequencePoints = null;
}
void DisassembleLocalsBlock(MethodBodyBlock body)
void DisassembleLocalsBlock(MethodDefinitionHandle method, MethodBodyBlock body)
{
if (body.LocalSignature.IsNil)
return;
@ -142,6 +142,9 @@ namespace ICSharpCode.Decompiler.Disassembler @@ -142,6 +142,9 @@ namespace ICSharpCode.Decompiler.Disassembler
foreach (var v in signature) {
output.WriteLocalReference("[" + index + "] ", v, isDefinition: true);
v(ILNameSyntax.TypeName);
if (DebugInfo != null && DebugInfo.TryGetName(method, index, out var name)) {
output.Write(" " + DisassemblerHelpers.Escape(name));
}
if (index + 1 < signature.Length)
output.Write(',');
output.WriteLine();

Loading…
Cancel
Save