שימוש בסיסי ב gdb

מטרת המדריך

מטרת מדריך זה להשלים את הפער בין החומר התאורטי הנלמד בכתה או מספר לימוד, לבין העבודה המעשית על המערכת.

למי מיועד המדריך

המדריך מיועד לתלמידים המתחילים את הלימוד התאורטי של שפת C, וזקוקים להדרכה כיצד לכתוב ולהדר את התכניות הראשונות שלהם במערכת GNU/Linux.

על איזו מערכת נבנה המדריך

המדריך נבנה על מערכת Ubuntu GNU/Linux אך כל מערכת לינוקס תתאים. הוראות ההתקנה המדוייקות ספציפיות למערכת מבוססת Debian GNU/Linux, אך ינתנו הסברים כלליים גם עבור מערכות אחרות.

לפני תחילת העבודה

עברו על המדריך לכתיבת תכנית בשפת C ובשימוש במהדר gcc ובדקו שאתם שולטים בכתיבה, הידור והרצה של תכניות C פשוטות:

הידור בעזרת gcc

כמו שראינו במדריך לשימוש ב gcc, ניתן להשתמש בדגל Wall- כדי לבקש מהמהדר לזהות יותר שגיאות בקוד. אך יש שגיאות שלא ניתן לזהות במהלך הידור התכנית, צריך לחפש אותן במהלך הריצה. תכנת gdb מאפשרת להריץ את קובץ ההרצה שיצרנו בתוך עטיפה המאפשרת לעצור את התכנית מידי פעם ולשאול שאלות (ואף לשנות) לגבי ערכי משתנים, ומצב המערכת בזמן ריצת התכנית. מטרת המעטפת לעזור למשתמש לזהות מצבים הנוצרים במהלך ריצת התכנית ואינם מתוכננים מראש.

כדי להפיק את המירב מתהליך הדיבוג צריך להשאיר בקובץ ההרצה סימנים ל gdb שיעזרו לו לתת מידע רב ככל האפשר על התכנית בזמן הריצה. אנו נבקש מהמהדר בו נשתמש gcc / g++ / as להשאיר סמנים אלו בקובץ ההרצה ע”י הדגל -g

  gcc -g -Wall hello.c -o hello

gdb

הרצת gdb עבור קובץ ההרצה hello שיצרנו בפקודה למעלה.

  gdb hello

לאחר הרצת gdb הדיבגר יחכה להוראות, אפשר ללמוד על ההוראות האפשריות ע”י הפקודה help או <help <subject

  help break

מדריך זה יעבור על מעט מהפקודות השימושיות יותר, כדי ללמוד יותר על הפקודות האפשריות מהמדריך באתר ה gnu: מדריך gdb

פקודות חשובות

אפשר ללמוד יותר על כל אחת מהפקודות הנ”ל ועל פקודות נוספות ע”י הפקודה help

  run

הרץ את התכנית

 next

כאשר התכנית במצב עצירה, קפוץ לשורה הבאה

  jump address

קפוץ למקום כלשהוא בתכנית

   break function_name / address

הגדר נקודת עצירה, נקודת עצירה יכולה להיות מספר שורה כמו 23:hello.c התכנית תעצור בשורה 23 בקובץ hello.c או שם של פונקציה כמו writeln אז התכנית תעצור כאשר תגיע לפונקציה זו.

  cont

המשך לרוץ עד לנקודת העצירה הבאה

  backtrace

הדפס את החסנית

  print var_name

הדפס תוכן משתנה

  set var_name = value

קבע תוכן משתנה

  list

הדפס את השורות של קוד המקור

  quit

צא מהדיבגר

תמונת מסך

כך צריכה להראות התכנית במסוף בו אתם מבצעים את תהליך הדיבוג.

gdb1.jpg

(לחץ על התמונה כדי לקבל תמונה מוגדלת)

איך להמשיך

בהמשך העבודה בודאי תרצו להתקין כלי פיתוח נוספים וספריות פיתוח חדשות. אפשר למצוא מדריכים לשימוש בכלים אלו ברשת ופה באתר.

מדריכי תכנות

מדריכי תכנות - אוסף מדריכי התכנות בפנגווין.

מדריכים/שימוש_בסיסי_ב_gdb.txt · שונה לאחרונה ב: 2008/06/19 18:34 (עריכה חיצונית)
chimeric.de = chi`s home Creative Commons License Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0