GNU Debugger, הידוע בתור GDB, הוא המנפה שגיאות (debugger, תוכנה שעוזרת למצוא ולתקן בעיות בתוכניות). הוא כלי חופשי המופץ תחת רישיון GPLv3. GDB רץ על מערכות דמויות־יוניקס ועובד עם שפות כמו C, C++ ו‑Fortran.
GDB מאפשר לעקוב אחרי הרצת תוכניות ולשנות את ההתנהגות שלהן בזמן ריצה. אפשר לבדוק ולקרוא את ערכי המשתנים הפנימיים של התוכנית, לקרוא לפונקציות באופן יזום, ולעצור את התוכנית בנקודות שבוחרים כדי לבחון מה קורה.
ברירת המחדל של GDB היא ממשק שורת פקודה (מקלידים פקודות). קיימים גם ממשקים גרפיים שמקלים על העבודה, כמו DDD, "מצב GUD" ב‑Emacs ו‑KDevelop. בנוסף, יש כלים חיצוניים שעובדים עם GDB, לדוגמה גלאי דליפות זיכרון.
GDB מספק פיצ'רים למעקב ושינוי ריצה של תוכניות. בין היכולות הבולטות: הצבת נקודות עצירה (breakpoints), בדיקה והדפסת ערכי משתנים, פירוק קוד למפענח (disassemble), וזימון פונקציות ידנית.
GDB תומך במספר רב של ארכיטקטורות מעבדים, ביניהן x86, x86‑64, ARM, MIPS, PowerPC ו‑SPARC, וכן עוד מעבדים אחרים.
GDB מאפשר ניפוי שגיאות מרוחק: התהליך שמנופים אותו יכול לפעול על מחשב אחר מה־GDB. מצב זה שימושי בעיקר בעבודה עם מערכות משובצות מחשב (embedded systems).
דוגמאות פקודות בסיסיות: gdb program, (gdb) run, (gdb) break, (gdb) info registers, (gdb) disassemble func.
דוגמה מעשית: קוד C קטן שקורא ל‑strlen עם מצביע NULL גורם לשגיאת סגמנטציה (Segmentation fault). לאחר קומפילציה עם הדגל -g (מוסיף מידע ניפוי), מפעילים GDB על הקובץ הבינארי. GDB מדווח היכן קרתה השגיאה ומאפשר להוציא פקודת print כדי לראות ש‑s = 0x0 (הכוונה שמצביע המחרוזת הוא NULL).
הטעות תוקנת על ידי אתחול המשתנה a למחרוזת חוקית במקום NULL. לאחר התאמה של הקוד וקומפילציה חוזרת, התוכנית רצה כראוי ומדפיסה את האורך של המחרוזת.
GDB (ג'י‑די‑בי) הוא תוכנה שעוזרת למצוא שגיאות בתוכניות. שגיאות = בעיות שקופצות בזמן שהبرنامج רץ. GDB חלק ממערכת GNU ומחולקת ברישיון חופשי (GPL).
GDB עובד במחשב דרך שורת פקודה. שורת פקודה = מקלידים פקודות. יש גם תוכנות עם חלון גרפי, למשל DDD ו‑Emacs (מצב GUD).
עם GDB אפשר לעצור תוכנית בנקודה שבוחרים. אפשר לראות מה הערכים של משתנים. אפשר גם לקרוא לפונקציות כדי לבדוק מה קורה.
GDB תומך בהרבה סוגי מעבדים, כמו x86 ו‑ARM.
ניפוי שגיאות מרוחק אומר שהכלי עובד במחשב אחד והתוכנית שנבדקת רצה על מחשב אחר. זה שימושי במכשירים קטנים ומיוחדים.
דוגמאות פשוטות: gdb program, run, break, print.
קוד C בדוגמה כשל כי קוראים ל‑strlen עם מצביע NULL. NULL = מצביע שאין בו מחרוזת. התוצאה היתה שגיאה (Segmentation fault). GDB הראה באיזו שורה הבעיה ואמר שהמשתנה s שווה 0x0. התיקון היה לתת ל‑a מחרוזת תקינה. אחרי התיקון התוכנית הדפיסה את האורך והמשיכה כרגיל.
תגובות גולשים