سؤال

كنت أبحث في Valgrind للمساعدة في تحسين ترميز/تصحيح الأخطاء الخاص بي عندما اكتشفت أنه مخصص لنظام Linux فقط - ليس لدي أي حاجة أو مصلحة أخرى في نقل نظام التشغيل الخاص بي إلى Linux لذلك كنت أتساءل عما إذا كان هناك برنامج جيد بنفس القدر لنظام التشغيل Windows.

هل كانت مفيدة؟

المحلول

بعض الأدوات التجارية الجيدة:

نصائح أخرى

كما أشار jakobengblom2، فإن valgrind لديه مجموعة من الأدوات.اعتمادًا على الجزء الذي تتحدث عنه، هناك أجزاء مختلفة من نوافذ النوافذ.سأذكر فقط OSS أو الأدوات المجانية هنا.

1.التحقق من الذاكرة:

دكتور.ذاكرة.إنها أداة جديدة نسبيًا، وتعمل بشكل جيد جدًا على Windows 7.الميزة المفضلة لدي هي أنها تقوم بتجميع مجموعات تخصيص التسريبات نفسها في التقرير.

http://code.google.com/p/drmemory/

لقد استخدمت أيضًا UMDH( http://support.microsoft.com/kb/268343 ) ووجدته مفيدًا وسهل الإعداد.يعمل من Win2000 إلى Win7.

يعد AppVerifier أداة لا غنى عنها لمطوري التعليمات البرمجية الأصلية لنظام التشغيل Windows، حيث يقوم مدقق "الذاكرة" الخاص به بعمل مماثلhttp://msdn.microsoft.com/en-us/library/dd371695%28v=vs.85%29.aspx

2.دعوة:

المفضل لدي هو النعاس جدا ( http://www.codersnotes.com/sleepy ) إنها صغيرة ولكنها مفيدة جدًا وسهلة الاستخدام.

إذا كنت بحاجة إلى المزيد من الميزات، فإن برنامج AMD CodeAnalyst™ Performance Analyzer مجاني:http://developer.amd.com/documentation/videos/pages/introductiontoamdcodeanalystperformanceanalyzer.aspx

أدوات تحليل أداء Windows مجانية من Microsoft، وليست سهلة الاستخدام للغاية ولكن يمكنها إنجاز المهمة إذا كنت على استعداد لقضاء الوقت. http://blogs.microsoft.co.il/blogs/sasha/archive/2008/03/15/xperf-windows-performance-toolkit.aspxتحميل:http://msdn.microsoft.com/en-us/performance/cc752957

3.كتلة صخرية:

الأدوات المجانية المشابهة (غير المطابقة تمامًا) على نظام التشغيل Windows هي:

VMMap من sysinternals : http://technet.microsoft.com/en-us/sysinternals/dd535533

!heap الأمر في Windbg : http://hacksoflife.blogspot.com/2009/06/heap-debugging-memoryresource-leak-with.html

4.ذاكرة التخزين المؤقت:

تتمتع أدوات أداء Windows المذكورة أعلاه بمستوى معين من القدرة على إنشاء ملفات تعريف لذاكرة التخزين المؤقت L2 ولكنها ليست جيدة تمامًا وسهلة الاستخدام مثل Cachegrind.

5.دي آر دي:

لم تجد أي شيء مجاني وقوي على Windows حتى الآن ، فإن الأداة المجانية الوحيدة لنظام التشغيل Windows التي يمكنني العثور عليها قريبة قليلاً هي المدقق "Lock" في AppVerifier:http://msdn.microsoft.com/en-us/library/dd371695%28v=vs.85%29.aspx

لماذا لا تستخدم Valgrind + النبيذ لتصحيح التطبيق ويندوز الخاص بك؟ نرى    http://wiki.winehq.org/Wine_and_Valgrind

و(الكروم يستخدم هذا للتحقق من نسخة ويندوز لأخطاء الذاكرة، وانظر   build.chromium.org وإلقاء نظرة على الشلالات التجريبية أو الذاكرة، والبحث عن النبيذ).

وهناك أيضا الدكتور الذاكرة، انظر   dynamorio.org/drmemory.html

بالنسبة لـ Visual C++، حاول كاشف التسرب البصري.عندما استخدمته، اكتشف تسربًا للذاكرة من ملف new اتصل وأعاد السطر الفعلي في الكود المصدري للتسرب.يمكن العثور على الإصدار الأخير في http://vld.codeplex.com/.

وتنمية البيئة لWindows الذي تستخدمه قد تحتوي على أدواته الخاصة. البصرية ستوديو، على سبيل المثال، يتيح لك كشف وعزل الذاكرة تسرب في البرامج الخاصة بك

أود أن أذكر بعض الأدوات، وآمل أن تكون مفيدة

اقرا هذا شرط لمزيد من التفاصيل

  1. تنقية
  2. مدقق الحدود
  3. التغطية (في الأساس عبارة عن محلل كود، ولكنها ستكتشف تسرب الذاكرة في حالة ثابتة)
  4. كود التوهج
  5. com.dmalloc
  6. com.ccmalloc
  7. نجامد
  8. يامد
  9. فالغريند
  10. mptrol
  11. تأمين++

وهناك Pageheap.exe جزءا من أدوات التصحيح ويندوز. انها حرة وهو في الأساس ذاكرة مخصصة مخصص / deallocator.

http://support.microsoft.com/kb/286470

في مزيج مع Visual Studio أنا عموما استخدام البصرية كاشف تسرب أو ببساطة _CrtDumpMemoryLeaks () الذي هو واجهة برمجة تطبيقات Win32 و مكالمة. كلاهما يتوهم شيئا ولكنها تحصل على هذه المهمة.

ولقد سنحت لي الفرصة لاستخدام الخليج العربي للتنمية DevPartner ستوديو في الماضي والتي كانت جيدة، لكنها مكلفة للغاية. يمكن أن يكون هناك حل أرخص GlowCode ، عملت فقط مع 5.x الإصدار، وعلى الرغم من بعض المشاكل في إرفاق إلى عملية كنت بحاجة إلى تصحيح، لأنها عملت بشكل جيد جدا.

ولقد تم المحبة الذاكرة المصادقة ، من شركة تدعى البرمجيات التحقق.

وViusual ستوديو يمكن أن تساعد في الكشف عن تسرب الذاكرة نفسها. انظر نصائح مايكروسوفت البصرية C ++ والخدع -> قسم "تسرب الذاكرة". انظر أيضا هذا المنصب href="https://stackoverflow.com/questions/413477/is-there-a-good-valgrind-substitute-for-windows/413709#413709">

وعلى الرغم من أن تتبع الحقيقي هو الوحيد الممكن مع فريق Edtion ومن Visual Studio.

وانظر " أدوات المصدر اختبار " الموجود على اختبار البرمجيات QA الصفحة واختبار الموارد أداة للحصول على قائمة أدوات مماثلة.

ولقد استعملت BoundsChecker، DevPartner ستوديو وإنتل V اللحن في الماضي لالتنميط. أحببت V اللحن أفضل. هل يمكن أن تحاكي مختلف شرائح إنتل وسيكون تعطيك تلميحات حول كيفية تحسين لهذا النظام الأساسي.

كاشف تسرب الذاكرة جوشن مجد موسى في التأهل؟

وPS: وURL إلى أحدث إصدار دفن في مكان ما في المقال موضوع التعليق

وLeakDiag، UMDH، التطبيقات متحقق، DebugDiag، كلها أدوات مفيدة لتحسين متانة رمز وتجد تسرب الذاكرة.

والمكتبة دفعة اختبار يمكن الكشف عن تسرب الذاكرة.

وماذا عن تنقية ؟

وحاول المنتج المفتش XE إنتل التي يمكن أن تساعدك على كشف كل من الذاكرة والقضايا خيوط: <لأ href = "http://software.intel.com/en-us/articles/intel-inspector-xe/" يختلط = " نوفولو "> http://software.intel.com/en-us/articles/intel-inspector-xe/

ولعل CodeSnitch يكون شيئا كنت بعد؟ http://www.entrek.com/codesnitch.html

إذا كنت تقوم بتطوير مع بورلاند / CodeGear / EMBARCADERO C ++ باني، يمكنك استخدام CodeGuard.

وأكثر أو أقل كل المحللون تشمل التحقق من وجود تسرب الذاكرة وتظهر لك كومة عندما تم تخصيص الذاكرة.

ويمكنني أن أوصي إنتل المفتش الموازي . سهلة الاستخدام ولا يحتاج إعادة تجميع. النسخة التجريبية يعمل لمدة 30 يوما.

GlowCode و <لأ href = "http://www.automatedqa.com" يختلط = " نوفولو noreferrer "> AtromatedQA أيضا تشمل هذه capabilites. أنها توفر جميع التجارب الحرة.

والخليج العربي للتنمية DevPartner (الملقب BoundsChecker) في التباين يحتاج الى تباطأ "الأجهزة" إعادة ترجمة وتشغيل التطبيق أيضا أبطأ عند التحقق من وجود أخطاء. وBoundsChecker لا يمكن أن تعمل مع 64 بت evsrions على الإطلاق. نحن تخلى عن تلك الأداة.

وأفضل أداة كنت من أي وقت مضى هي DevPartner BoundsChecker - انها ليست مجانية ولكن لديه فترة التقييم.

وأداة ذاكرة أخرى لقائمتك: الذاكرة المصادقة

وليست حرة، ولكن في أي مكان بالقرب مرتفعة كما تنقية أو Boundschecker.

إذا كنت لا تخاف من مينغو، وهنا بعض الروابط (البعض قد عمل مع MSVC) ... http://betterlogic.com/roger/؟p=1140

ونحن مجرد الانتهاء من الذاكرة السلامة فحص أداة للحصول على ويندوز، الذي يعالج دول مجلس التعاون الخليجي وMicrsoft البصرية C (وليس C ++ بعد)، ويبحثون عن اختبار بيتا.

وتحرير 12 يونيو 2011: ليس بيتا بعد الآن، الآن الإنتاج لدول مجلس التعاون الخليجي و Microsoft Visual C ستوديو

ولقد وجدت هذا المشروع SF اليوم:

http://sourceforge.net/p/valgrind4win/wiki/Home/

وانهم ترقية valgrind إلى Windows. ربما في عدة سنوات سيكون لدينا valgrind موثوق على النوافذ.

وتحقق من هذا السؤال: هل هناك بديل Valgrind جيد ويندوز ؟ . على الرغم من طلب بديل العام للvalgrind، فإنه يناقش أساسا للكشف عن تسرب الذاكرة وليست شروطا سباق المكتشفة.

واعتدت إنشور ++ التي لا وظيفة ممتازة في إيجاد ج ++ تسرب الذاكرة / الفساد والعديد من الحشرات الأخرى مثل متغيرات غير مهيأ، والأخطاء المؤشر، سلاسل وما إلى ذلك، كما أنه لا مرئية "تغطية كود" ووقت التشغيل استخدام الذاكرة الخ .. التي تعطي أكثر ثقة في التعليمات البرمجية الخاصة بك .. يمكنك محاولة لإصدار درب ..

وقد ترغب في قراءة ما موزيلا تقوم به بشأن تسرب الذاكرة. أداة واحدة في الأدوات التي هي جمع القمامة هانز بوهم تستخدم الذاكرة للكشف عن تسرب .

يمكنك المحاولة RuntimeChecker محاكمة بعد ذلك ل تنقية آي بي إم محاكمة..

الحل المجاني هو استخدام الكود التالي في Visual Studio:

#ifdef _DEBUG
#define new DEBUG_NEW
#endif

ما عليك سوى كتابة هذا في الجزء العلوي من جميع ملفات cpp الخاصة بك.سيؤدي هذا إلى اكتشاف تسرب الذاكرة لتطبيقك عند إيقاف تشغيل تصحيح الأخطاء وإدراجها في نافذة الإخراج.سيؤدي النقر المزدوج على خط تسرب الذاكرة إلى تسليط الضوء على السطر الذي يتم فيه تخصيص الذاكرة وعدم تحريرها أبدًا.قد يساعدك هذا: http://www.flipcode.com/archives/How_To_Find_Memory_Leaks.shtml

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top