NÉV
gdb − A GNU hibakereső
ÖSSZEGZÉS
gdb |
[−help] [−nx] [−q] [−batch] [−cd=dir] [−f] [−b bps] [−tty=dev] [−s symfile] [−e prog] [−se prog] [−c core] [−x cmds] [−d dir] [prog[core|procID]] |
LEÍRÁS
Egy olyan hibakereső, mint a GDB, célja az, hogy betekintést nyújtson egy másik program ’’belsejébe’’, miközben az fut—vagy arra, hogy mit csinált egy másik program abban a pillanatban, amikor összeomlott.
A GDB négy fő dologra képes (és még néhány egyébre is e négy dolog támogatásához), amelyek segítenek a működés közben való hibakeresésben:
• |
Elindítja a programot, meghatároz bármely olyan dolgot, amely befolyásolhatja a működését. | ||
• |
Megállítja a programot meghatározott körülmények bekövetkeztekor. | ||
• |
Megvizsgálja, hogy mi történt, amikor a program megállt. | ||
• |
Megváltoztat dolgokat a programban, hogy kísérletezni lehessen a hiba következményeinek kijavítása érdekében, és folytathassa a munkát egy másik hibán. |
A GDB C, C++, és Modula-2 nyelvű programok hibáinak keresésére használható. Amint a GNU Fortran fordító elkészül, a GDB a Fortran-t is támogatni fogja.
A GDB-t a gdb shell paranccsal kell elindítani. Ha elindult, a parancsokat a terminálról olvassa be, egészen addig, amíg ki nem lép a quit parancs hatására. Súgót a help paranccsal kaphat.
A gdb elindítható argumentumok vagy opciók nélkül is; de a leggyakoribb módja a GDB elindításának egy vagy két argumentummal történik, egy futtatható programot adva meg argumentumként:
gdb program
Elindítható továbbá egy futtatható program és egy core file megadásával:
gdb program core
A core file helyett megadható egy process azonosító második argumentumként, ha egy már futó programban kell hibát keresni:
gdb program 1234
ez a parancs hozzáköti a GDB-t a 1234-as folyamathoz (hacsak nincs már egy ’1234’ nevű file; a GDB először a core file jelenlétét ellenőrzi).
Alant a
leggyakrabban szükséges GDB parancsok
találhatók:
break
[file:]függvény
Töréspontot állít be a függvény elé (a file-ban).
run [argumentum lista]
Elindítja a programot (argumentum listával, ha meg lett adva).
bt |
Visszakövetés: kiírja a programvermet. |
print kifejezés
Kiírja egy kifejezés értékét.
c |
A program futásának folytatása (megállás után, pl. töréspontnál). | ||
next |
A következő programsor futtatása (megállás után); átlépi a sorban levő függvényhívást. | ||
step |
A következő programsor futtatása (megállás után); belép a sorban levő függvénybe. |
help [név]
Súgót ír ki a név nevű GDB parancsról, vagy általános információt a GDB használatáról.
quit |
Kilép a GDB-ből. |
Részletekbe menő információkért lásd: Richard M. Stallman és Roland H. Pesch: Using GDB: A Guide to the GNU Source-Level Debugger. A könyv elérhető online az info program gdb címszavaként.
OPCIÓK
Bármely olyan argumentum, amely nem opció, egy futtatható fájlt és egy core file-t (vagy folyamat azonosítót) határoz meg; azaz az első olyan argumentum, amelyhez nem kötődik opció, megegyzik a ’−se’ opcióval, és a második, ha van ilyen, megegyezik a ’−c’ opcióval, ha van ilyen nevű file. Sok opciónak van hosszú és rövid formája, itt mindkettőt megadtuk. A hosszú opciók csonkított formában is elfogadhatóak, amennyiban a hosszuk elegendő az egyértelmű azonosításhoz. (Ha úgy tetszik, az opció jelölhető ’+’-szal ’−’ helyett, de mi itt a megszokottabb jelölést használjuk.)
A GDB egymás után dolgozza fel az összes opciót és parancssori argumentumot. Számít a sorrend, ha a ’−x’ opció is szerepel.
−help |
||||
−h |
Felsorolja az összes opciót rövid magyarázattal. |
−symbols=file
−s file
A file nevű fájlból olvassa be a szimbólum táblát.
−write |
A futtatható és a core fájlba történő írás engedélyezése. |
−exec=file
−e file
A file nevű fájlt hsználja futtathatóként amennyiben az arra alkalmas, és egy core dumppal kapcsolatban nyers adatként.
−se=file
A szimbólum táblát a file nevű fájlból veszi, és használja ugyan ezt a fájlt, futtathatóként.
−core=file
−c file
Használja a file nevű fájlt core dump-nak.
−command=file
−x file
A GDB parancsokat a file nevű fájlból olvassa.
−directory=katalógus
−d directory
Adja hozzá a katalógus katalógust az elérési útvonalhoz forrásfile-ok kereséséhez.
−nx |
|||
−n |
Ne futtassa a ’.gdbinit’ inicializációs fájlban levő parancsokat. Ebben a fájlban levő parancsok a parancssori argumentumok feldolgozása után hajtódnak végre. | ||
−quiet |
|||
−q |
’’Csöndes’’. Nem írja ki a bevezető és szerzői joggal kapcsolatos üzeneteket. Ezek a üzenetek szintén nem íródnak ki kötegelt feldolgozás során. | ||
−batch |
Kötegelt feldolgozás. A program 0-s értékkel lép ki az ’−x’-szel megadott parancsfile-ok (és a ’.gdbinit’ file, ha nincs letiltva) feldolgozása után. Nem-nulla értékkel akkor lép ki, ha hiba következik be parancsfile-okban található GDB parancsok végrehajtásakor. |
A kötegelt feldolgozás akkor lehet hasznos, ha a GDB szűrőként fut, például hogy letöltsön és futtasson egy programot egy másik számítógépen. Azért, hogy ez használhatóbb legyen, a
Program exited normally.
üzenet (amely rendszerint akkor íródik ki, amikor egy GDB által futtatott program kilép) nem íródik ki kötegelt feldolgozáskor.
−cd=katalógus
A GDB munkakatalógusa a katalógus legyen a jelenlegi helyett.
−fullname
−f |
Az Emacs állítja be ezt az opciót, amikor alfolyamatként futtatja a GDB-t. Ez arra készteti a GDB-t, hogy kiírja a teljes file nevet és sorszámot szabványos, felismerhető formában minden alkalommal, amikor egy verem keret kiíródik (amelybe beleértendő minden alkalom, amikor a program megáll). Ez a felismerhető formátum a következőképpen néz ki: két ’ 32’ karakter, amelyeket a file neve, a sor sorszáma és a karakter helye követ kettőspontokkal elválasztva, majd egy újsor karakter. Az Emacs-GDB csatolóprogram a két ’ 32’ karaktert használja jelként a keret forráskódjának kiírásához. | ||
−b bps |
Beállítja a soros csatoló vonali sebességét (baud szint vagy bit per másodperc), amelyet a GDB használ távoli hibakereséshez. |
−tty=eszköz
A eszköz eszközt használja szabványos bemenetként és kimenetként.
LÁSD MÉG
Az info program ’gdb’ címszavaként; Richard M. Stallman and Roland H. Pesch: Using GDB: A Guide to the GNU Source-Level Debugger, 1991 július.
MÁSOLÁS
Copyright (c) 1991 Free Software Foundation, Inc.
Megadjuk az engedélyt ezen kéziköny szó szerinti másolatainak létrehozására és terjesztésére, amennyiben a szerzői jog címke és ez az engedély a másolatokon is szerepel.
Megadjuk az engedélyt ezen kéziköny módosított másolatainak létrehozására és terjesztésére a szó szerinti másolatokra vonatkozó feltételekkel, amennyiben a módosítások eredményeképpen létrejövő kézikönyvet egy ezzel azonos engedély alatt terjesztik.
Megadjuk az engedélyt ezen kéziköny más nyelvekre lefordított változatainak másolására és terjesztésére a fenti, módosításra vonatkozó feltételekkel, kivéve, hogy ezen engedélynek a Free Software Foundation által jóváhagyott fordítása szerepelhet az eredeti angol nyelvű változat helyett. Szakács Gergely Márton <case [AT] fornax.hu>