كيف يمكنني تغيير مواقع الملفات المصدر في رموز الملف (pdb)

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

  •  09-06-2019
  •  | 
  •  

سؤال

أساسا ما كنت تريد أن تفعل هذا:وهو ملف pdb على موقع الملفات المصدر (على سبيل المثال C:\dev\proj1\helloworld.cs).هل من الممكن تعديل هذا ملف pdb بحيث يحتوي على موقع آخر (على سبيل المثال \more\differenter\location\proj1\helloworld.cs)?

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

المحلول

يمكنك استخدام مصدر الفهرسة ميزة من أدوات التصحيح لـ Windows ، والذي سيوفر المراجع المناسبة مراجعة الملفات في المصدر مستودع كبديل تيار في ملف PDB.

نصائح أخرى

إذا كنت تبحث ليكون أكثر عمومية حول مسارات المضمنة في ملف pdb, هل يمكن أن الأولى استخدام MS-DOS subst الأمر الخريطة مجلد معين إلى حرف محرك أقراص.

subst N: <MyRealPath>

ثم فتح المشروع الخاص بك نسبة إلى N:محرك الأقراص وإعادة بنائه.الخاص بك ملفات PDB مرجع الملفات المصدر على N:.الآن لا يهم أين أنت المكان أن مجموعة معينة من الملفات المصدر ، طالما يمكنك الاتصال في وقت لاحق الدليل الجذر "ن:" كما فعلت عندما كنت بناء عليه.

هذه الممارسة الموصى بها من قبل جون روبنز في كتابه الممتاز, التصحيح تطبيقات Microsoft .NET و Microsoft Windows.

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

بعد البحث حول وعدم العثور على شيء يعمل ، اكتشفت أن لو كنت مكان الملف التنفيذي و PDB إلى جانب ملف تفريغ التعطل (أيفي نفس الدليل) ثم فتح وتشغيل تفريغ التعطل في مباراة, مباراة سوف تجد واستخدام PDB/EXE محليا.وعلاوة على ذلك, فإنه سيتم أيضا موجه موقع التعليمات البرمجية المصدر عند النقر على الدخول في مكدس الاستدعاءات:لافتا أنه في أيهما شفرة المصدر هو ذات الصلة ، كل شيء يعمل بشكل جيد, وهو أمر عظيم!

على كل حال نأمل أن يساعد هذا شخص آخر...:)

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

في windbg (على سبيل المثال):

.srcpath+ path_to_source_root
أو هذا (في حال كنت التصحيح عن بعد):
.lsrcpath+ path_to_source_root

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