سؤال

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

يجب أن يستغرق الأمر Arcording إلى المعلومات التي أقرأها بعض الوقت لعرضها بعض الوقت أثناء تحميل الرموز، ولكن بالنسبة لي من أجلي الجدول المعروض تقريبا على الفور تقريبا وأعلى معظم العناصر في Sprite.exe-> أسماء Sprite.exe كانت صفوف Othe للعمل إما فارغة أو "غير معروفة"

أنا باستخدام Vista SP1.

هذا هو الملف الدفعي الذي استخدمته. هل فعلت أي شيء من شأنه أن يمنع أن يتم تحميل Sybols؟

REM start profiler
xperf -on PROC_THREAD+LOADER+INTERRUPT+DPC+PROFILE^
 -stackwalk profile -minbuffers 16 -maxbuffers 1024 -flushtimer 0^
 -f tmp.etl
REM run the app we want to profile
sprite.exe
REM stop
xperf -d profile.etl
REM set symbol path
set _NT_SYMBOL_PATH = ^
 C:\Projects\C++\fl lib\bin;^ REM dlls
 C:\Projects\C++\fl lib\samples\bin;^ REM main exe
 SRV*c:\symbols*http://msdl.microsoft.com/download/symbols
REM display profile
xperf profile.etl
هل كانت مفيدة؟

المحلول

ما هو إصدار dbghelp.dll هل تستخدم؟ لقد واجهت مشكلة في الحصول على رموز PDB التي تعمل معها kernrate وغيرها من المرافق عند استخدام إصدار dbghelp.dll التي تم تثبيتها في %SystemRoot%\system32.

قد تحتاج إلى نسخ dbghelp.dll و symsrv.dll من الإصدار الأخير من أدوات تصحيح الأخطاء لنظام التشغيل Windows في دليل حيث يمكن ل XPerf العثور عليه.

أيضا، تحتاج إلى إزالة المسافة قبل "="، وإلا فإنك تحدد "_NT_SYMBOL_PATH"متغير (بما في ذلك المساحة الزائدة بالاسم).

بما في ذلك التعليقات في نهاية الخط لن يعمل أيضا. يحتاج حرف استمرار الخط مثل "^" عادة إلى أن يكون الحرف الأخير على الخط. عندما أدارت هذا البيان (على XP)، انتهى بي الأمر "_NT_SYMBOL_PATH" يساوي "C:\Projects\C++\fl lib\bin; REM dlls"وفتح خطأ حول السطر التالي.

نصائح أخرى

حاول تحديد

TRACE_FORMAT_SEARCH_PATH

متغيرات البيئة. إذا لم ينجح ذلك، فقد تضطر إلى استخراج ملفات TMF يدويا من PDBs الخاص بك باستخدام TRACEPDB.EXE (أو على الأقل استخدام مسار منتظم بدلا من مسار Sym *). هذا هو الجزء الأكثر إزعاجا من استخدام آثار ETL / XPerf

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