كيف يمكنني أخذ لقطة سريعة للعملية للحفاظ على حالتها للتحقيق المستقبلي؟هل هذا ممكن؟

StackOverflow https://stackoverflow.com/questions/138255

  •  02-07-2019
  •  | 
  •  

سؤال

لا أعرف ما إذا كان هذا ممكنًا، لكنه سيكون مفيدًا جدًا!

لدي عملية تفشل بشكل دوري (تعمل في نظام التشغيل Windows 2000).لدي بعد ذلك فرصة واحدة فقط للرد عليه قبل الاضطرار إلى إعادة تشغيله والانتظار المؤلم حتى يفشل مرة أخرى.لم أكتب العملية لذا ليس لدي المصدر لتصحيح الأخطاء.ويبدو أن الفشل عشوائي.

ومن خلال لقطة سريعة للعملية، تمكنت من اختبار ردود الفعل على الفشل بشكل متكرر وسريع.

لقد فكرت في الركض داخل جهاز افتراضي ولكن هذا غير ممكن في هذه الحالة.

يحرر:سأل @جون كيج:

عندما تقول لقطة، فإنك تعني التقاط عملية عندما تكون على وشك الفشل (بما في ذلك الذاكرة وحالة البرنامج وما إلى ذلك).إلخ.) ... ثم قم بإعادة تشغيل الثواني القليلة الأخيرة بشكل متكرر لمعرفة تأثيرها على بعض المكونات الأخرى؟

هذا هو بالضبط ما أعنيه!

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

المحلول

أظن تفريغ صغير هو ما تبحث عنه.

يمكنك أيضًا استخدام مستخدم:

تقوم عملية وضع المستخدم بعملية Dumper (UserDump) التي تقوم بتشغيل صورة الذاكرة WIN32 (بما في ذلك عمليات النظام مثل CSRSs.exe ، و winlogon.exe ، أو الخدمات.يمكن تحليل ملف التفريغ الذي تم إنشاؤه أو تصحيحه باستخدام أدوات التصحيح القياسية.

هذا شرط يوضح لك كيفية استخدامه.

نصائح أخرى

أفضل رهان لدي هو بدء العملية في مصحح الأخطاء (OllyDbg كونها أداتي المفضلة).ستتوقف العملية مؤقتًا عند حدوث استثناء، ويمكنك محاولة معرفة ما حدث قبل ذلك بوقت قصير.

يتطلب هذا بعض الفهم للمجمّع ولا يسمح بإنشاء لقطة للعملية لتحليلها لاحقًا.ستحتاج إلى كتابة مصحح الأخطاء الخاص بك لذلك - يجب أن يكون ذلك ممكنًا من الناحية النظرية.

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