← man/dev_and_programming
dwarfdump — man dwarfdump — 80×24
ugur@toprak:~/man/dev_and_programming$man dwarfdump
Bölüm 1 Geliştirme & Programlama

dwarfdump

dwarfdump — macOS komut satırı aracı.

İsim

dwarfdump - DWARF hata ayıklama bilgilerini dökümler ve doğrular

Sözdizimi

       dwarfdump [seçenekler] [dosya_adı ...]

Açıklama

dwarfdump; nesne dosyalarındaki, arşivlerdeki ve .dSYM paketlerindeki DWARF bölümlerini ayrıştırır ve içeriklerini insan tarafından okunabilir biçimde yazdırır. Bölüme özel seçeneklerden biri veya --all belirtilmedikçe yalnızca .debug_info bölümü yazdırılır.

Herhangi bir girdi dosyası belirtilmezse, bunun yerine a.out kullanılır. Girdi dosyası olarak - kullanılırsa, dwarfdump girdiyi standart girdi akışından okur.

Seçenekler

-a, --all Desteklenen tüm DWARF bölümlerini dökümler.

--arch= Belirtilen CPU mimarisi için DWARF hata ayıklama bilgilerini dökümler. Mimariler adlarına veya numaralarına göre belirtilebilir. Bu seçenek, istenen her mimari için bir kez olmak üzere birden fazla kez belirtilebilir. Varsayılan olarak tüm CPU mimarileri yazdırılacaktır.

-c, --show-children --debug-info seçeneğinin = argümanı ile veya --find ya da --name gibi seçeneklerle seçici olarak yazdırırken, bir hata ayıklama bilgi girdisinin (DIE) alt öğelerini (children) gösterir.

--color Çıktıda renkleri kullanır.

--error-display=<değer> Doğrulama yaparken görüntülenecek ayrıntı ve özet düzeyini ayarlar. --verify seçeneğini ima eder. Desteklenen değerler şunlardır:

quiet - Yalnızca hataların oluşup oluşmadığını gösterir. summary - Yalnızca bulunan hataların özetini gösterir. details - Her hatayı ayrıntılı olarak gösterir ancak özet göstermez. full - Her hatayı ve ayrıca bir özeti gösterir. [varsayılan]

-f , --find= Hızlandırıcı tablolarında tam olarak metnini arar ve eşleşen hata ayıklama bilgi girdilerini yazdırır. Hızlandırıcı tabloları olmadığında veya aradığınız DIE'nin adı hızlandırıcı tablolarında bulunamadığında, daha yavaş fakat daha eksiksiz olan --name seçeneğini kullanmayı deneyin.

-F, --show-form DWARF öznitelik türlerinden sonra DWARF form türlerini gösterir.

-h, --help Bu komut için yardımı ve kullanımı gösterir.

--help-list Seçenekleri kategorilere ayırmadan bu komut için yardımı ve kullanımı gösterir.

-i, --ignore-case --name seçeneğini kullanırken büyük/küçük harf ayrımlarını yoksayar.

-n , --name= Adı (DW_AT_name özniteliği) olan tüm hata ayıklama bilgi girdilerini bulur ve yazdırır.

--lookup= Hata ayıklama bilgilerinde değerini arar ve dosya, fonksiyon, blok ve satır tablosu ayrıntılarını yazdırır.

-o Çıktıyı ile belirtilen bir dosyaya yönlendirir; burada - standart çıktı akışıdır.

-p, --show-parents --debug-info seçeneğinin = argümanı ile veya --find ya da --name gibi seçeneklerle seçici olarak yazdırırken, bir hata ayıklama bilgi girdisinin üst öğelerini (parents) gösterir.

--parent-recurse-depth= Hata ayıklama bilgi girdisi üst öğelerini görüntülerken, bunları yalnızca maksimum derinliğine kadar gösterir.

--quiet STDOUT'a çıktı vermemek için --verify seçeneği ile birlikte kullanın.

-r , --recurse-depth= Hata ayıklama bilgi girdilerini görüntülerken, alt öğeleri yalnızca maksimum derinliğine kadar gösterir.

--show-section-sizes Tüm hata ayıklama bölümlerinin bayt cinsinden boyutlarını gösterir.

--show-sources Hata ayıklama bilgilerinde adı geçen tüm kaynak dosyaları yazdırır. Mümkün olduğunda mutlak yollar verilir.

--statistics Hata ayıklama bilgisi kalite metriklerini toplar ve sonuçları makine tarafından okunabilir tek satırlık JSON çıktısı olarak yazdırır. Çıktı biçimi aşağıdaki bölümde açıklanmıştır (İSTATİSTİK ÇIKTISININ BİÇİMİ).

--summarize-types Tür birimi girdilerinin açıklamasını kısaltır.

