windows - COFF symbol tabel vs import/eksport/debug sektion

Indlæg af Hanne Mølgaard Plasc

Problem



Så vidt jeg har forstået, bruges COFF-symboltabellen i Microsofts bærbare eksekverbare format til at gemme eksport-, import- og fejlsymbolerne. Men da vi allerede har en .edata, .idata og .debug-sektion med det formål hvorfor har vi brug for en anden sådan struktur for det?

Bedste reference


Se her: http://msdn.microsoft.com/en-us/library/ms809762.aspx[1]


'[[COFF symboltabellen]] bruges kun i OBJ-filer og PE-filer med COFF-fejlfinding.'


'.Dataafsnittet bruges til mindst to ting. [[...]] (I TLINK32 EXEs er debug-mappen i en sektion ved navn .debug.) [[...]] Tre hovedtyper af fejlretningsoplysninger vises: CodeView® , COFF og FPO. '


'Hvorfor skulle nogen have brug for COFF-fejlfinding, når den langt mere komplette CodeView-information er tilgængelig? Hvis du har til hensigt at bruge Windows NT-systemfejlfjerneren (NTSD) eller Windows NT-kernel debugger (KD), er COFF det eneste spil i byen.'


Med andre ord bruges COFF-symboltabellen kun til debugging, kun for de mere primitive debuggere, og er typisk placeret i sektionen .debug (eller .rdata).