در حال حاضر فقط برای لینوکس کار می کند. DBGMEM است تحت شرایط گنو الجیپیال منتشر شد
ابزار شما کمک می کند تا برای پیدا کردن مشکلات مانند
از & nbsp؛ 1. نشت حافظه
از & nbsp؛ 2. فساد حافظه پشته
از & nbsp؛ 3. سوء استفاده، استدلال غیر قانونی به توابع کتابخانه استاندارد انتخاب شده.
از & nbsp؛ 4. پشته فساد
از & nbsp؛ 5. استفاده از آزاد یا سازمان ملل متحد مقداردهی اولیه حافظه پشته.
از & nbsp؛ 6. اجازه می دهد تا شما را به گسترش ابزار، چک استدلال API های اضافی را
ابزار باطل حافظه از glibc توابع تخصیص، حافظه و توابع دستکاری رشته به منظور اضافه کردن ویژگی های آن است.
DBGMEM هیچ تغییر به برنامه های خود را نیاز ندارد، هر چند شما ممکن است مایل به تغییر برنامه خود را به منظور استفاده از برخی از ویژگی های پیشرفته.
DBGMEM دیباگر حافظه منبع باز برای C و C ++ برنامه است و اجرا می شود تحت سیستم عامل لینوکس، و تحت گنو الجیپیال منتشر شد. DBGMEM اضافه می کند چک اشکال زدایی به بخش هایی از از کتابخانه استاندارد از glibc. آن را به عنوان کتابخانه های اشتراکی است که به فضای آدرس فرآیند دیباگ لود اجرا شده است.
ابزار
DBGMEM دارای چندین ابزار اشکال زدایی حافظه، هر را می توان به برنامه دیباگ لود. ابزار ساده نگه می دارد آهنگ از تمام بلوک حافظه اختصاص داده، و می افزاید: کتاب نگهداری اطلاعات، مانند پشته در زمانی که بلوک، اختصاص داده به یک هدر عرصه که پیش از بلوک حافظه اختصاص داده شد. آن را نیز قبل و بعد از بلوک اختصاص داده اضافه می کند یک کلمه گارد. ابزار ساده است بهترین راه حل برای تشخیص مشکلات نشت حافظه استفاده می شود؛ به عنوان هدر عرصه می توانید توسط این برنامه است که در حال دیباگ خراب. چک کردن زمان نگه می دارد تمام اطلاعات کتاب حفظ کردن پشته در یک فایل حافظه نقشه برداری ناشناس. این باعث می شود از ابزار قوی تر به مقاومت در برابر حافظه جای نوشتن اشکالات. ابزار چک کردن همچنین می افزاید: توانایی به سرعت نگاه کردن اطلاعات بر روی هر بلوک پشته برای ارزش اشاره گر موجود در آن بلوک پشته. ابزار چک کردن اعتبار می افزاید پارامترهای به رشته مشترک و توابع دستکاری حافظه، و چک برای پشته ممکن است فوق العاده توسط این توابع.
نحوه عمل
شما می توانید بسیاری از برنامه های با دیباگر اجرا به عنوان است. ابزار آیا این برنامه دیباگ نیاز به با هر کتابخانه خاص مرتبط است. ابزار یک کتابخانه به اشتراک گذاشته است که به فضای آدرس فرآیند است که با استفاده از تکنیک تزریق DLL بررسی لود شده است. ویژگی LD_PRELOAD از لینکر پویا استفاده می شود برای بارگذاری ابزار برای اولین بار به اشتراک گذاشته کتابخانه، قبل از هر گونه دیگر کتابخانه لود. تخصیص حافظه و عملکرد دستکاری رشته می ره و برای اولین بار به نام از کتابخانه ابزار. این را قادر می سازد از ابزار برای اضافه کردن چک آن است. در طول زمان اجرا از روند دیباگ گزارش خام نوشته شده است که بیشتر پس از اتمام فرایند دیباگ پردازش. گزارش افزوده نام تابع نمادین می افزاید: به پشته آثار موجود در این گزارش خام است. دیباگر GDB استفاده می شود به نوبه خود آدرس عددی به آدرس نمادین در طول پردازش بیشتر از گزارش اولیه
ویژگی ها:.
نشت حافظه. این شامل هر دو از ابزار چک کردن و ابزار ساده است. ابزار آهنگ هر بلوک پشته اختصاص داده همراه با ردیابی پشته گرفته در زمانی که بلوک اختصاص داده شد. علاوه بر این یک تگ عدد صحیح با تخصیص هر نگه داشته، این ارزش آهنگ یک دوره منطقی / `نسل 'که از مشخصه زمانی که بلوک اختصاص داده شد. گزارش از این اطلاعات است که همیشه در هنگام خروج فرآیند تولید، و یا زمانی که توسط کاربر درخواست شده است. این اطلاعات کمک می کند تا برای پیدا کردن موارد و علل نشت حافظه.
استفاده از حافظه پشته مقداردهی اولیه نشده است و یا حافظه پشته آزاد. این شامل هر دو از ابزار چک کردن و ابزار ساده است. ابزار مجموعه تمام حافظه اختصاص داده شده به تازگی مقدار بایت 0xDD و تمام حافظه آزاد به مقدار بایت 0xEE. استفاده از این ارزش ها معمولا منجر به برنامه اشتباهات، اگر این سطح حافظه شامل یک اشاره گر، سپس بصورت غیر مرجع از یک اشاره گر با ارزش 0xDDDDDDDD خواهد به سقوط منجر شود.
فساد حافظه پشته. این شامل هر دو از ابزار چک کردن و ابزار ساده است. چک ابزاری برای حافظه بازنویسی و پشتوانه با قرار دادن یک پیشوند و پسوند حافظه در هر بلوک پشته. اگر مقدار پسوند تغییر است و سپس بازنویسی پشته / تضمین شناسایی شده است.
این امر به 'ابزار چک کردن' '' '' '' تنها. سوء استفاده از توابع دستکاری رشته از glibc و کپی حافظه / توابع حرکت از glibc. پشته فساد آن دسته از توابع بررسی ابزار می شود یک پاس برای اولین بار در توابع مشترک کتابخانه استاندارد، آن است که بررسی می شود که تابع یک بلوک پشته استدلال موجود بنویسید. آن را نیز بررسی می شود که پشته از موضوع فراخوانی خواهد خراب نمی شود.
به چه چیزی جدید در این نسخه است:
در حال حاضر را می شود متغیر محیطی CFLAGS
ساخت dbgmem کتابخانه با گزینه -ldl
کتابخانه مشترک در حال حاضر به معاونت / دلار است (uname -r) دایرکتوری، به عنوان از glibc به نسخه کرنل ازدواج کرد.
تدوین ثابت در برخی از سیستم های (مرحله پیکربندی)
اضافه کردن گزینه به اجرا اسکریپت (متر - تولید پشته آثار تنها برای برخی از نسل)
در نسخه 1.9.1 چه جدید است:
را به روز اسکریپت، اکنون تلاش می کند تا تشخیص لازم تنظیمات ساخته شده است؛ هنوز هم در حال حاضر چگونه به انجام نمی automake هر چند
خطای کامپایل در حالت C برای شورای همکاری خلیج فارس 2.9.6 ثابت. شورای همکاری خلیج فارس هنوز هم با خطای داخلی، در C ++ حالت ساخته شده است سقوط
اضافه -G گزینه (غیر فعال کردن چک برای جفت شدن از malloc / جدید / جدید [] و آزاد / حذف / حذف [] در C ++ حالت)
در چه در نسخه 1.7 جدید است:
اضافه شدن گزینه اف را دنبال چنگال و exec تماس (مانند در چنگال / EXEC)
در حال حاضر چاپ خط فرمان از روند دیباگ در هدر فایل گزارش.
نقشه نام فایل در حال حاضر شامل PID.
حذف فایل های گزارش خام به طور پیش فرض. بیش از حد بسیاری از آنها وجود دارد.
همه موارد استفاده از sprintf تغییر به snprintf
نظر یافت نشد