سؤال

متابعة من هذا السؤال لدي الآن رمز يمكن إرفاقه بعملية باستخدام Mdbg API.

المشكلة هي أنني لا أستطيع الانفصال عن العملية إذا كنت بحاجة لذلك.عندما أتصلmgProcess.Detach().WaitOne(); (حيث تكون mgProcess عبارة عن MDbgProcess تم إنشاؤها من كائن MDbgEngine) أحصل على رسالة الخطأ التالية:

 Process not synchronized. (Exception from HRESULT: 0x80131302)
     at Microsoft.Samples.Debugging.CorDebug.NativeApi.ICorDebugController.Detach()
     at Microsoft.Samples.Debugging.CorDebug.CorController.Detach() in C:\mdbg\src\debugger\corapi\Controller.cs:line 89
     at Microsoft.Samples.Debugging.MdbgEngine.MDbgProcess.Detach() in C:\mdbg\src\debugger\mdbgeng\Process.cs:line 716

إذا حاولت فقط الاتصال mgProcess.Detach() أو mgProcess.CorProcess.Detach() أنا حصلت على نفس النتيجة.

هل يعرف أحد الطريقة الصحيحة لفصل عملية Mdbg؟

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

المحلول

يتضح أن Mdbg لن يسمح لك بفعل أي شيء أثناء تشغيل المصحح.

  MgProcess.CorProcess.Stop(0);
  MgProcess.Detach();

ويبدو أن الطريق إلى الأمام.

نصائح أخرى

جرب هذا:

proc.AsyncStop();
proc.Detach();

أو

Proc.CorProcess.Stop(0);  
Proc.Detach();
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top