Ladění programu pomocí gdb

Z Milan Kerslager
Verze z 5. 4. 2011, 10:37, kterou vytvořil Milan.Kerslager (diskuse | příspěvky) (Založení stránky)
(rozdíl) ← Starší verze | zobrazit aktuální verzi (rozdíl) | Novější verze → (rozdíl)
Přejít na: navigace, hledání

Ladění programu pomocí gdb je vhodné pro práci v příkazovém řádku. Debugger gdb slouží pro krokování programu, inspekci proměnných, ale i analýzu core (soubory s obrazem paměti po pádu programu). Existují nadstavby jak pro textové rozhraní (např. cgdb), tak pro grafické rozhraní (např. ddd) nebo je možné ladit program přímo v integrovaném vývojovém prostředí (Eclipse). Text se bude dále zabývat použitím debuggeru přímo na příkazovém řádku.

Přeložení programu

Program, který chceme ladit pomocí gdb, je nutné přeložit s přepínačem -g. Mějme zdrojový kód programu v souboru vypocet.c:

#include <stdio.h>

int main()
{
  int a, x = 3;
  a = x + 5;
  printf("Vysledek: %d\n", a);
  return 1;
}

Pak ho přeložíme takto:

gcc -g -o vypocet vypocet.c

Ladění programu

Program natáhneme do debuggeru příkazem gdb vypocet, načež je zobrazena licence a aktivuje se interní řádkové rozhraní debuggeru (v následujícím příkladu je vstup uživatel vyznačen tučně):

$ gdb vypocet
GNU gdb (GDB) Red Hat Enterprise Linux (7.0.1-23.el5_5.2)
Copyright (C) 2009 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-redhat-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /home/kerslage/vyuka/pre/vypocet...done.
(gdb) 

TODO