protected override DisassembleResult DisassembleFile(string compiledFilePath) { var compiledFilesToDisassemble = Directory.GetFiles(this.workingDirectory, JavaCompiledFilesSearchPattern, SearchOption.AllDirectories); var result = new DisassembleResult(compiledFilesToDisassemble.Length > 0); var disassembledCode = new StringBuilder(); foreach (var compiledFile in compiledFilesToDisassemble) { var currentDisassembleResult = this.Disassembler.Disassemble(compiledFile, this.DisassemblerAdditionalArguments); if (!currentDisassembleResult.IsDisassembledSuccessfully) { result.IsDisassembledSuccessfully = false; break; } disassembledCode.AppendLine(currentDisassembleResult.DisassembledCode); } if (result.IsDisassembledSuccessfully) { result.DisassembledCode = disassembledCode.ToString(); } DirectoryHelpers.SafeDeleteDirectory(this.workingDirectory, true); return result; }
protected override DisassembleResult DisassembleFile(string compiledFilePath) { var compiledFilesToDisassemble = Directory.GetFiles(this.workingDirectory, JavaCompiledFilesSearchPattern, SearchOption.AllDirectories); var result = new DisassembleResult(compiledFilesToDisassemble.Length > 0); var disassembledCode = new StringBuilder(); foreach (var compiledFile in compiledFilesToDisassemble) { var currentDisassembleResult = this.Disassembler.Disassemble(compiledFile, this.DisassemblerAdditionalArguments); if (!currentDisassembleResult.IsDisassembledSuccessfully) { result.IsDisassembledSuccessfully = false; break; } disassembledCode.AppendLine(currentDisassembleResult.DisassembledCode); } if (result.IsDisassembledSuccessfully) { result.DisassembledCode = disassembledCode.ToString(); } DirectoryHelpers.SafeDeleteDirectory(this.workingDirectory, true); return(result); }
public DependencyGraph BuildGraphForMethod(MethodBase method) { using (DisassembleResult disassembled = _disassembler.Disassemble(method)) { var graph = new DependencyGraph(disassembled.ModuleDefinition, _moduleComparer); var visitor = new DependencyGraphInstructionVisitor(graph, _moduleComparer); foreach (var instruction in disassembled.Body.Instructions) { instruction.Accept(visitor); } return(graph); } }