private void UpdateDebugDirectory()
{
var assembly = _directory.Assembly;
var debugDataDirectory =
assembly.NtHeaders.OptionalHeader.DataDirectories[ImageDataDirectory.DebugDirectoryIndex];
if (assembly.DebugDirectory == null)
{
debugDataDirectory.VirtualAddress = 0;
debugDataDirectory.Size = 0;
}
else
{
debugDataDirectory.VirtualAddress = (uint)assembly.FileOffsetToRva(assembly.DebugDirectory.StartOffset);
debugDataDirectory.Size = assembly.DebugDirectory.GetPhysicalLength();
assembly.DebugDirectory.PointerToRawData = (uint)assembly.DebugDirectory.Data.StartOffset;
assembly.DebugDirectory.AddressOfRawData =
(uint)assembly.FileOffsetToRva(assembly.DebugDirectory.Data.StartOffset);
}
}