logo

GDB (úvod krok za krokem)

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>
nejmenovat

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.

quit_gdb

Ukončit

Zkompilujte kód

Níže je uveden program, který vykazuje nedefinované chování při kompilaci pomocí C99. seznam-1



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.

bod zlomu

Zobrazte kód

Nastavte bod přerušení

Zavedeme bod přerušení, řekněme řádek 5.

info_b

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.

zakázat

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.

povolit-1

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.

první běh

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.

print_value_x

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.