示例#1
0
        public override void DecompileMethod(ilspy::Mono.Cecil.MethodDefinition method, ICSharpCode.Decompiler.ITextOutput output, DecompilationOptions options)
        {
            var cmethod = GetCompiledMethod(method);

            if ((cmethod != null) && (cmethod.DexMethod != null))
            {
                try
                {
                    var f             = new MethodBodyDisassemblyFormatter(cmethod.DexMethod, MapFile);
                    var formatOptions = FormatOptions.EmbedSourceCode | FormatOptions.ShowJumpTargets;
                    if (ShowFullNames)
                    {
                        formatOptions |= FormatOptions.FullTypeNames;
                    }
                    if (DebugOperandTypes)
                    {
                        formatOptions |= FormatOptions.DebugOperandTypes;
                    }

                    var s = f.Format(formatOptions);
                    output.Write(s);
                }
                catch (Exception)
                {
                    output.Write("\n\n// Formatting error. Using Fallback.\n\n");
                    FallbackFormatting(output, cmethod);
                }
            }
            else
            {
                output.Write("Method not found in dex");
                output.WriteLine();
            }
        }
示例#2
0
 public override void Decompile(Language language, ICSharpCode.Decompiler.ITextOutput output, DecompilationOptions options)
 {
 }
示例#3
0
        public override void DecompileMethod(ilspy::Mono.Cecil.MethodDefinition method, ICSharpCode.Decompiler.ITextOutput output, DecompilationOptions options)
        {
            var xMethod = GetXMethodDefinition(method);

            DecompileMethod(xMethod, output);
        }