GNU Debugger
Z Multimediaexpo.cz
GNU Debugger (zkráceně GDB) je standardní nástroj na hledání chyb v GNU software (tzv. debugger). GDB podporuje mnoho unixových operačních systémů a programovacích jazyků (například C, C++ nebo Fortran).
Obsah |
Historie
GDB původně napsal Richard Stallman v roce 1988 v rámci projektu GNU. Mezi lety 1990 a 1993 ho spravoval John Gilmore zatímco pracoval pro Cygnus Solutions. Nyní je spravován komisí (GDB Steering Committee) jmenovanou Free Software Foundation.
Technické detaily
Vlastnosti
GDB poskytuje pokročilé možnosti sledování a změnu průběhu počítačového programu. Uživatel může sledovat a upravovat hodnoty proměnných a dokonce spouštět funkce nezávisle na tom, jaké bylo původní chování programu.
GDB podporuje mimo jiné tyto procesory (stav z roku 2003): Alpha, ARM, H8/300, System/370, System 390, X86 a X86-64, IA-64 „Itanium“, Motorola 68000, MIPS, PA-RISC, PowerPC, SuperH, SPARC, VAX.
Vzdálené debugování
GDB podporuje tzv. vzdálený mód často používaný při debugování embedded systémů. Vzdálený mód znamená, že GDB běží na jednom počítači, zatímco debugovaný program běží na druhém.
Omezení
GDB neobsahuje grafické prostředí a je možné jej použít pouze přes příkazový řádek. Externě bylo vytvořeno několik grafických rozhraní pro GDB: DDD, Insight nebo GUD mód v Emacsu. Podobné služby poskytují i vývojová prostředí.
Příklad použití
GNU gdb Red Hat Linux (6.3.0.0-1.21rh) Copyright 2004 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type „show copying“ to see the conditions. There is absolutely no warranty for GDB. Type „show warranty“ for details. This GDB was configured as „i386-redhat-linux-gnu“...Using host libthread_db library „/lib/libthread_db.so.1“. (gdb) run Starting program: /home/sam/programming/crash Reading symbols from shared object read from target memory...done. Loaded system supplied DSO at 0xc11000 This program will demonstrate gdb Program received signal SIGSEGV, Segmentation fault. 0x08048428 in function_2 (x=24) at crash.c:22 22 return *y; (gdb) edit (gdb) shell gcc crash.c -o crash -gstabs+ (gdb) run The program being debugged has been started already. Start it from the beginning? (y or n) y warning: cannot close „shared object read from target memory“: File in wrong format `/home/sam/programming/crash' has changed; re-reading symbols. Starting program: /home/sam/programming/crash Reading symbols from shared object read from target memory...done. Loaded system supplied DSO at 0xa3e000 This program will demonstrate gdb 24 Program exited normally. (gdb) quit
Program je spuštěn. Po objevení příčiny vyvolání chyby segmentation fault je program opraven. Opravený program je pak rekompilován pomocí GCC a poté spuštěn.
Externí odkazy
- Domácí stránka GDB
- GDB dokumentace - více než 400 stran (anglicky)
Náklady na energie a provoz naší encyklopedie prudce vzrostly. Potřebujeme vaši podporu... Kolik ?? To je na Vás. Náš FIO účet — 2500575897 / 2010 |
---|
Informace o článku.
Článek je převzat z Wikipedie, otevřené encyklopedie, do které přispívají dobrovolníci z celého světa. |