LLVM-DWARFDUMP(1) LLVM LLVM-DWARFDUMP(1)

llvm-dwarfdump - ابزار چاپ و اعتبارسنجی اطلاعات اشکال‌زدایی DWARF

llvm-dwarfdump [گزینه‌ها] [نام_فایل ...]

دستور llvm-dwarfdump بخش‌های DWARF را در فایل‌های شیء (object files)، بایگانی‌ها و بسته‌های .dSYM تجزیه کرده و محتوای آن‌ها را در قالبی خوانا برای انسان چاپ می‌کند. به‌طور پیش‌فرض تنها بخش .debug_info چاپ می‌شود، مگر اینکه یکی از گزینه‌های مختص به بخش‌ها یا --all مشخص شده باشد.

اگر هیچ فایل ورودی مشخص نشود، a.out به جای آن استفاده می‌شود. اگر - به عنوان فایل ورودی داده شود، llvm-dwarfdump ورودی را از جریان ورودی استاندارد (stdin) می‌خواند.

چاپ تمام بخش‌های پشتیبانی‌شده DWARF.
چاپ اطلاعات اشکال‌زدایی DWARF برای معماری پردازنده مشخص‌شده. معماری‌ها را می‌توان بر اساس نام یا شماره مشخص کرد. این گزینه می‌تواند چند بار، برای هر معماری دلخواه، مشخص شود. به‌طور پیش‌فرض تمامی معماری‌های پردازنده چاپ خواهند شد.
نمایش فرزندان یک مدخل اطلاعات اشکال‌زدایی (DIE) هنگام چاپ انتخابی با آرگومان =<offset> در --debug-info، یا گزینه‌هایی مانند --find یا --name.
استفاده از رنگ‌ها در خروجی.
تنظیم سطح جزئیات و خلاصه‌سازی برای نمایش هنگام اعتبارسنجی. مستلزم --verify است. مقادیر پشتیبانی‌شده عبارتند از:

quiet - تنها وقوع یا عدم وقوع خطاها را نمایش می‌دهد. summary - تنها خلاصه‌ای از خطاهای یافت‌شده را نمایش می‌دهد. details - هر خطا را با جزئیات کامل بدون خلاصه نمایش می‌دهد. full - هر خطا را با جزئیات همراه با خلاصه نمایش می‌دهد. [پیش‌فرض]

