LMDBG

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

Rating: 5.0/5 (Total Votes: 1)

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 'מסיר קבצים הזמניים שלה
    • .

  • תוכנה דומה

    jTracer
    jTracer

    17 Feb 15

    Pyshield
    Pyshield

    11 May 15

    VimPdb
    VimPdb

    11 May 15

    Alleyoop
    Alleyoop

    15 Apr 15

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

    DictEm
    DictEm

    20 Feb 15

    mk-configure
    mk-configure

    20 Feb 15

    runawk
    runawk

    19 Feb 15

    תגובות ל LMDBG

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