سؤال حول استخدام windbg لدلل استدعاؤها من ابفيف

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

  •  22-07-2019
  •  | 
  •  

سؤال

وأنا محاولة لتصحيح دلل الذي يسمى من قبل تطبيق LABVIEW. لدي ملفات الرموز الصحيحة (تحميلها من مايكروسوفت) لأشياء مثل NTDLL.DLL وغيرها. أيضا لدي بالطبع ملف PDB لبلدي DLL. ما لم يكن لديك، بالطبع، هو أي ملفات الرموز لابفيف. منذ بقدر ما أعرف الصكوك الوطنية لا يفرج عنه.

ولقد حاولت التطبيق اختبار بسيط استدعاء DLL من داخل windbg.exe. هذا يعمل بشكل جيد. عندما أضيف ابفيف في windbg مزيج بالطبع يبدأ إعطاء خطأ: ملف رمز لم يتم العثور على جميع الأشياء ابفيف. وأنا واثق لدي الحق في الدلائل الملف رمز مجموعة ويتم تعيين المجلدات المصدر أيضا. أنا نوع من newb إلى windbg، ولكن أنا بدأت لجمع ذلك لم يكن لديك ALL رمز الملفات التي كنت مسقي على استخدامه. هل هذا صحيح؟ إذا كان الأمر كذلك اعتقد انه يعود إلى fprintf والتصحيح محدودة.

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

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

المحلول

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

نصائح أخرى

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

ويمكنك أيضا تعيين نقطة توقف في WinDbg لكسر في أقرب وقت يتم تحميل DLL الخاص بك. للقيام بذلك، ونعلق windbg لعملية ابفيف واستخدم الأمر التالي: sxe ld foo (حيث foo هو اسم DLL الخاص بك). هذا يقول المصحح لكسر عند حدوث الحدث تحميل دلل، وتحديدا لDLL الخاص بك. انظر http://msdn.microsoft.com/en-us/library/cc266379 .aspx اتصال للحصول على مزيد من المعلومات. عند ضرب هذا توقف بعد ذلك يمكنك معرفة أي رمز كنت ترغب في كسر في ضمن التعليمات البرمجية التصحيح.

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