WinDbg الرموز المفقودة للتعليمات برمجية تمت إدارتها

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

  •  05-07-2019
  •  | 
  •  

سؤال

وأواجه مشكلة في الحصول على WinDbg استخدام PDB الملفات لبلدي <أ href ل = "http://en.wikipedia.org/wiki/.NET_Framework" يختلط = "نوفولو noreferrer">. NET ملفات DLL. على تعليق تفريغ أنا أبحث في غير من بناء الإنتاج، ولكن لدي ملفات PDB من بناء تصحيح من نفس القانون.

وأنا وضعت مسار الرمز لتضمين مجلد المحلي وخادم رمز مايكروسوفت.

C:\websymbols\foo;srv*c:\websymbols*http://msdl.microsoft.com/download/symbols

وأضع كل ما عندي من ملفات PDB في C:\websymbols\foo. ومع ذلك، فإن قوائم مكدس المدارة لا يحتوي على أية أسماء أسلوب.

والقيام إعادة تحميل، .reload /f، يقول لي:

DBGHELP: No debug info for FOO.dll.  Searching for dbg file
SYMSRV:  c:\websymbols\foo\FOO.dbg\49B7F17C10000\FOO.dbg not found
SYMSRV:  c:\websymbols\FOO.dbg\49B7F17C10000\FOO.dbg not found
SYMSRV:  http://msdl.microsoft.com/download/symbols/FOO.dbg/49B7F17C10000/FOO.dbg not found
DBGHELP: .\FOO.dbg - file not found
DBGHELP: .\dll\FOO.dbg - path not found
DBGHELP: .\symbols\dll\FOO.dbg - path not found
DBGHELP: FOO.dll missing debug info.  Searching for pdb anyway
DBGHELP: Can't use symbol server for FOO.pdb - no header information available
DBGHELP: FOO.pdb - file not found
*** WARNING: Unable to verify checksum for FOO.dll
*** ERROR: Module load completed but symbols could not be loaded for FOO.dll
DBGHELP: FOO - no symbols loaded

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

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

المحلول

وتحتاج ملفات PDB نفس الدقيقة. سوف رموز التصحيح لا تعمل مع تفريغ التجزئة. وكنت في حاجة إلى ملف PDB من بالضبط نفس البناء.

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

نصائح أخرى

وليس هناك الكثير مما يمكنك القيام به حيال ذلك الآن. كما قال جون روبنز <لأ href = "http://www.wintellect.com/CS/blogs/jrobbins/archive/2009/05/11/pdb-files-what-every-developer-must-know.aspx" يختلط = "نوفولو noreferrer"> يقول :

<اقتباس فقرة>   

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

ويمكنك جرب حظك مع أداة الشر يسمى ChkMatch أو خداع VS لقبول أي PDB ما رمي في ذلك. أعلم تماما أن هناك احتمالات شبه صفر كنت تحصل على أي مداخن ذات مغزى - تخطيط PE حساسة للغاية للتغيرات الرمز، وفنيا حتى اثنين يبني من مصدر متطابقة هي <وأ href = "https://stackoverflow.com/questions/ 1363217 / ثنائي استنساخ في والبصرية ج / 1390447 # 1390447 "> ليست مضمونة لإعطاء نفس PE .

[تحرير]: عذرا، لاحظت فقط لك استخدام WinDbg. في هذه الحالة، كما يقول ريموس، .reload / و / ط يمكن تحقيق نفس الخدعة (مع نفس المخاطر).

وOK، سألت السؤال الخطأ. أنا لا تحتاج حتى حرف لرمز. NET (كما أشار ريموس الخروج). لذلك هذا ليس هو الحل لسؤالي، ولكن هذا هو الحل لمشكلتي، والتي يبدو أن لها صلة بناء .NET على جهاز يعمل بنظام التشغيل WinDbg جرا.

وأحصل على معلومات مكدس ذات مغزى عندما .chain يقول لي هذا:

C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\sos: image 2.0.50727.**1433**, API 1.0.0, built Tue Oct 23 20:41:30 2007

و(نفس على خادم اتخذ تفريغ جرا).

وأنا لا أحصل على أية معلومات أخرى من عناوين من !clrstack عند تشغيله على الأجهزة حيث يقول لي .chain:

C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\sos: image 2.0.50727.**3053**, API 1.0.0, built Fri Jul 25 07:08:38 2008
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top