سؤال

لدي مكتبة تابعة لجهة خارجية تقوم بإنشاء فئة SqlConnection واستخدامها داخليًا.يمكنني أن أرث من الفصل الدراسي، ولكن به الكثير من الأحمال الزائدة، ولم أتمكن حتى الآن من العثور على الفصل المناسب.ما أريده هو إضافة معلمة إلى سلسلة الاتصال المستخدمة.

هل هناك طريقة بالنسبة لي لوضع نقطة توقف في نواة مكتبة .NET نفسها؟على وجه التحديد في مُنشئي فئة SqlConnection، حتى أتمكن من إلقاء نظرة على تتبع المكدس ومعرفة مكان إنشائه بالفعل؟

باستثناء ذلك، هل هناك طريقة أخرى يمكنني من خلالها القيام بذلك؟

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


يحرر:حسنًا، يبدو أنني بحاجة لمزيد من المساعدة.أعتقد أنني قمت بتمكين كل ما يتعلق بدعم خادم الرموز، ولاحظت أن الدليل الذي قمت بتكوينه امتلأ بالدلائل التي تحتوي على ملفات .pdb.ومع ذلك، لا يمكنني الحصول على المصدر الفعلي لفئة SqlConnection ليصبح متاحًا.

هل هناك دليل محدد لكيفية القيام بذلك بنجاح؟

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

المحلول

وإذا لم تتمكن من استخدام تصحيح الأخطاء على مستوى المصدر باستخدام التعليمات البرمجية المصدر لإطار عمل .Net التي توفرها Microsoft، فيمكنك تجربة مصحح أخطاء مختلف.مثل mdbg أو حتى Windbg.

يحرر

هذا يشرح كيفية الحصول على الأجزاء التي تم إصدارها من .Net Framework وكيفية تعيين نقاط التوقف بتفصيل كبير.سوف يمنحك NetMassDownloader كل شيء (pdb والمصدر) في تنزيل واحد.ولكن ليست كل التعليمات البرمجية المصدر لإطار عمل .Net متاحة.إذا لم يكن SqlConnection الخاص بك متاحًا، فيمكنك دائمًا استخدام مصححات أخطاء IL مثل تلك التي ذكرتها.ولا تنس عاكس Lutz ليعطيك نظرة على الكود المصدري على أية حال.

نصائح أخرى

أنت تستطيع تنزيل كود مصدر .NET وقم بتعيين نقطة التوقف بشكل صحيح في كود مصدر .NET FW.

يمكنك استخدام NetMassDownloader للاستيلاء على مصادر .NET بسرعة.

وفقًا لهذه المقالة، يمكنك تنزيل الكود المصدري لبرنامج .NET Framework ومن ثم تصحيحه باستخدام الاستوديو المرئي:

http://weblogs.asp.net/scottgu/archive/2007/10/03/releasing-the-source-code

لقد نسيت تقريبا أن أذكر منحط - إنه مكون إضافي لـ Reflector، يسمح لك بتصحيح أخطاء أي تطبيق .net تقريبًا بدون أكواد المصدر :)

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

تأكد من الانتقال إلى Tools/Options/Debugger وإيقاف تشغيل الخيار المسمى "Just My Code".نظرًا لأن إطار العمل ليس "الكود الخاص بك"، فإن مصحح الأخطاء يمنعك بشكل غير مفيد من تعيين نقاط التوقف هناك.

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

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

حسنًا، إذا كنت تريد الدليل النهائي، فإليك ما يلي:

تكوين Visual Studio لتصحيح كود مصدر .NET Framework

إذا كنت تريد بعض المساعدة، فاستمر وأخبرنا بالخطوات التي قمت بتنفيذها؟

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