جستجوی متن دقیق <name> در جدول‌های شتاب‌دهنده (accelerator tables) و چاپ مدخل‌های منطبق اطلاعات اشکال‌زدایی. هنگامی که جدول شتاب‌دهنده‌ای وجود ندارد یا نام DIE مورد نظر در جدول‌های شتاب‌دهنده یافت نمی‌شود، از گزینه کندتر اما کامل‌تر --name استفاده کنید.
نمایش نوع‌های فرم DWARF پس از نوع‌های مشخصه DWARF.
نمایش راهنما و نحوه استفاده از این دستور.
نمایش راهنما و نحوه استفاده از دستور بدون گروه‌بندی گزینه‌ها در دسته‌بندی‌ها.
صرف‌نظر از کوچکی و بزرگی حروف هنگام استفاده از --name.
یافتن و چاپ تمام مدخل‌های اطلاعات اشکال‌زدایی که نام آن‌ها (مشخصه DW_AT_name/DW_AT_linkage_name) برابر با <name> باشد.
جستجوی <address> در اطلاعات اشکال‌زدایی و چاپ جزئیات فایل، تابع، بلوک و جدول خطوط.
هدایت خروجی به فایل مشخص‌شده توسط <path>، که در آن - نشان‌دهنده جریان خروجی استاندارد است.
نمایش والدین یک مدخل اطلاعات اشکال‌زدایی هنگام چاپ انتخابی با آرگومان =<offset> در --debug-info، یا گزینه‌هایی مانند --find یا --name.
هنگام نمایش والدین مدخل اطلاعات اشکال‌زدایی، تنها تا حداکثر عمق <N> نمایش داده شوند.
استفاده همراه با --verify برای جلوگیری از ارسال پیام‌ها به STDOUT.
هنگام نمایش مدخل‌های اطلاعات اشکال‌زدایی، فرزندان فقط تا حداکثر عمق <N> نمایش داده شوند.
نمایش اندازه تمام بخش‌های اشکال‌زدایی بر حسب بایت.
چاپ تمام فایل‌های منبع ذکرشده در اطلاعات اشکال‌زدایی. در صورت امکان، مسیرهای مطلق ارائه می‌شوند.
جمع‌آوری معیارهای کیفیت اطلاعات اشکال‌زدایی و چاپ نتایج به صورت خروجی تک‌خطی JSON با قابلیت پردازش ماشینی. قالب خروجی در بخش زیر (قالب خروجی آمار) توضیح داده شده است.
خلاصه‌سازی توضیحات مدخل‌های واحد نوع (type unit entries).
تنها فرزندانی تخلیه شوند که برچسب DWARF آن‌ها یکی از برچسب‌های مشخص‌شده باشد. مثال کاربردی:
llvm-dwarfdump -t DW_TAG_structure_type -t DW_TAG_member -c
در نظر گرفتن هرگونه رشته <name> به عنوان عبارت منظم (regex) هنگام جستجو با --name. اگر --ignore-case نیز مشخص شده باشد، عبارت منظم به حروف کوچک و بزرگ غیرحساس می‌شود.
نمایش UUID برای هر معماری.
چاپ خروجی در قالبی مناسب‌تر برای مقایسه خروجی DWARF دو فایل متفاوت.
نمایش اطلاعات مشروح هنگام تخلیه. این گزینه می‌تواند در اشکال‌زدایی مشکلات DWARF مفید باشد.
اعتبارسنجی ساختار اطلاعات DWARF از طریق بررسی زنجیره‌های واحدهای کامپایل، گراف روابط DIE، محدوده‌های آدرس و موارد دیگر.
--verify-json=<path>
ارسال خلاصه خطای قالب‌بندی‌شده با JSON به فایل مشخص‌شده با <path>. مستلزم --verify است. قالب خروجی در بخش زیر (قالب خروجی اعتبارسنجی JSON) شرح داده شده است.
نمایش نسخه ابزار.
چاپ بخش مشخص‌شده DWARF بر اساس نام. به‌طور پیش‌فرض تنها بخش .debug_info نمایش داده می‌شود. برخی مدخل‌ها از افزودن =<offset> برای ارائه یک آفست اختیاری از مدخل دقیق مورد نظر در بخش مربوطه پشتیبانی می‌کنند. هنگامی که آفست مشخص شود، تنها مدخل موجود در آن آفست چاپ خواهد شد؛ در غیر این صورت کل بخش تخلیه می‌شود.

گزینه --debug-macro هر دو بخش .debug_macro و .debug_macinfo را چاپ می‌کند.

گزینه‌های --debug-frame و --eh-frame نام‌های مستعار هستند؛ در صورتی که هر دو بخش وجود داشته باشند، یک دستور هر دو را خروجی می‌دهد.

@<FILE>
خواندن گزینه‌های خط فرمان از <FILE>.

گزینه --statistics خروجی تک‌خطی JSON تولید می‌کند که نشان‌دهنده معیارهای کیفیت اطلاعات اشکال‌زدایی پردازش‌شده است. این معیارها برای مقایسه تغییرات بین دو کامپایلر مفیدند، به‌ویژه برای ارزیابی تأثیری که تغییر کامپایلر بر کیفیت اطلاعات اشکال‌زدایی می‌گذارد.

خروجی به صورت جفت‌های کلید-مقدار قالب‌بندی می‌شود. نخستین جفت حاوی شماره نسخه است. الگوی نام‌گذاری زیر برای کلیدها استفاده می‌شود:

  • variables ==> متغیرهای محلی و پارامترها
  • local vars ==> متغیرهای محلی
  • params ==> پارامترهای رسمی

برای مقادیر تجمیع‌شده، کلیدهای زیر استفاده می‌شوند:

  • sum_of_all_variables(...) ==> مجموع اعمال‌شده بر تمامی متغیرها
  • #bytes ==> تعداد بایت‌ها
  • #variables - entry values ... ==> تعداد متغیرها بدون احتساب مقادیر ورودی و غیره.

قالب خروجی JSON ایجادشده توسط --verify-json به صورت زیر است:

{
  "error-categories": {
    "<first category description>": {"count": 1234},
    "<next category description>": {"count": 4321}
  },
  "error-count": 5555
}

در صورتی که هیچ خطایی گزارش نشود، خروجی زیر تولید می‌گردد:

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

اگر فایل‌های ورودی با موفقیت تجزیه و چاپ شوند، llvm-dwarfdump مقدار 0 را بازمی‌گرداند. در غیر این صورت، مقدار 1 بازگردانده می‌شود.

dsymutil(1) <dsymutil.html>

نگه‌داری‌شده توسط تیم LLVM (https://llvm.org).

2003-2026, LLVM Project

2026-07-15 22