سؤال

إذا كان لدي DLL (تم إنشاؤه في وضع الإصدار) وملف PDB المقابل، فهل من الممكن تصحيح الفئات / الأساليب (STEP-THE) الواردة في DLL؟

إذا كان الأمر كذلك، فما هي الخطوات / التكوين المطلوبة (مثل وضع ملف PDB)؟

يحرر:

إذا كان لديك ملف PDB في نفس المكان مثل DLL (في دليل BIN / DEBUG من تطبيق اختبار وحدة التحكم البسيطة). أستطيع أن أرى أن الرموز الخاصة ب DLL يتم تحميلها (في نافذة الإخراج وأيضا في نافذة الوحدات النمطية)، ولكن لا يزال لا يمكنني التدخل في طرق ذلك DLL.

هل يمكن أن يكون هذا نتيجة تحسينات المترجم (كما هو موضح من قبل مايكل في إجابته)؟

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

المحلول 3

وأخيرا وجدت ما سبب تصحيح المشاكل DLL تم بناؤها في تكوين الإصدار:

بادئ ذي بدء، يعمل بشكل أساسي كما هو متوقع. مما يعني، إذا كان لدي DLL المدمج في تكوين الإصدار بالإضافة إلى ملف PDB المقابل، فيمكنني تصحيح الفئات / الأساليب الموجودة في DLL.

عندما حاولت لأول مرة، حاولت للأسف خطوة إلى أساليب لفئة Detwuggstepthroughattribute., ، على سبيل المثال:

[System.Diagnostics.DebuggerStepThrough]
public class MyClass {
    public void Test() { ... }
}

في هذه الحالة، لا يمكن بالطبع بالطبع التدخل في الطريقة من المصحح (كما هو متوقع / مخصص).

لذلك كل شيء يعمل كما هو المقصود. شكرا كثيرا لاجاباتك.

نصائح أخرى

يتم اكتشافه PDB (بالنسبة لي على الأقل) إذا كان بجوار DLL (مثل مع ملفات XML IntelliSense).

بدلا من ذلك؛ ستحتاج إلى نقطة استراحة بعد تحميل الوحدة ...

عند نقطة الاستراحة، قم بإحضار نافذة "الوحدات النمطية" (CTRL + D، M - أو Debug-> وحدات Windows->). انقر بزر الماوس الأيمن فوق DLL "تحميل الرموز من"، "مسار رمز"، إلخ.

نعم، يمكنك تصحيح رمز الإصدار مع PDB. هناك بعض المزالق ولكن مع تصحيح الأخطاء الأمثل، والمزيد من المعلومات هنا و هنا.

يجب أن يكون PDB الخاص بك فقط في مكان يمكن أن يجده مصحح الأخطاء - لأن دليل تصحيح الأخطاء المحلي مثل DLL عادة ما يكون أسهل. خلاف ذلك، ضعها في مكان ما يمكن أن يجده مصحح الأخطاء، وأشر إلى مصحح الأخطاء في هذا المكان باستخدام مسار الرمز.

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

يمكن تخزين ملفات PDB في خادم الرمز. الدفع إعداد خادم الرمز للحصول على برنامج تعليمي جيد. ينشر كل منتج ننثيه على جهاز الإنشاء الرموز إلى خادم الرمز الخاص بنا، حتى نتمكن من تصحيح أي مقالب تعطل نتلقاه من Winqual.

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