Symbol ladění - Debug symbol

Symbol ladění je speciální druh symbolu , který se připojuje další informace k tabulce symbolů města jako souboru objektu , například sdílené knihovny nebo zda není spustitelný . Tyto informace umožňují symbolickému debuggeru získat přístup k informacím ze zdrojového kódu binárního souboru, jako jsou názvy identifikátorů, včetně proměnných a rutin.

Symbolické informace mohou být kompilovány společně s binárním souborem modulu nebo distribuovány v samostatném souboru nebo jednoduše zahozeny během kompilace a / nebo propojení .

Tyto informace mohou být užitečné při zkoumání a opravě havarující aplikace nebo jakékoli jiné poruchy.

Vložené symboly

Symboly ladění obvykle zahrnují nejen název funkce nebo globální proměnné, ale také název souboru zdrojového kódu, ve kterém se symbol vyskytuje, a také číslo řádku, na kterém je definován. Mezi další informace patří typ symbolu (celé číslo, float, funkce, výjimka atd.), Obor (obor bloku nebo globální obor), velikost a pro třídy název třídy a metody a členy v tom. Všechny tyto další informace mohou zabrat dost místa, zejména názvy souborů a čísla řádků. Binární soubory se symboly ladění se tak mohou stát poměrně velkými, často několikanásobně větší než velikost ořezaného souboru. Aby se zabránilo této extra velikosti, většina distribucí operačních systémů dodává binární soubory, které jsou odstraněny , tj. Ze kterých byly odstraněny všechny symboly ladění. Toho lze dosáhnout například příkazem strip v unixu.

Některé kompilátory odešlou symbolické informace o ladění do samostatného souboru, místo aby je umisťovaly společně s binárním souborem.

SysV ABI

SysV Abi obsahuje specifikaci formátu ladění symbolů. To umožňuje libovolnému kompatibilnímu kompilátoru nebo assembleru vytvářet symboly ladění ve standardizovaném formátu a pro jakýkoli ladicí program, jako je GDB , získat přístup a zobrazit tyto symboly. Například část důležitých informací o ladění zahrnuje řádek kódu ve zdrojovém souboru, který definuje tento symbol (funkce nebo globální proměnná), stejně jako symboly spojené s rámci výjimek.

Microsoft debug symbols

Překladače společnosti Microsoft generují soubor s názvem soubor PDB obsahující symboly ladění. Některé společnosti dodávají soubory PDB na svých discích CD / DVD, aby umožnily odstraňování problémů, a jiné společnosti (například Microsoft a Mozilla Corporation ) povolují stahování symbolů ladění z Internetu. WinDBG debugger a Visual Studio IDE může být nakonfigurován tak, aby automaticky stahovat symboly ladění pro Windows dll na vyžádání. Symboly ladění PDB, které Microsoft distribuuje, zahrnují pouze veřejné funkce, globální proměnné a jejich datové typy. Společnost Mozilla Corporation má podobnou infrastrukturu, ale distribuuje úplné informace o ladění.

Microsoft i Mozilla také nabízejí zdrojový kód (Microsoft poskytuje určité komponenty, jako je většina .NET Framework , zatímco Mozilla nabízí plný zdroj), což usnadňuje ladění.

Jablko

Na platformách Apple jsou symboly ladění volitelně emitovány během procesu sestavování jako soubory dSYM. Apple používá výraz „symbolikovat“ k nahrazení adres v diagnostických souborech čitelnými hodnotami.

Dějiny

Symbolické debuggery existují od éry sálových počítačů , téměř od prvního zavedení vhodných počítačových displejů, na nichž se zobrazují symbolické ladicí informace (a ještě dříve se symbolickými skládkami na papíře). Nebyly omezeny na kompilované jazyky na vysoké úrovni a byly k dispozici také pro jazykové programy shromáždění . Pro IBM / 360 vytvořili tento objektový kód (na vyžádání), který obsahoval „karty SYM“. Ty byly obvykle ignorovány zavaděčem programu, ale byly užitečné pro symbolický debugger, protože byly uchovávány ve stejné knihovně programu jako spustitelný logický kód.

Viz také

Reference

Veřejný symbol a zdrojové servery