كيف أقوم بتعيين نقطة توقف البيانات في تصحيح الأخطاء المختلط (C#/C++)؟
-
04-07-2019 - |
سؤال
أقوم بتشغيل برنامجي بلغة C#، والذي يستدعي بعد ذلك بعض لغات C++ غير المُدارة.
عندما أقوم بفصل سطر في C++ غير مُدار، يصبح عنصر القائمة "نقطة توقف البيانات الجديدة" باللون الرمادي.
هل هناك أي طريقة للتغلب على هذه؟
المحلول
لتعيين نقطة توقف بيانات في الجزء الأصلي من عملية وضع مختلط، راجع الإجابة المرسلة بواسطة jyoung .
والبصرية ستوديو تعطيل نقاط التوقف البيانات عند تشغيل أي شيء، ولكن التعليمات البرمجية الأصلية النقي. انظر هذا أ > آخر لتفسير جزئي لماذا من مدير برنامج VS.
نصائح أخرى
لذلك للقيام بذلك كان علي أن:
- قم بتعيين ملف dll غير المُدار كمشروع بدء التشغيل
- قم بتعيين البرنامج المُدار كأمر بدء التشغيل
- اضبط وضع التصحيح على أنه محلي
- "كسر التنفيذ" أو اضغط على نقطة توقف بحيث تكون في حالة "تصحيح الأخطاء".
نعم
الحل المقترح لا يعمل طوال الوقت.حتى عند تصحيح الأخطاء في الوضع الأصلي، مع كسر البرنامج في جزء أصلي من التعليمات البرمجية، عند محاولة تعيين "نقطة توقف بيانات جديدة" أحصل على نافذة منبثقة "لا يمكن تعيين نقطة التوقف.نقاط توقف البيانات غير مدعومة في وقت تشغيل اللغة العامة"
البديل هو إضافة نقاط توقف البيانات من التعليمات البرمجية مباشرة.انظر المقال هنا.
يعمل هذا بشكل جيد في الوضع المختلط، ويتطلب فقط أن يكون وضع التصحيح الأصلي نشطًا (كما هو مقترح أعلاه)
وخدعة مفيدة جدا التي تعمل في كل مكان لاستدعاء نقاط من التعليمات البرمجية في الشروط الخاصة:
If (Condition)
System.Diagnostics.Debugger.Break()