The Chromium Chronicle #7: مصدر المعالجة المسبقة

الحلقة 7: لـ "بروس داوسون" في سياتل، واشنطن (تشرين الأول/أكتوبر 2019)
الحلقات السابقة

في بعض الأحيان، من المفيد تجميع ملف مصدر واحد من Chromium يدويًا، ربما من خلال تجربة خيارات تحسين برنامج التجميع أو معالجته مسبقًا في ملف واحد لفهم بعض التفاصيل الدقيقة للماكرو أو للحدّ من حدوث خطأ في برنامج التجميع.

تتيح بعض النصائح لمطوِّر Chromium العثور على الأمر الذي يجمع ملف مصدر معيّن وتنفيذه، مع إجراء التعديلات اللازمة.

ابدأ بالانتقال إلى دليل الإخراج واستخدام autoninja (أو ninja) لتجميع الملف الذي يهمّك (وأيّ تبعيات) باستخدام اللاحقة ^. تطلب هذه اللاحقة من النينجا إنشاء مخرجات file—version.o المحددة في هذه الحالة. بعد ذلك، المس الملف، وقم بتجميعه (وتجميعه فقط) مرة أخرى باستخدام علامة -v (المطوّلة) إلى مندوب النينجا:

على نظام التشغيل Linux أو OSX:

autoninja ../../base/version.cc^
touch ../../base/version.cc
autoninja -v ../../base/version.cc^

في Windows cmd Shell، يعد ^ حرفًا خاصًا ويجب تخطيه:

C:\> autoninja ../../base/version.cc^^
C:\> touch ../../base/version.cc
C:\> autoninja -v ../../base/version.cc^^

تظهر النتائج النموذجية للأمر autoninja -v على النحو التالي (تم اقتطاعه بشكل كبير):

..\..\third_party\llvm-build\Release+Asserts\bin\clang-cl.exe /nologo /showIncludes -imsvc ...

يسمح لك هذا الأمر بتجميع الملف الذي يهمّك. للحصول على مخرجات تمت معالجتها مسبقًا، اتّبِع الخطوات التالية:

على نظام التشغيل Linux أو OSX، أزِل مجموعة -o obj/base/base/version.o من النهاية وأضِف -E. يؤدي ذلك إلى إخبار المحول البرمجي بطباعة الملف الذي تمت معالجته مسبقًا إلى stdout.

إعادة توجيه الإخراج إلى ملف، مثل هذا:

../../third_party/llvm-build/Release+Asserts/bin/clang++ -MMD ... -E >version.i

على نظام التشغيل Windows، أزِل الخيار /showIncludes من البداية (حيث يطبع سطر إخراج لكل #include) ثم أضِف /P لمعالجة الملف مسبقًا بدلاً من تجميعه. سيتم حفظ النتائج في الدليل الحالي في version.i:

..\..\third_party\llvm-build\Release+Asserts\bin\clang-cl.exe /nologo -imsvc ... /P

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

مراجع إضافية

  • الإصدارات السريعة من Chrome: للحصول على مزيد من النصائح حول تحسين الإصدار (التي تركّز على نظام التشغيل Windows).
  • ETW: تعرَّف على كيفية العثور على مشاكل أداء Windows في Chrome أو في إصداره من خلال قراءة مستندات ETW (المعروفة أيضًا باسم Xperf).