Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ TryOpenPortablePdbFile()

bool System.Reflection.PortableExecutable.PEReader.TryOpenPortablePdbFile ( string path,
BlobContentId id,
Func< string, Stream > pdbFileStreamProvider,
out MetadataReaderProvider provider,
ref Exception errorToReport )
inlineprivate

Definition at line 463 of file PEReader.cs.

464 {
465 provider = null;
466 MetadataReaderProvider metadataReaderProvider = null;
467 try
468 {
470 try
471 {
472 stream = pdbFileStreamProvider(path);
473 }
475 {
476 stream = null;
477 }
478 if (stream == null)
479 {
480 return false;
481 }
482 if (!stream.CanRead || !stream.CanSeek)
483 {
485 }
486 metadataReaderProvider = MetadataReaderProvider.FromPortablePdbStream(stream);
487 if (new BlobContentId(metadataReaderProvider.GetMetadataReader().DebugMetadataHeader.Id) != id)
488 {
489 return false;
490 }
491 provider = metadataReaderProvider;
492 return true;
493 }
494 catch (Exception ex2) when (ex2 is BadImageFormatException || ex2 is IOException)
495 {
496 _ = errorToReport;
497 if (ex2 == null)
498 {
499 }
500 errorToReport = ex2;
501 return false;
502 }
503 finally
504 {
505 if (provider == null)
506 {
507 metadataReaderProvider?.Dispose();
508 }
509 }
510 }
unsafe MetadataReader GetMetadataReader(MetadataReaderOptions options=MetadataReaderOptions.Default, MetadataStringDecoder? utf8Decoder=null)
static MetadataReaderProvider FromPortablePdbStream(Stream stream, MetadataStreamOptions options=MetadataStreamOptions.Default, int size=0)
static string StreamMustSupportReadAndSeek
Definition SR.cs:52
Definition SR.cs:7

References System.Reflection.Metadata.MetadataReader.DebugMetadataHeader, System.Reflection.Metadata.MetadataReaderProvider.Dispose(), System.Reflection.Metadata.MetadataReaderProvider.FromPortablePdbStream(), System.Reflection.Metadata.MetadataReaderProvider.GetMetadataReader(), System.Reflection.Metadata.DebugMetadataHeader.Id, System.stream, and System.SR.StreamMustSupportReadAndSeek.

Referenced by System.Reflection.PortableExecutable.PEReader.TryOpenCodeViewPortablePdb().