سؤال

لقد أنشأت تفريغ باستخدام clrdump. عندما أذهب لمشاهدته باستخدام SOS ، أقوم بتحميل SOS ثم أقوم بتشغيل! DSO ، لكن الخطأ الذي أحصل عليه هو:

PDB symbol for mscorwks.dll not loaded

ومع ذلك ، في نافذة الوحدة النمطية ، يقول أن الرمز يتم تحميله. لقد حصلت على رموز محدثة من متجر MS؟

أي شخص أي أفكار؟

شكرًا،

دارين.

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

المحلول

أنت لا تحتاج حقًا إلى رموز ل mscorwks.dll ل !dso للعمل بشكل صحيح ، ولكن إليك بعض النصائح حول كيفية الحصول على الرموز.

أول شيء عليك القيام به هو التحقق من أنك قمت بتعيين مسار الرمز؟ يمكنك عرض الإعداد الحالي لمسار الرمز باستخدام .sympath أمر. يمكنك إما تنزيل جميع الرموز وتوجيه مسار الرمز إلى الموقع على القرص ، أو مجرد استخدام خادم الرمز عبر الإنترنت. في كلتا الحالتين ، يجب أن يشير مسار الرمز إلى الموقع الصحيح.

يمكنك استعمال ال .symfix أمر للإشارة إلى خادم الرمز العام من Microsoft ، والذي ربما يكون أسهل طريقة للحصول على الرموز (شريطة أن يكون لديك وصول عبر الإنترنت).

استخدم ال lm أمر لرؤية الوحدات النمطية ورموزها. إذا كان يقول pdb symbols بجانب الوحدة النمطية ، كل شيء على ما يرام. ضع في اعتبارك أن Windbg لن يحمل سوى الرموز حسب الحاجة ، لذلك بالنسبة للعديد من الوحدات النمطية التي ستشاهدها على الأرجح deferred. يمكنك فرض رموز تحميل لجميع الوحدات النمطية باستخدام .reload /f أمر.

لاستكشاف الأخطاء وإصلاحها ، استخدم الرموز استخدام !sym noisy أمر. سيخبرك أين يحاول تصحيح الأخطاء تحديد موقع ملفات PDB.

نصائح أخرى

!sym noisy    
.symfix
.reload -f
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top