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

◆ ReadDebugDirectory()

ImmutableArray< DebugDirectoryEntry > System.Reflection.PortableExecutable.PEReader.ReadDebugDirectory ( )
inline

Definition at line 297 of file PEReader.cs.

298 {
299 DirectoryEntry debugTableDirectory = PEHeaders.PEHeader.DebugTableDirectory;
300 if (debugTableDirectory.Size == 0)
301 {
303 }
304 if (!PEHeaders.TryGetDirectoryOffset(debugTableDirectory, out var offset))
305 {
306 throw new BadImageFormatException(System.SR.InvalidDirectoryRVA);
307 }
308 if (debugTableDirectory.Size % 28 != 0)
309 {
310 throw new BadImageFormatException(System.SR.InvalidDirectorySize);
311 }
312 using AbstractMemoryBlock abstractMemoryBlock = GetPEImage().GetMemoryBlock(offset, debugTableDirectory.Size);
313 return ReadDebugDirectoryEntries(abstractMemoryBlock.GetReader());
314 }
static readonly ImmutableArray< T > Empty
bool TryGetDirectoryOffset(DirectoryEntry directory, out int offset)
Definition PEHeaders.cs:173
static ImmutableArray< DebugDirectoryEntry > ReadDebugDirectoryEntries(BlobReader reader)
Definition PEReader.cs:316
static string InvalidDirectoryRVA
Definition SR.cs:152
static string InvalidDirectorySize
Definition SR.cs:154
Definition SR.cs:7

References System.Reflection.PortableExecutable.PEHeader.DebugTableDirectory, System.Collections.Immutable.ImmutableArray< T >.Empty, System.Reflection.Internal.MemoryBlockProvider.GetMemoryBlock(), System.Reflection.PortableExecutable.PEReader.GetPEImage(), System.SR.InvalidDirectoryRVA, System.SR.InvalidDirectorySize, System.offset, System.Reflection.PortableExecutable.PEHeaders.PEHeader, System.Reflection.PortableExecutable.PEReader.ReadDebugDirectoryEntries(), System.Reflection.PortableExecutable.DirectoryEntry.Size, and System.Reflection.PortableExecutable.PEHeaders.TryGetDirectoryOffset().

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