From: Liming Gao Date: Tue, 22 Aug 2017 05:58:57 +0000 (+0800) Subject: BaseTools: Roll back GenFw Change to keep unknown field in RSDS debug entry X-Git-Tag: edk2-stable201903~3599 X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=commitdiff_plain;h=279c01ce13739f0fd8ec3e7652299f6873fc14a9 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 --- diff --git a/BaseTools/Source/C/GenFw/GenFw.c b/BaseTools/Source/C/GenFw/GenFw.c index af60c92763..33ba917fda 100644 --- a/BaseTools/Source/C/GenFw/GenFw.c +++ b/BaseTools/Source/C/GenFw/GenFw.c @@ -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) {