コード例 #1
0
 public static AssemblyDebugData ReadDebugData(Stream debugStream)
 {
     using (var reader = new AssemblyDebugParser(MetadataReaderProvider.FromPortablePdbStream(debugStream), PdbType.Portable))
     {
         return(reader.GetDebugData());
     }
 }
 public static AssemblyDebugData ReadDebugData(Stream peStream, Stream pdbStream)
 {
     using (var reader = new AssemblyDebugParser(peStream, pdbStream))
     {
         return reader.GetDebugData();
     }
 }
コード例 #3
0
        public static AssemblyDebugData ReadDebugData(Stream?peStream, Stream pdbStream)
        {
            if (pdbStream is null)
            {
                throw new ArgumentNullException(nameof(pdbStream));
            }

            using var reader = new AssemblyDebugParser(peStream, pdbStream);
            return(reader.GetDebugData());
        }
コード例 #4
0
        public AssemblyDebugData? GetDebugData()
        {
            var entry = _peReader.ReadDebugDirectory().Where(de => de.Type == DebugDirectoryEntryType.EmbeddedPortablePdb).ToList();
            if (entry.Count == 0) // no embedded ppdb
            {
                return null;
            }

            using var reader = new AssemblyDebugParser(_peReader.ReadEmbeddedPortablePdbDebugDirectoryData(entry[0]), PdbType.Embedded);
            return reader.GetDebugData();
        }
コード例 #5
0
        public AssemblyDebugData GetDebugData()
        {
            var entry = _peReader.ReadDebugDirectory().Where(de => de.Type == DebugDirectoryEntryType.EmbeddedPortablePdb).ToList();

            if (entry.Count == 0) // no embedded ppdb
            {
                return(new AssemblyDebugData
                {
                    HasDebugInfo = false,
                    SymbolKeys = AssemblyDebugParser.GetSymbolKeys(_peReader)
                });
            }

            using var reader = new AssemblyDebugParser(_peReader, _peReader.ReadEmbeddedPortablePdbDebugDirectoryData(entry[0]), PdbType.Embedded);
            return(reader.GetDebugData());
        }
コード例 #6
0
        public static async Task <AssemblyDebugData> ReadDebugData(Stream?peStream, Stream pdbStream)
        {
            if (pdbStream is null)
            {
                throw new ArgumentNullException(nameof(pdbStream));
            }

            try
            {
                using var cts = new CancellationTokenSource();

                return(await Task.Run(() =>
                {
                    cts.CancelAfter(TimeSpan.FromSeconds(10));
                    using var reader = new AssemblyDebugParser(peStream, pdbStream);
                    return reader.GetDebugData();
                }, cts.Token).ConfigureAwait(false));
            }
            finally
            {
                peStream?.Dispose();
                pdbStream.Dispose();
            }
        }
コード例 #7
0
 public static AssemblyDebugData ReadDebugData(Stream?peStream, Stream pdbStream)
 {
     using var reader = new AssemblyDebugParser(peStream, pdbStream);
     return(reader.GetDebugData());
 }