Chromium Chronicle #7: Ön İşleme Kaynağı

7. Bölüm: Bruce Dawson, Seattle, Washington'da (Ekim 2019)
Önceki bölümler

Bazen tek bir Chromium kaynak dosyasını elle derlemek faydalı olur. veya derleyici optimizasyon seçenekleriyle deneme yapmak, anlamak veya bir öğeyi en aza indirmek için tek bir dosyaya derleyici hatası.

Birkaç püf noktası, Chromium geliştiricisinin belirli bir kaynak dosyayı gerektiğinde değişiklikler yaparak derler.

Çıkış dizininize gidip autoninja (veya ninja) aracını kullanarak başlayın ^ son ekini kullanarak (ve bağımlılıkları) ilgili dosyayı derleyin. Bu son ek, ninja'ya belirtilen file—version.o çıktısını oluşturmasını söyler seçmemiz gerekir. Ardından, dosyaya dokunun ve dosyayı (yalnızca dosyayı) -v (ayrıntılı) işaretini ninja'ya gönderir:

Linux veya OSX'te:

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

Windows cmd kabuğunda ^ özel bir karakterdir ve kaçılması gerekir:

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

autoninja -v komutunun genel çıkışı şu şekilde görünür (önemli ölçüde kırpıldı):

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

Bu komut, ilgili dosyayı derlemenize olanak tanır. Ön işleme tabi tutulup aşağıdaki adımları uygulayın:

Linux veya OSX'te, sondaki -o obj/base/base/version.o bloğunu kaldırın, ve -E ekleyin. Bu komut derleyiciye, önceden işlenmiş dosyayı stdout.

Çıkışı şu şekilde bir dosyaya yönlendirin:

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

Windows'da, /showIncludes seçeneğini en baştan kaldırın ( her #include için çıkış satırı) ve sonra /P ekleyin. ön işleme yöntemini kullanabilirsiniz. Sonuçlar şuraya kaydedilir: version.i dizinindeki mevcut dizin:

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

Şimdi makroların gerçekten ne yaptığını görmek için ön işleme tabi tutulmuş dosyayı veya deneysel derleyici anahtarı değişiklikleri yapıp yeniden derleyerek neler olduğunu görebilirsiniz.

Ek Kaynaklar

  • Hızlı Chrome Derlemeleri: Derleme optimizasyonuyla ilgili daha fazla ipucu için (Windows'a odaklanmış).
  • ETW: Windows performans sorunlarını Chrome'da nasıl bulacağınızı öğrenin veya derlemede görüntülenir. ETW (Xperf olarak da bilinir) dokümanlarını okuyabilirsiniz.