BaseTools: Roll back GenFw Change to keep unknown field in RSDS debug entry

https://lists.01.org/pipermail/edk2-devel/2017-August/013488.html
These fields are actually a GUID and DWORD respectively: the GUID identifies
the PDB to make it possible to verify that a given PDB matches the PE file,
and the DWORD is the "age" of the PDB which is simply a helper value that is
incremented by 1 by the linker every time the file is remade. Wiping the
GUID will cause PDB parsers (such as the MS DIA SDK that IDA and most other
tools use) to treat the PDB as a mismatch and refuse to load it.

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Liming Gao <liming.gao@intel.com>
This commit is contained in:
Liming Gao 2017-08-22 13:58:57 +08:00
parent e4d409c6e3
commit 279c01ce13
1 changed files with 1 additions and 7 deletions

View File

@ -2903,13 +2903,7 @@ Returns:
}
if (DebugEntry->Type == EFI_IMAGE_DEBUG_TYPE_CODEVIEW) {
RsdsEntry = (EFI_IMAGE_DEBUG_CODEVIEW_RSDS_ENTRY *) (FileBuffer + DebugEntry->FileOffset);
if (RsdsEntry->Signature == CODEVIEW_SIGNATURE_RSDS) {
RsdsEntry->Unknown = 0;
RsdsEntry->Unknown2 = 0;
RsdsEntry->Unknown3 = 0;
RsdsEntry->Unknown4 = 0;
RsdsEntry->Unknown5 = 0;
} else if (RsdsEntry->Signature == CODEVIEW_SIGNATURE_MTOC) {
if (RsdsEntry->Signature == CODEVIEW_SIGNATURE_MTOC) {
// MTOC sets DebugDirectoryEntrySize to size of the .debug section, so fix it.
if (!ZeroDebugFlag) {
if (Optional32Hdr->Magic == EFI_IMAGE_NT_OPTIONAL_HDR32_MAGIC) {