GDB je zkratka pro GNU Project Debugger a je to výkonný ladicí nástroj pro C (spolu s dalšími jazyky jako C++). Pomáhá vám šťourat se uvnitř vašich programů C, zatímco jsou vykonávány, a také vám umožňuje vidět, co se přesně stane, když váš program selže. GDB pracuje se spustitelnými soubory, což jsou binární soubory vytvořené procesem kompilace.
Pro účely ukázky je níže uvedený příklad spuštěn na počítači se systémem Linux s níže uvedenými specifikacemi.
uname -a>

uname -a
Učme se tím, že: –
Spusťte GDB
Přejděte do příkazového řádku systému Linux a zadejte gdb.
gdb>
gdb
pole přidávání prvků java
Gdb open prompt vám dá vědět, že je připraven na příkazy. Chcete-li opustit gdb, napište quit nebo q.

Ukončit
Zkompilujte kód
Níže je uveden program, který vykazuje nedefinované chování při kompilaci pomocí C99.
Poznámka: Pokud není objekt, který má automatické trvání ukládání, explicitně inicializován, jeho hodnota je neurčitá, kde neurčitá hodnota je buď nespecifikovaná hodnota, nebo reprezentace pasti.
Nyní zkompilujte kód. (zde test.c). g vlajka znamená, že můžete vidět správná jména proměnných a funkcí v rámcích zásobníku, získat čísla řádků a vidět zdroj, když procházíte kolem spustitelného souboru. -std=příznak C99 znamená, že ke kompilaci kódu použijte standardní C99. -o vlajka zapíše výstup sestavení do výstupního souboru.
gcc -std=c99 -g -o test test.C>
gcc -std=c99 -g -o test test.C
Spusťte GDB s vygenerovaným spustitelným souborem
Zadejte následující příkaz pro spuštění GDB s kompilovaným spustitelným souborem.
gdb ./test>
gdb ./test
Užitečné příkazy GDB:
Zde je několik užitečných příkazů, jak začít s GDB.
Příkaz | Popis |
---|---|
běh nebo r | Spustí program od začátku do konce. |
přestávka nebo b | Nastaví zarážku na konkrétním řádku. |
zakázat | Zakáže bod přerušení |
umožnit | Povolí zakázaný bod přerušení. |
další nebo n | Provede další řádek kódu bez ponoření do funkcí. |
krok | Přejde na další pokyn a ponoří se do funkce. |
seznam nebo l | Zobrazí kód. |
tisknout nebo str | Zobrazuje hodnotu proměnné. |
ukončit nebo q | Opustí GDB. |
Průhledná | Vymaže všechny zarážky. |
pokračovat | Pokračuje v normálním provádění |
Zobrazte kód
Nyní zadejte l na výzvu gdb, abyste zobrazili kód.

Zobrazte kód
Nastavte bod přerušení
Zavedeme bod přerušení, řekněme řádek 5.

Nastavte bod přerušení
Pokud chcete umístit bod přerušení na různé řádky, můžete zadat b číslo řádku .Ve výchozím nastavení zobrazím seznam nebo pouze prvních 10 řádků.
Zobrazit zarážky
Chcete-li zobrazit body přerušení, zadejte info b.

Zobrazit zarážky
Zakázat bod přerušení
Po provedení výše uvedeného řekněme, že jste změnili názor a chcete se vrátit. Typ zakázat b.

Zakázat bod přerušení
nahradit řetězec javascriptu
Znovu povolte zakázaný bod přerušení
Jak je vyznačeno v modrém kruhu, Enb se změní na n pro zakázáno. 9. Chcete-li znovu povolit poslední zakázaný bod přerušení. Typ povolení b.

Znovu povolte zakázaný bod přerušení
Spusťte kód
Spusťte kód zadáním run nebo r. Pokud jste nenastavili žádné body přerušení, příkaz run jednoduše spustí celý program.

Spusťte kód
Tisk hodnot proměnných
Chcete-li zobrazit hodnotu proměnné, zadejte print název_proměnné nebo p název_proměnné .

Tisk hodnot proměnných
Výše uvedené ukazuje hodnoty uložené v x v době provádění.
Změňte hodnoty proměnných
Chcete-li změnit hodnotu proměnné v gdb a pokračovat v provádění se změněnou hodnotou, zadejte set název_proměnné .
Výstup ladění
Níže uvedený snímek obrazovky ukazuje hodnoty proměnných, ze kterých je zcela pochopitelný důvod, proč jsme jako výstup dostali hodnotu smetí. Při každém provedení . /test obdržíme jiný výstup.
Cvičení: Zkuste použít set x = 0 v gdb při prvním spuštění a podívejte se na výstup c.
Výstup ladění
GDB nabízí mnohem více způsobů, jak ladit a porozumět vašemu kódu, jako je zkoumání zásobníku, paměti, vláken, manipulace s programem atd. Doufám, že výše uvedený příklad vám pomůže začít s gdb.
Závěr
V tomto článku jsme diskutovali o GDB (GNU Debugger), což je mocný nástroj v Linuxu používaný pro ladění programů C. Probrali jsme některé z následujících kroků, abychom mohli zkompilovat váš kód s informacemi o ladění, spustit GDB, nastavit bod přerušení, prozkoumat proměnné a analyzovat chování programu. Také jsme diskutovali o funkcích GDB, jako je zkoumání kódu, správa bodů přerušení, manipulace s proměnnými a kontrola provádění programu, které nám umožňují efektivně ladit a řešit problémy.