Symboly a soubory symbolů

Když jsou propojené aplikace, knihovny, ovladače nebo operační systémy, linker, který vytvoří .exe a .dll soubory, vytvoří také řadu dalších souborů označovaných jako soubory symbolů.

Soubory symbolů obsahují řadu dat, která nejsou ve skutečnosti potřeba při spouštění binárních souborů, ale které by mohly být velmi užitečné v procesu ladění.

Soubory symbolů obvykle můžou obsahovat:

  • Globální proměnné

  • Místní proměnné

  • Názvy funkcí a adresy jejich vstupních bodů

  • Vynechání záznamů FPO

  • Čísla zdrojových řádků

Každá z těchto položek se nazývá symbol jednotlivě. Například soubor s jedním symbolem Myprogram.pdb může obsahovat několik stovek symbolů, včetně globálních proměnných a názvů funkcí a stovek místních proměnných. Softwarové společnosti často vydávají dvě verze každého souboru symbolů: úplný soubor symbolů obsahující veřejné symboly i soukromé symboly a zkrácený (stripped) soubor obsahující pouze veřejné symboly. Podrobnosti najdete v tématu Veřejné a soukromé symboly.

Při ladění se musíte ujistit, že ladicí program má přístup k souborům symbolů přidruženým k cíli, který ladíte. Živé ladění i ladění souborů s výpisem stavu systému vyžadují symboly. Musíte získat správné symboly pro kód, který chcete ladit, a načíst tyto symboly do ladicího programu.

Symboly Windows

Systém Windows uchovává symboly souborů s příponou .pdb.

Formát symbolu řídí kompilátor a linker. Linker Visual C++ umístí všechny symboly do souborů .pdb.

Operační systém Windows byl sestaven ve dvou verzích. Bezplatný build (nebo prodejní build) má relativně malé binární soubory a kontrolní build (nebo ladicí build) má větší binární soubory s více ladicími symboly přímo v kódu. Zaškrtnuté buildy byly k dispozici ve starších verzích Windows před Windows 10 verze 1803. Každý z těchto buildů měl vlastní soubory symbolů. Při ladění cíle ve Windows musíte použít soubory symbolů, které odpovídají sestavení systému Windows na cílovém zařízení.

Následující tabulka uvádí několik adresářů, které existují ve standardním stromu symbolů Windows:

Adresář Obsahuje soubory symbolů pro

ACM

Soubory Microsoft Audio Compression Manageru

model COM

Spustitelné soubory (.com)

CPL

Programy ovládacích panelů

knihovna DLL

Soubory knihovny dynamického propojení (.dll)

DrV

Soubory ovladačů (.drv)

EXE

Spustitelné soubory (.exe)

SCR

Soubory spořič obrazovky

SYS

Soubory ovladačů (.sys)