ארכיון יומי: 11 ינואר, 2009

להכיר את strace

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

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

פקודות מערכת הם פקודות שנמצאות בספריית c (המוכרת בשם libc או במימוש glibc שלה) של המערכת. המידע שאנחנו יכולים לקבל הוא מה הקריאה ששתמשנו, עם הפרטמרים מלאים של הפקודה עם התוכן שהזנו ן, וכן מה קיבלנו מהשימוש בפונקציות המערכת, כלומר תשובת החזרה שלה. וזה בלי להשתמש בהוראות לניפוי שגיאות או משהו מיוחד.

פעולה כזו יכולה לעזור לנו לדוגמא למצוא למה התוכנה שאנחנו משתמשים בה קורסת אחרי שאנחנו נותנים לה לפתוח קובץ. או מה מה שגיאת ה I/O שחוזרת לנו בניסיון עבודה עם קבצים למשל, כאשר המתכנת לא השתמש ביכולות לתפוס שגיאות במערכת ולטפל בהם כמו שצריך.

בשביל להבהיר את הנושא, ניקח לדוגמא תוכנית קטנה שמדפיסה לנו על המסך את המילה Hello World: להמשיך לקרוא