לאחרונה הוכרזה שחרור הגרסה החדשה של מאתר הבאגים של GDB 14.1, זוהי הגרסה הראשונה של סדרת 14 ובה נוספו מספר רב של פונקציות, תכונות, מחלקות ואירועים חדשים, כמו גם שיפורי תמיכה, תיקוני באגים ועוד.
למי שלא יודע על GDB, כדאי לדעת שזה הוא מאתר באגים עבור פרויקט GNU, ו-debugger זה מאפשר לך "לראות" מה קורה "בתוך" תוכנית אחרת בזמן שהיא פועלת, או מה תוכנה אחרת עשתה בזמן שהיה כשל.
Gdb יכול לעשות ארבעה סוגים עיקריים של דברים (בנוסף לדברים אחרים התומכים באלה) כדי לעזור למשתמש לזהות שגיאות בביצוע תוכניות:
- הפעל תוכנית, ציין כל דבר שעשוי להשפיע על ההתנהגות שלה.
- יש לו את היכולת לעצור את התוכנית בתנאים ספציפיים.
- בדוק מה קרה כשהתוכנית הפסיקה.
- שנה דברים בתוכנית, כך שהמשתמש יוכל להתנסות בתיקון ההשפעות של שגיאה אחת ולהמשיך ללמוד על אחרת.
תוכניות אלה יכולות להיות פועלות על אותו מכונה כמו GDB (מקורית), על מכונה אחרת (מרוחק), או בסימולטור. GDB יכול לפעול על רוב הגרסאות הפופולריות של UNIX ו-Microsoft Windows, כמו גם macOS.
Gdb תומך בניפוי באגים ברמת המקור עבור מגוון רחב של שפות תכנות, כגון: Ada, Assembly, C, C++, D, Fortran, Go, OpenCL, Objective-C, Modula-2, Pascal ו-Rust.
תכונות חדשות עיקריות של GDB 14.1
בגרסה החדשה הזו שמוצגת של GDB 14.1, זה תמיכה משולבת ראשונית עבור פרוטוקול מתאם ניפוי באגים (DAP) שפותחה על ידי מיקרוסופט וזה מאפשר הטמעת באגים גנרי כך שכלי הפיתוח יוכלו לתקשר עם מאפי הבאגים השונים באמצעות מתאמי איתור באגים, שבתורם ניתן לעשות שימוש חוזר בכלי פיתוח מרובים, זה בעצם מסתכם במאמץ לתמוך במפרק חדש בכלים שונים.
עוד מהשינויים הבולטים בגרסה החדשה הזו הם ה תמיכה שיפורים שיושמו, כמו ה תמיכה ראשונית עבור סוגי מספרים שלמים גדולים מ-64 סיביות, תמיכה בהפעלה או השבתה של פונקציות יעד מרוחקות בודדות, כמו גם תמיכה משופרת באדה עבור Ada 2022 מייחסים 'Enum_Rep ו'Enum_Val.
בנוסף, GDB מזהה כעת את משתנה הסביבה NO_COLOR ו יש תמיכת AArch64 משופרת, מאז נוספה תמיכה ראשונית עבור הרחבה SME ו-SME2.
יתר על כן, תכונות והגדרות GDB הוסרו הנתמכים כבר עם המהדורה החדשה, לדוגמה GDB 14.1 אינו תואם עוד ל-AiX 4.x, 5.x ו-6.x, התמיכה ב-GDB/MI גרסה 1 הוסרה.
נוספה פונקציית $_shell" לביצוע פקודה במעטפת ולהחזיר את התוצאה, הפקודה "רשימה" מקבלת כעת את '.' כארגומנט, כדי להדפיס את המיקום של נקודת הביצוע במסגרת המחסנית הנוכחית, הוסיף "%V" לפורמט הפלט עבור הפקודות printf ו-dprintf, הפקודה printf מגבילה כעת את גודל המחרוזות המתקבלות מפחות מהערך של ההגדרה 'max-value-size' ונוספו פקודות איתור באגים ותחזוקה חדשות.
לגבי שיפורים בתמיכה ב-Python, זו הייתה זו שקיבלה הכי הרבה והדבר הבא בולט:
- שיעורים חדשים: gdb.Thread, gdb.unwinder.FrameId, gdb.ValuePrinter
- תכונות חדשות: gdb.Lower.arguments, אשר שומר את הארגומנטים של שורת הפקודה למטה, אם ידוע, gdb.Lower.main_name, המכיל את שם ה'ראשי' של התחתון, אם ידוע, gdb.Breakpoint.Lower, gdb.Progspace.symbol_file, gdb.Progspace.executable_filename
- פונקציות חדשות: gdb.execute_mi(COMMAND, [ARG]...), gdb.block_signals()
- שיטות חדשות: gdb.Value 'to_array', gdb.Progspace 'objfile_for_address', 'gdb.Frame.static_link, gdb.Inferior 'clear_env', 'set_env' ו-'unset_env'
- אירועים חדשים: gdb.ThreadExitedEvent, gdb.ExecutableChangedEvent gdb.NewProgspaceEvent, ו-gdb.FreeProgspaceEvent.
- ה-API של Disassembler של מודול gdb.disassembler הורחב כך שיכלול תמיכה בעיצוב
gdb.parse_and_eval - התכונה gdb.unwinder.Unwinder.enabled יכולה כעת לקבל רק ערכים מסוג 'bool'.
כעת כבר לא ניתן לסווג משנה את סוג gdb.disassembler.DisassemblerResult.
לבסוף, אם אתה מעוניין לדעת יותר על כך, אתה יכול לבדוק את הפרטים ב הקישור הבא.