/// <summary> /// Load the PDB given the parameters at the ctor and spew it out to the XmlWriter specified /// at the ctor. /// </summary> private static void ToXml(TextWriter xmlWriter, Stream pdbStream, MetadataReader metadataReaderOpt, PdbToXmlOptions options, IEnumerable <MethodDefinitionHandle> methodHandles) { Debug.Assert(pdbStream != null); Debug.Assert((options & PdbToXmlOptions.ResolveTokens) == 0 || metadataReaderOpt != null); XmlDocument doc = new XmlDocument(); XmlWriter writer = doc.CreateNavigator().AppendChild(); using (TempPdbReader pdbReader = TempPdbReader.Create(pdbStream)) { if (pdbReader == null) { Console.WriteLine("Error: No Symbol Reader could be initialized."); return; } var converter = new PdbToXmlConverter(writer, pdbReader, metadataReaderOpt, options); converter.WriteRoot(methodHandles ?? metadataReaderOpt.MethodDefinitions); } writer.Close(); // Save xml to disk doc.Save(xmlWriter); }
/// <summary> /// Load the PDB given the parameters at the ctor and spew it out to the XmlWriter specified /// at the ctor. /// </summary> private static void ToXml(TextWriter xmlWriter, Stream pdbStream, MetadataReader metadataReaderOpt, PdbToXmlOptions options, IEnumerable<MethodDefinitionHandle> methodHandles) { Debug.Assert(pdbStream != null); Debug.Assert((options & PdbToXmlOptions.ResolveTokens) == 0 || metadataReaderOpt != null); XmlDocument doc = new XmlDocument(); XmlWriter writer = doc.CreateNavigator().AppendChild(); using (SymReader symReader = new SymReader(pdbStream, metadataReaderOpt)) { var converter = new PdbToXmlConverter(writer, symReader, metadataReaderOpt, options); converter.WriteRoot(methodHandles ?? metadataReaderOpt.MethodDefinitions); } writer.Close(); // Save xml to disk doc.Save(xmlWriter); }
/// <summary> /// Load the PDB given the parameters at the ctor and spew it out to the XmlWriter specified /// at the ctor. /// </summary> private static void ToXml(TextWriter xmlWriter, Stream pdbStream, MetadataReader metadataReaderOpt, PdbToXmlOptions options, IEnumerable<MethodHandle> methodHandles) { Debug.Assert(pdbStream != null); Debug.Assert((options & PdbToXmlOptions.ResolveTokens) == 0 || metadataReaderOpt != null); XmlDocument doc = new XmlDocument(); XmlWriter writer = doc.CreateNavigator().AppendChild(); using (TempPdbReader pdbReader = TempPdbReader.Create(pdbStream)) { if (pdbReader == null) { Console.WriteLine("Error: No Symbol Reader could be initialized."); } var converter = new PdbToXmlConverter(writer, pdbReader, metadataReaderOpt, options); converter.WriteRoot(methodHandles ?? metadataReaderOpt.MethodDefinitions); } writer.Close(); // Save xml to disk doc.Save(xmlWriter); }
/// <summary> /// Load the PDB given the parameters at the ctor and spew it out to the XmlWriter specified /// at the ctor. /// </summary> private static void ToXml(TextWriter xmlWriter, Stream pdbStream, MetadataReader metadataReaderOpt, PdbToXmlOptions options, IEnumerable<MethodDefinitionHandle> methodHandles) { Debug.Assert(pdbStream != null); Debug.Assert((options & PdbToXmlOptions.ResolveTokens) == 0 || metadataReaderOpt != null); using (var writer = XmlWriter.Create(xmlWriter, s_xmlWriterSettings)) { // metadata reader is on stack -> no owner needed var symReader = SymReaderFactory.CreateReader(pdbStream, metadataReaderOpt, metadataMemoryOwnerOpt: null); try { var converter = new PdbToXmlConverter(writer, symReader, metadataReaderOpt, options); converter.WriteRoot(methodHandles ?? metadataReaderOpt.MethodDefinitions); } finally { ((ISymUnmanagedDispose)symReader).Destroy(); } } }