Ladicí symbol je v informatice označení pro informace popisující funkci strojového kódu ve vztahu k programovacímu jazyku. Ladicí symboly popisují umístění proměnných v operační paměti, jejich datových typů, umístění funkcí i odpovídající úseky (řádky) ve zdrojovém kódu. Debugger může díky nim při ladění počítačového programu vypisovat obsah proměnných, krokovat program, nastavovat breakpointy a podobně.

Charakteristika editovat

Ladicí symboly jsou uloženy v tabulce symbolů, která je buď součástí spustitelného souboru nebo mohou být uloženy zvlášť (např. v distribucích Linuxu). Ladící symboly jsou vytvářeny v době překladu programu. Obvykle je nutné instruovat překladač, aby ladící informace do výsledného cílového kódu uložil. Ladicí symboly jsou využívány pro analýzu běhu programu (trasování), hledání chyb v programu nebo zjišťování příčiny pádu programu (pomocí core dump).

Jsou-li ladicí symboly uloženy přímo ve spustitelném souboru, je jeho výsledná velikost až několikanásobně vyšší, než kdyby ladicí symboly nebyly v kódu obsaženy. Proto jsou často ukládány do samostatných souborů nebo jsou ze spustitelných souborů odstraňovány (v unixových systémech příkazem strip). V Microsoft Windows se tento soubor nazývá PNR. Někteří tvůrci programů však tyto informace neposkytují (typicky komerční software), případně je poskytují zvlášť ze speciálních serverů nebo sbírají binární informace, které analyzují interně (Microsoft Windows). Například firma Microsoft distribuuje jen dílčí ladící symboly (pouze veřejné funkce, globální proměnné a jejich datové typy), zatímco Mozilla Corporation distribuuje úplné informace pro ladění (např. pro Mozilla Firefox). Někdy je nabízen i zdrojový kód programu, který ladění dále usnadňuje (typicky open source software).

Historie editovat

Ladicí symboly byly zřejmě poprvé použity ve světě sálových počítačů, u kterých se téměř od prvního uvedení vhodných počítačových displejů zobrazovaly symbolické ladící informace (před tím jen v podobě poznámek u tisku kódu na papír). Nebyly omezeny pouze na vysokoúrovňové zkompilované jazyky, ale byly k dispozici i pro nízkoúrovňové kódy napsané v jazyce symbolických adres. Například strojový kód pro IBM/360 zahrnoval na vyžádání „SYM karty“, které byly obvykle ignorovány zavaděčem programu, ale využity pro ladicí programy, protože byly součástí stejné programové knihovny, jako spustitelný kód.

Veřejné odkazy ladících symbolů editovat

Související články editovat