سؤال

لقد قمت بإعداد Visual Studio 2005 لاستخدام خوادم رموز Microsoft.لدي أيضا UltraMon المثبتة، والتي تضخ ربط DLL في كل عملية.عندما أبدأ في تصحيح الأخطاء الخاصة بي MFC يقول تطبيق Visual Studio:

"Loading symbols for C:\Program Files\UltraMon\RTSUltraMonHookX32.dll..."

لأي شيء من غمضة عين إلى عدة عشرات من الثواني.لن تجد تلك الرموز أبداًهل يمكنني أن أقول أنه لا يكلف نفسه عناء البحث؟

(حاولت إنشاء ملف فارغ RTSUltraMonHookX32.pdb الملف، لكن Visual Studio يرى أنه ليس جيدًا ويستمر في البحث.)

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

المحلول

لا يمكنك القيام بذلك بطريقة دقيقة للغاية ولكن يمكنك تعطيل التحميل التلقائي للرموز ثم اختيار الرموز للتحميل يدويًا عبر نافذة الوحدات (Debug -> Windows -> الوحدات النمطية).

لتعطيل التحميل التلقائي للرمز

  • الأدوات -> الخيارات -> التصحيح -> الرموز
  • حدد "البحث في المواقع المذكورة أعلاه فقط عند تحميل الرموز يدويًا"

نصائح أخرى

وتحقق أيضا أن لديك أي "_NT_SYMBOL_PATH" متغير البيئة. إذا كان لديك هذا فار حرف سيتم تحميل بغض النظر عن إعدادات VS.

ومن البصرية ستوديو 2010 فصاعدا، يمكنك الذهاب إلى:

Tools -> Options -> Debugging -> Symbols -> Specify excluded modules

وأدخل قائمة دلس التي تستغرق وقتا طويلا لتحميل. يمكنني استخدام المسار الكامل، التي قدمها إطار الإخراج. ربما يقبل البدل أو أسماء الملفات بسيطة.

في حالتي كان ذلك بسبب لقد قمت بتعيين "تمكين .Net Source Stepping" على "صحيح". في

Tools > Options > Debugging > General. 

بدلاً من تعيينه على false، قمت بتعيين "Enable Just My Code" على true مما يؤدي تلقائيًا إلى تعيين "Enable .Net Source Stepping" على false.لقد أعطاني تحذيرًا قبل القيام بذلك:

Enabling Just my code automatically disabled .Net framework source stepping

مما يوحي Just My Code و .Net source stepping نكون متنافي.

آمل أن يساعد هذا شخص ما.

ويمكنك أيضا إعداد الاستثناءات ملقم الرموز التي لن تكون محاولة لتحميل في HKEY_CURRENT_USER \ برامج \ مايكروسوفت \ رمز خادم \ استثناءات أو ربما أيضا HKEY_LOCAL_MACHINE \ SOFTWARE \ مايكروسوفت \ رمز خادم \ استثناءات أو عن طريق ملف .ini في٪ WINDIR٪ \ SYSTEM32 \ inetsrv \ Symsrv.ini (استخدام رأس [الاستثناءات] ووضع كل الاستبعاد على السطر الخاص به). الاستثناءات هي نمط بسيط مباريات، وذلك باستخدام msxml5. * على سبيل المثال.

وليس فقط _NT_SYMBOL_PATH يمكن أن يسبب هذا السلوك، ولكن بالنسبة لي كان متغير البيئة _NT_ALT_SYMBOL_PATH الذي كان يسبب التأخير.

و(أعتقد أنني أضفت هذا المتغير عند تجربة WinDbg)

وفي Visual Studio 2013 برو، إذا تم التحقق من رمز خادم مايكروسوفت، VS ستحاول تحميل كافة الرموز على الخادم الخاص بهم، مما يسبب الكثير من الوقت الاضافي.

  • قم بتحميل جميع حزم الرموز من موقع MS يدويًا، ثم ضعها على محرك أقراص SSD للسرعة :-)
  • إذا كان لديك متغير بيئة "_NT_SYMBOL_PATH"، فقم بإزالة الجزء "http://msdl.microsoft.com/download/symbols" من "SRVالبريد:\الرموز*http://msdl.microsoft.com/download/symbols"، بحيث يكون لديك فقط مسار الرمز الذي يتم تنزيل رموزك فيه بشكل ثمين.
  • الآن لديك دعم للرموز ولكن لن يتم تنزيلها من MS، ولكن سيتم تحميلها من محرك الأقراص
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top