LMDBG

צילום מסך תוכנה:
LMDBG
פרטי תוכנה:
גרסה: 1.2.0
טען תאריך: 20 Feb 15
מפתחים: Aleksey Cheusov
רשיון: ללא תשלום
פופולריות: 16

Rating: nan/5 (Total Votes: 0)

LMDBG הוא יישום המאפשר זיהוי זיכרון leaksand משחרר כפול & nbsp;. ואולם, בניגוד לאחרים, LMDBG מייצר * stacktracesand FULL * מפריד כניסה מthusallowing הניתוח לנתח יישום על בסיס לכל מודול.
- Lmdbg-טווח הוא כלי lmdbg עיקרי. היא פועלת יישום ויוצרת קובץ יומן (או FIFO) שבו כל malloc / calloc / להקצות מחדש / memalign תפילות posix_memalign (מצביע בתים לספור,) נקרא חופשי / / רשום עם הקלט שלהם, הפלט (מצביע) ו- (!!! uniques תכונה !!!) FULL STACKTRACE (מצביעים).
לדוגמא:
& Nbsp; & nbsp; & nbsp; & nbsp; בדיקות $ חתול / test2.c
& Nbsp; & nbsp; & nbsp; & nbsp; #include
& Nbsp; & nbsp; & nbsp; & nbsp; int main ()
& Nbsp; & nbsp; & nbsp; & nbsp; {
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; חלל * p1 = NULL;
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; חלל * p2 = NULL;
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; p1 = malloc (555);
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; p2 = להקצות מחדש (p2, 666);
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; p2 = להקצות מחדש (p2, 777);
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; p2 = להקצות מחדש (p2, 888);
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; לחזור 0;
& Nbsp; & nbsp; & nbsp; & nbsp; }
& Nbsp; & nbsp; & nbsp; & nbsp; $ Gcc -O0 -g -o _test2 בדיקות / test2.c
& Nbsp; & nbsp; & nbsp; & nbsp; $ Lmdbg-טווח -o _log ./_test2
& Nbsp; & nbsp; & nbsp; & nbsp; _log חתול $
& Nbsp; & nbsp; & nbsp; & nbsp; malloc (555) -> 0xbb901400
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0xbbbe58e8
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0xbbbe5b03
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x8048738
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x8048584
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x80484e7
& Nbsp; & nbsp; & nbsp; & nbsp; להקצות מחדש (NULL, 666) -> 0xbb901800
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0xbbbe58e8
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0xbbbe5a37
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x804874e
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x8048584
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x80484e7
& Nbsp; & nbsp; & nbsp; & nbsp; להקצות מחדש (0xbb901800, 777) -> 0xbb901c00
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0xbbbe58e8
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0xbbbe5a37
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x8048764
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x8048584
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x80484e7
& Nbsp; & nbsp; & nbsp; & nbsp; להקצות מחדש (0xbb901c00, 888) -> 0xbb901800
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0xbbbe58e8
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0xbbbe5a37
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x804877a
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x8048584
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x80484e7
& Nbsp; & nbsp; & nbsp; & nbsp; $
הערה: stacktrace המלא מאפשר לך לנתח את הבקשה שלך, כלומר אתה יכול לזהות מה חוסם / רכיבים דורשים יותר זיכרון מאשר לאחרים ולמה. lmdbg-SYM הוא כלי מאוד חשוב לכך, ראה להלן.
- Lmdbg-הדלפות ניתוחי קובץ יומן שנוצר על ידי lmdbg-ריצה ופלט כל דליפות הזיכרון נמצאו
לדוגמא:
& Nbsp; & nbsp; & nbsp; & nbsp; $ Lmdbg-הדלפות _log & nbsp; & nbsp;
& Nbsp; & nbsp; & nbsp; & nbsp; להקצות מחדש (0xbb901c00, 888) -> 0xbb901800
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0xbbbe58e8
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0xbbbe5a37
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x804877a
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x8048584
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x80484e7
& Nbsp; & nbsp; & nbsp; & nbsp; malloc (555) -> 0xbb901400
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0xbbbe58e8
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0xbbbe5b03
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x8048738
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x8048584
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x80484e7
& Nbsp; & nbsp; & nbsp; & nbsp; $
- lmdbg-SYM ממיר כתובות לsource.c: 999 אם זה אפשרי
דוגמא (gdb (1) הוא בפעולה):
& Nbsp; & nbsp; & nbsp; & nbsp; $ Lmdbg-SYM ./_test2 _log
& Nbsp; & nbsp; & nbsp; & nbsp; malloc (555) -> 0xbb901400
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0xbbbe58e8
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0xbbbe5b03
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x8048738 & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; בדיקות / test2.c: 8 עיקרי
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x8048584
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x80484e7
& Nbsp; & nbsp; & nbsp; & nbsp; להקצות מחדש (NULL, 666) -> 0xbb901800
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0xbbbe58e8
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0xbbbe5a37
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x804874e & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; בדיקות / test2.c: 9 ראשי
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x8048584
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x80484e7
& Nbsp; & nbsp; & nbsp; & nbsp; להקצות מחדש (0xbb901800, 777) -> 0xbb901c00
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0xbbbe58e8
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0xbbbe5a37
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x8048764 & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; בדיקות / test2.c: 10 & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; עיקרי
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x8048584
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x80484e7
& Nbsp; & nbsp; & nbsp; & nbsp; להקצות מחדש (0xbb901c00, 888) -> 0xbb901800
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0xbbbe58e8
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0xbbbe5a37
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x804877a & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; בדיקות / test2.c: 11 & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; עיקרי
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x8048584
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x80484e7
& Nbsp; & nbsp; & nbsp; & nbsp; $
דוגמא (addr2line (1) עובד כאן):
& Nbsp; & nbsp; & nbsp; & nbsp; $ Lmdbg-SYM -a ./_test2 _log
& Nbsp; & nbsp; & nbsp; & nbsp; malloc (555) -> 0xbb901400
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0xbbbe58e8
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0xbbbe5b03
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x8048738 & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; בדיקות / test2.c: 8
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x8048584
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x80484e7
& Nbsp; & nbsp; & nbsp; & nbsp; להקצות מחדש (NULL, 666) -> 0xbb901800
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0xbbbe58e8
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0xbbbe5a37
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x804874e & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; בדיקות / test2.c: 9
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x8048584
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x80484e7
& Nbsp; & nbsp; & nbsp; & nbsp; להקצות מחדש (0xbb901800, 777) -> 0xbb901c00
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0xbbbe58e8
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0xbbbe5a37
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x8048764 & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; בדיקות / test2.c: 10
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x8048584
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x80484e7
& Nbsp; & nbsp; & nbsp; & nbsp; להקצות מחדש (0xbb901c00, 888) -> 0xbb901800
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0xbbbe58e8
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0xbbbe5a37
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x804877a & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; בדיקות / test2.c: 11
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x8048584
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x80484e7
& Nbsp; & nbsp; & nbsp; & nbsp; $
- Lmdbg-sysleaks - greps או מדלג דליפות זיכרון מערכת נמצאות בlibc, libdl, C ++ STL וכו 'ראו בדיקות / lmdbg * .conf קבצים. קבצי תצורת ברירת המחדל הם: ~ / .lmdbg.conf ו/etc/lmdbg.conf
- Lmdbg = lmdbg-ריצה + lmdbg-הדלפות + lmdbg-SYM + lmdbg-sysleaks
זה lmdbg הוא כלי ברמה גבוה יותר all-in-one.
לדוגמא:
& Nbsp; & nbsp; & nbsp; & nbsp; $ Lmdbg -v -o _log ./_test2
& Nbsp; & nbsp; & nbsp; & nbsp; דליפות זיכרון אותרו והצילו להגיש '_log'
& Nbsp; & nbsp; & nbsp; & nbsp; _log חתול $
& Nbsp; & nbsp; & nbsp; & nbsp; להקצות מחדש (0xbb901c00, 888) -> 0xbb901800
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0xbbbe58e8
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0xbbbe5a37
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x804877a & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; בדיקות / test2.c: 11 & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; עיקרי
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x8048584
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x80484e7
& Nbsp; & nbsp; & nbsp; & nbsp; malloc (555) -> 0xbb901400
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0xbbbe58e8
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0xbbbe5b03
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x8048738 & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; בדיקות / test2.c: 8 עיקרי
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x8048584
& Nbsp; & nbsp; & nbsp; & nbsp; & nbsp; 0x80484e7
& Nbsp; & nbsp; & nbsp; & nbsp; $

