Exemplo n.º 1
0
 internal PdbWriter(SymWriter writer, ModuleDefinition module, string assembly)
 {
     m_writer    = writer;
     m_module    = module;
     m_documents = new Hashtable();
     m_assembly  = assembly;
 }
Exemplo n.º 2
0
        public static ISymbolWriter CreateWriter(string assembly, string pdb)
        {
            SymWriter writer = new SymWriter(false);

            object objDispenser, objImporter;

            CoCreateInstance(ref s_dispenserClassID, null, 1, ref s_dispenserIID, out objDispenser);

            IMetaDataDispenser dispenser = (IMetaDataDispenser)objDispenser;

            dispenser.OpenScope(assembly, 1, ref s_importerIID, out objImporter);

            IntPtr importerPtr = Marshal.GetComInterfaceForObject(objImporter, typeof(IMetadataImport));

            try {
                if (File.Exists(pdb))
                {
                    File.Delete(pdb);
                }

                writer.Initialize(importerPtr, pdb, false);
            } finally {
                if (importerPtr != IntPtr.Zero)
                {
                    Marshal.Release(importerPtr);
                    Marshal.ReleaseComObject(objDispenser);
                    Marshal.ReleaseComObject(objImporter);
                    Marshal.ReleaseComObject(dispenser);
                }
            }

            return(writer);
        }
Exemplo n.º 3
0
 internal NativePdbWriter(ModuleDefinition module, SymWriter writer)
 {
     this.module                = module;
     this.writer                = writer;
     this.documents             = new Dictionary <string, SymDocumentWriter> ();
     this.import_info_to_parent = new Dictionary <ImportDebugInformation, MetadataToken> ();
 }
Exemplo n.º 4
0
		public static SymWriter CreateWriter (ModuleDefinition module, string path, Stream pdb)
		{
			var writer = new SymWriter ();

			writer.Initialize (new ModuleMetadata (module), path, pdb, true);

			return writer;
		}
Exemplo n.º 5
0
 internal NativePdbWriter(ModuleDefinition module, SymWriter writer, Func <string, string> sourcePathRewriter = null, Action <Signature> signatureProvider = null)
 {
     this.module             = module;
     this.writer             = writer;
     this.documents          = new Dictionary <string, SymDocumentWriter> ();
     this.sourcePathRewriter = sourcePathRewriter;
     this.signatureProvider  = signatureProvider;
 }
Exemplo n.º 6
0
        public CustomMetadataWriter(SymWriter sym_writer)
        {
            this.sym_writer = sym_writer;
            this.stream     = new MemoryStream();
            this.writer     = new BinaryStreamWriter(stream);

            writer.WriteByte(version);
            writer.WriteByte(0);              // count
            writer.Align(4);
        }
Exemplo n.º 7
0
        internal PdbWriter(ModuleDefinition module, SymWriter writer,
                           /*Telerik Authorship*/ Dictionary <MethodDefinition, Dictionary <VariableDefinition, string> > methodsVariableDefinitionToNameMap)
        {
            this.module    = module;
            this.writer    = writer;
            this.documents = new Dictionary <string, SymDocumentWriter> ();

            /*Telerik Authorship*/
            this.methodsVariableDefinitionToNameMap = methodsVariableDefinitionToNameMap;
        }
Exemplo n.º 8
0
		public static SymWriter CreateWriter (ModuleDefinition module, string pdb)
		{
			var writer = new SymWriter ();

			if (File.Exists (pdb))
				File.Delete (pdb);

			writer.Initialize (new ModuleMetadata (module), pdb, true);

			return writer;
		}
Exemplo n.º 9
0
		public static SymWriter CreateWriter (ModuleDefinition module, string pdb)
		{
			var writer = new SymWriter ();

			if (File.Exists (pdb))
				File.Delete (pdb);

			writer.Initialize (new ModuleMetadata (module), pdb, true);

			return writer;
		}
Exemplo n.º 10
0
 internal PdbWriter(ModuleDefinition module, SymWriter writer)
 {
     this.module    = module;
     this.writer    = writer;
     this.documents = new Dictionary <string, SymDocumentWriter> ();
 }
Exemplo n.º 11
0
        public static SymWriter CreateWriter(string pdb)
        {
            SymWriter writer = new SymWriter ();

            object objDispenser;
            CoCreateInstance (ref s_dispenserClassID, null, 1, ref s_dispenserIID, out objDispenser);

            object emitter;
            IMetaDataDispenser dispenser = (IMetaDataDispenser) objDispenser;
            dispenser.DefineScope (ref CLSID_CorMetaDataRuntime, 0, ref IID_IMetaDataEmit, out emitter);

            try {
                if (File.Exists (pdb))
                    File.Delete (pdb);

                writer.Initialize (emitter, pdb, true);
            } finally {
                Marshal.ReleaseComObject (dispenser);
            }

            return writer;
        }