@@ -38,32 +38,24 @@ public byte[] ReadPdb(FileStream peStream)
3838 {
3939 using var peReader = new PEReader ( peStream , PEStreamOptions . LeaveOpen ) ;
4040 var assemblyName = Path . GetFileNameWithoutExtension ( _assemblyPath ) ;
41- var pdbPath = $ "{ assemblyName } .pdb" + ".pdb" ;
4241
43- if ( File . Exists ( pdbPath ) )
42+ if ( ! peReader . TryOpenAssociatedPortablePdb ( _assemblyPath , File . OpenRead , out var pdbReaderProvider , out var pdbPath ) )
43+ throw new InvalidDataException (
44+ $ "Failed to discover portable debug information for { Path . GetFileName ( _assemblyPath ) } "
45+ ) ;
46+
47+ var pdbReader = pdbReaderProvider ! . GetMetadataReader ( ) ;
48+
49+ if ( pdbPath != _assemblyPath )
4450 {
4551 Log . Information ( "Found debug info : ({PdbFileName})" , Path . GetFileName ( pdbPath ) ) ;
46- using var srcPdbStream = new FileStream ( pdbPath , FileMode . Open , FileAccess . Read ) ;
47- if ( ! PdbConverter . IsPortable ( srcPdbStream ) )
48- throw new ArgumentException ( "Unsupported debug symbol type - should be 'portable'" ) ;
49-
50- srcPdbStream . Seek ( 0 , SeekOrigin . Begin ) ;
51- using var pdbDataStream = new MemoryStream ( ) ;
52- srcPdbStream . CopyTo ( pdbDataStream ) ;
53- return pdbDataStream . ToArray ( ) ;
5452 }
55-
56- if ( peReader . TryOpenAssociatedPortablePdb ( _assemblyPath , File . OpenRead , out var pdbReaderProvider , out _ ) )
53+ else
5754 {
58- var pdbReader = pdbReaderProvider ! . GetMetadataReader ( ) ;
59-
6055 Log . Information ( "Found embedded debug info : ({AssemblyName})" , assemblyName ) ;
61-
6256 DebugSymbolsAreEmbedded = true ;
63- return pdbReader . ReadAllBytes ( ) ;
6457 }
6558
66- throw new InvalidDataException (
67- $ "Failed to discover portable debug information for { Path . GetFileName ( _assemblyPath ) } ") ;
59+ return pdbReader . ReadAllBytes ( ) ;
6860 }
6961}
0 commit comments