كيف يمكنني معرفة ما إذا كان قابل للتنفيذ مرتبطا تدريجيا أم لا؟
-
11-09-2019 - |
سؤال
أحاول استخدام تنقية 6 لتحليل تلف الذاكرة في إحدى الملفات التنفيذية التي تم بناؤها باستخدام VC ++ 2003 (7.1).
عندما أقوم بأداة ثنائي مع الأمر:
purify /Replace=yes /Run=no myprog.exe
إحباط الأجهزة تخبرني أن التنفيذ مرتبط تدريجيا. في حيرة، راجعت خيارات البناء ولكن /INCREMENTAL:NO
كان هناك. بالتأكيد، أعيد بناؤه وتم تمرير الخيار بشكل صحيح في وقت الارتباط.
هل هناك طريقة لمعرفة ما إذا كان قابل للتنفيذ مرتبطا تدريجيا أم لا؟
كان لي نظرة على ماذا dumpbin /HEADERS
يقول ولكن لم ير أي شيء مناسب.
شكرا.
المحلول
الخيار 1:
ج: ...> Dumpbin / ملخص كل ما
ابحث عن قسم ".textbss".
لست متأكدا من أن هذا موثوقة بنسبة 100٪، ولكن في تجربتي تضيف رابط دائما هذا القسم عند القيام بالربط الإضافي.
الخيار 2:
ابحث عن ملف ".LK" بجوار الملف القابل للتنفيذ. يبدو أن Visual Studio جيدة حول تنظيف هذه عند عدم استخدامها، لذلك تعطيل الارتباط الإضافي والبناء (لا حتى "إعادة البناء") يجب إزالته.
الخيار 3:
تمكين إنشاء تسجيل (أدوات / خيارات / مشاريع) وابحث عن "/ تدريجي" أو "/ تدريجي: لا" في ملف Buildlog.html الذي يولد.
الخيار 4:
تحليل ملف .vcproj. (ICK!)