-t, --filter-child-tag Yalnızca DWARF etiketi (tag) belirtilen etiketlerden biri olan alt öğeleri dökümler. Örnek kullanım:

dwarfdump -t DW_TAG_structure_type -t DW_TAG_member -c

-x, --regex --name ile arama yaparken tüm dizgelerini düzenli ifadeler (regular expressions) olarak ele alır. --ignore-case seçeneği de belirtilmişse, düzenli ifade büyük/küçük harfe duyarsız hale gelir.

-u, --uuid Her mimari için UUID değerini gösterir.

--diff Çıktıyı, iki farklı dosyadan gelen DWARF çıktılarını karşılaştırmak için daha uygun olan bir biçimde dökümler.

-v, --verbose Döküm alırken ayrıntılı bilgileri görüntüler. Bu, DWARF sorunlarının giderilmesine yardımcı olabilir.

--verify Derleme birimi zincirlerini, DIE ilişkileri grafiğini, adres aralıklarını ve daha fazlasını doğrulayarak DWARF bilgilerinin yapısını doğrular.

--verify-json= JSON biçimli hata özetini ile belirtilen dosyaya çıktı olarak verir. --verify seçeneğini ima eder. Çıktı biçimi aşağıdaki bölümde açıklanmıştır (JSON DOĞRULAMA ÇIKTISININ BİÇİMİ).

--version Aracın sürümünü görüntüler.

--debug-abbrev, --debug-addr, --debug-aranges, --debug-cu-index, --debug-frame [=], --debug-gnu-pubnames, --debug-gnu-pubtypes, --debug-info [=], --debug-line [=], --debug-line-str, --debug-loc [=], --debug-loclists [=], --debug-macro, --debug-names, --debug-pubnames, --debug-pubtypes, --debug-ranges, --debug-rnglists, --debug-str, --debug-str-offsets, --debug-tu-index, --debug-types [=], --eh-frame [=], --gdb-index, --apple-names, --apple-types, --apple-namespaces, --apple-objc Belirtilen DWARF bölümünü adına göre dökümler. Varsayılan olarak yalnızca .debug_info bölümü gösterilir. Bazı girdiler, ilgili bölüm içinde dökümü alınacak tam girdinin isteğe bağlı bir ofsetini sağlamak amacıyla bir = eklenmesini destekler. Bir ofset sağlandığında yalnızca o ofsetteki girdi dökümlenir, aksi takdirde tüm bölüm dökümlenir.

--debug-macro seçeneği hem .debug_macro hem de .debug_macinfo bölümlerini yazdırır.

--debug-frame ve --eh-frame seçenekleri takma adlardır (alias); her iki bölümün de mevcut olduğu durumlarda tek bir komut her ikisini de çıktı olarak verir.

@ Komut satırı seçeneklerini dosyasından okur.

İstatistik Çıktısının Biçimi

--statistics seçeneği, işlenen hata ayıklama bilgilerinin kalite metriklerini temsil eden tek satırlık bir JSON çıktısı üretir. Bu metrikler, iki derleyici arasındaki değişiklikleri karşılaştırmak için, özellikle derleyicide yapılan bir değişikliğin hata ayıklama bilgisi kalitesi üzerindeki etkisini değerlendirmek için yararlıdır.

Çıktı, anahtar-değer çiftleri olarak biçimlendirilir. İlk çift bir sürüm numarası içerir. Anahtarlar için aşağıdaki adlandırma şeması kullanılır:

• variables ==> yerel değişkenler ve parametreler

• local vars ==> yerel değişkenler

• params ==> resmi parametreler

Birleştirilmiş (aggregated) değerler için aşağıdaki anahtarlar kullanılır:

• sum_of_all_variables(...) ==> tüm değişkenlere uygulanan toplam

• #bytes ==> bayt sayısı

• #variables - entry values ... ==> giriş değerleri hariç değişkenlerin sayısı vb.

JSON Doğrulama Çıktısının Biçimi

--verify-json tarafından oluşturulan JSON çıktısının biçimi şöyledir:

{ "error-categories": { "<ilk kategori açıklaması>": {"count": 1234}, "<sonraki kategori açıklaması>": {"count": 4321} }, "error-count": 5555 }

Hiçbir hata bildirilmediğinde aşağıdaki çıktı üretilir:

{ "error-categories": {}, "error-count": 0 }

Çıkış Durumu

dwarfdump, girdi dosyaları başarıyla ayrıştırılıp dökümlendiyse 0 döndürür. Aksi takdirde 1 döndürür.

Ayrıca Bakınız

dsymutil(1)

Yazar

LLVM Takımı tarafından sürdürülmektedir (https://llvm.org/).

Telif Hakkı

2003-2026, LLVM Projesi