public void Initialize (object emitter, string filename, object ptrIStream, bool fullBuild) { var writerField = typeof(PdbMetadataWrapper).GetRuntimeFields().First((f) => f.Name == "_writer"); writer = (MetadataWriter)writerField.GetValue(emitter); msw = new MonoSymbolWriter(new UnsafeComStreamWrapper((ComMemoryStream)ptrIStream)); }
public void Initialize(object emitter, string filename, object ptrIStream, bool fullBuild) { var writerField = typeof(PdbMetadataWrapper).GetRuntimeFields().First((f) => f.Name == "_writer"); writer = (MetadataWriter)writerField.GetValue(emitter); msw = new MonoSymbolWriter(new UnsafeComStreamWrapper((ComMemoryStream)ptrIStream)); }
internal static void Convert(AssemblyDefinition assembly, IEnumerable<PdbFunction> functions, MonoSymbolWriter mdb) { var converter = new Converter (mdb); foreach (var function in functions) converter.ConvertFunction (function); mdb.WriteSymbolFile (assembly.MainModule.Mvid); }
public virtual void DefineSymbolInfo (MonoSymbolWriter symwriter) { if (guid != null) file = symwriter.DefineDocument (Path, guid, checksum); else { file = symwriter.DefineDocument (Path); if (AutoGenerated) file.SetAutoGenerated (); } }
internal Converter(MonoSymbolWriter mdb) { this.mdb = mdb; }
/* static void Main (string [] args) { if (args.Length != 1) Usage (); var asm = args [0]; if (!File.Exists (asm)) Usage (); var assembly = AssemblyDefinition.ReadAssembly (asm); var pdb = assembly.Name.Name + ".pdb"; pdb = Path.Combine (Path.GetDirectoryName (asm), pdb); if (!File.Exists (pdb)) Usage (); using (var stream = File.OpenRead (pdb)) { Convert (assembly, stream, new MonoSymbolWriter (asm)); } }*/ static void Convert(AssemblyDefinition assembly, Stream pdb, MonoSymbolWriter mdb) { try { Converter.Convert (assembly, PdbFile.LoadFunctions (pdb, true), mdb); } catch (Exception e) { Error (e); } }
SourceFile GetSourceFile(MonoSymbolWriter mdb, PdbFunction function) { var name = (from l in function.lines where l.file != null select l.file.name).First (); SourceFile file; if (files.TryGetValue (name, out file)) return file; var entry = mdb.DefineDocument (name); var unit = mdb.DefineCompilationUnit (entry); file = new SourceFile (unit, entry); files.Add (name, file); return file; }
public void Write (MonoSymbolWriter writer) { LineNumberEntry[] the_lines = new LineNumberEntry [lines.Count]; lines.CopyTo (the_lines, 0); LocalVariableEntry[] locals = method.GetLocalVars (); MethodEntry entry = writer.SymbolFile.DefineMethod ( file, Token, null, locals, the_lines, null, null, 0, 0); }
public void Close() { MonoSymbolWriter writer = new MonoSymbolWriter(moduleBuilder.FullyQualifiedName); foreach (Method method in methods.Values) { if (method.document != null) { if (method.document.source == null) { method.document.source = new SourceFileEntry(writer.SymbolFile, method.document.url); } ICompileUnit file = new CompileUnitEntry(writer.SymbolFile, method.document.source); SourceMethodBuilder smb = writer.OpenMethod(file, 0, method); for (int i = 0; i < method.offsets.Length; i++) { smb.MarkSequencePoint(method.offsets[i], method.document.source, method.lines[i], method.columns[i], false); } for (int i = 0; i < method.variables.Count; i++) { writer.DefineLocalVariable(i, method.variables[i]); } writer.CloseMethod(); } } writer.WriteSymbolFile(moduleBuilder.ModuleVersionId); }
public static void Reset () { symwriter = null; }
// // Creates symbol file index in debug symbol file // void CreateUnitSymbolInfo (MonoSymbolWriter symwriter) { var si = file.CreateSymbolInfo (symwriter); comp_unit = symwriter.DefineCompilationUnit (si); if (include_files != null) { foreach (SourceFile include in include_files.Values) { si = include.CreateSymbolInfo (symwriter); comp_unit.AddFile (si); } } }
public void Initialize(IntPtr emitter, string filename, bool fFullBuild) { msw = new MonoSymbolWriter(filename); }
public Converter (MonoSymbolWriter mdb) { this.mdb = mdb; }
// <remarks> // If we're compiling with debugging support, this is called between parsing // and code generation to register all the source files with the // symbol writer. // </remarks> static public void DefineSymbolDocuments (MonoSymbolWriter symwriter) { foreach (CompilationUnit unit in compile_units) unit.DefineSymbolInfo (symwriter); }
public override void DefineSymbolInfo (MonoSymbolWriter symwriter) { base.DefineSymbolInfo (symwriter); comp_unit = symwriter.DefineCompilationUnit (SourceFileEntry); if (include_files != null) { foreach (SourceFile include in include_files.Values) { include.DefineSymbolInfo (symwriter); comp_unit.AddFile (include.SourceFileEntry); } } }
public void Initialize (IntPtr emitter, string filename, bool fFullBuild) { msw = new MonoSymbolWriter (filename); }
public MdbWriter(Guid mvid, string assembly) { this.mvid = mvid; this.writer = new MonoSymbolWriter (assembly); this.source_files = new Dictionary<string, SourceFile> (); }
public MdbWriter (Guid mvid, string assembly) { m_mvid = mvid; m_writer = new MonoSymbolWriter (assembly); m_documents = new Hashtable (); }