מה חדש בהודעה זו:

    • lmdbg-SYM כבר לא segfaults בשל בעיות עם stacktrace (3).
    • שיטת המרת כתובת פשוטה ונכונה הרבה נוספה.
    • היו speedups המשמעותי בשל אופטימיזציות לgdb.
    • בlmdbg-טווח, ווי malloc glibc כבר אינם בשימוש.
    • הקוד האישי של lmdbg אינו כלול בstacktraces.
    • אפשרות -N חדשה נוספת, ואפשרות -v קיבלה תיקון קל.
    • lmdbg-stat קיבל תיקונים לdereference NULL שהופיע אם (3) או להקצות מחדש (3) stacktrace חופשי היה ללא malloc המתאים / להקצות מחדש (3) stacktrace.
    • היו תיקונים אחרים קטין ושיפורים, שיפורים בבדיקות רגרסיה, ושיפורים בstacktrace (3).

    מה חדש בגרסת 1.1.0:.

    • תיקון בבדיקות רגרסיה
    • lmdbg-טווח: אפס כתובות יוסרו מstacktraces שנוצר על ידי המעקב לאחור של glibc (3)
    • .
    • זה מתקן טוען בlmdbg-stat (1).
    • זוגי & quot; 0x & quot; סוגיות ב& quot; סעיף & quot מידע; היו קבועים (ראה בNetBSD).
    • מעקב לאחור (3) מlibexecinfo (אם קיימים) משמש במקום מובנה ביישום.
    • lmdbg-SYM:. כמה באגים תוקנו בהמרה של כתובות לסמלים
    • lmdbg-stat: קווים חלקי לקרוא עכשיו הם התעלמו, ולכן אין יותר לטעון (3) זה כאשר יישום שמדובג נהרג
    • .
    • יישום חלופה נכתב בawk הוסר.

    מה חדש בגרסה 0.17.0:

    • גרסה זו מוסיפה המון שיפורים ותיקונים ב דפים ידניים, יכולות חדשות בlmdbg, lmdbg-טווח, וlmdbg-SYM, ותיקונים קלים לlmdbg-stat.
    • lmdbg הוא כעת כלי meta שהוא מסוגל לעשות הרבה יותר דברים, לא רק למצוא דליפות זיכרון.

    מה חדש בגרסת 0.15.1:

    • רישום של calloc (3) תפילות מנוטרל ב מערכות המבוססות על glibc (Linux, גנו / kFreeBSD, ואולי גם אחר), כי lmdbg-ריצה נכשלה עליהם.
    • נקי קופצים קטן, תיקונים ושיפורים. MK-configure & gt;. = 0.20 נדרש לבנייה

    מה חדש בגרסה 0.14.0 :

    • כלים חדשים

      : lmdbg-stat, lmdbg-grep וlmdbg-מין לאיסוף וניתוח מידע סטטיסטי על הקצאות זיכרון.

    • lmdbg-טווח: אפשרויות חדשות לlmdbg-טווח:. -S ו-M ליצירת stacktraces מקוצר
    • lmdbg-SYM:. -p האפשרות החדש לקבלת שם תכנית מהתפוקה של lmdbg-הטווח
    • תיקון: "מבחן mkcmake 'מסיר קבצים הזמניים שלה
    • .

  • תוכנה דומה

    interruptingcow
    interruptingcow

    14 Apr 15

    Frosted
    Frosted

    17 Feb 15

    Alleyoop
    Alleyoop

    15 Apr 15

    glibc-audit
    glibc-audit

    3 Jun 15

    תוכנות אחרות של יזם Aleksey Cheusov

    paexec
    paexec

    20 Feb 15

    mk-configure
    mk-configure

    20 Feb 15

    DictEm
    DictEm

    20 Feb 15

    תגובות ל LMDBG

    תגובות לא נמצא
    להוסיף הערה
    הפעל את התמונות!