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

◆ TryOpenCodeViewPortablePdb()

bool System.Reflection.PortableExecutable.PEReader.TryOpenCodeViewPortablePdb ( DebugDirectoryEntry codeViewEntry,
string peImageDirectory,
Func< string, Stream > pdbFileStreamProvider,
out MetadataReaderProvider provider,
out string pdbPath,
ref Exception errorToReport )
inlineprivate

Definition at line 435 of file PEReader.cs.

436 {
437 pdbPath = null;
438 provider = null;
439 CodeViewDebugDirectoryData codeViewDebugDirectoryData;
440 try
441 {
442 codeViewDebugDirectoryData = ReadCodeViewDebugDirectoryData(codeViewEntry);
443 }
444 catch (Exception ex) when (ex is BadImageFormatException || ex is IOException)
445 {
446 _ = errorToReport;
447 if (ex == null)
448 {
449 }
450 errorToReport = ex;
451 return false;
452 }
453 BlobContentId id = new BlobContentId(codeViewDebugDirectoryData.Guid, codeViewEntry.Stamp);
454 string text = PathUtilities.CombinePathWithRelativePath(peImageDirectory, PathUtilities.GetFileName(codeViewDebugDirectoryData.Path));
455 if (TryOpenPortablePdbFile(text, id, pdbFileStreamProvider, out provider, ref errorToReport))
456 {
457 pdbPath = text;
458 return true;
459 }
460 return false;
461 }
static string CombinePathWithRelativePath(string root, string relativePath)
static string GetFileName(string path, bool includeExtension=true)
bool TryOpenPortablePdbFile(string path, BlobContentId id, Func< string, Stream > pdbFileStreamProvider, out MetadataReaderProvider provider, ref Exception errorToReport)
Definition PEReader.cs:463
CodeViewDebugDirectoryData ReadCodeViewDebugDirectoryData(DebugDirectoryEntry entry)
Definition PEReader.cs:344

References System.Reflection.Metadata.PathUtilities.CombinePathWithRelativePath(), System.Reflection.Metadata.PathUtilities.GetFileName(), System.Reflection.PortableExecutable.CodeViewDebugDirectoryData.Guid, System.Reflection.PortableExecutable.CodeViewDebugDirectoryData.Path, System.Reflection.PortableExecutable.PEReader.ReadCodeViewDebugDirectoryData(), System.Reflection.PortableExecutable.DebugDirectoryEntry.Stamp, System.text, and System.Reflection.PortableExecutable.PEReader.TryOpenPortablePdbFile().

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