LLVM-NM(1) LLVM LLVM-NM(1) نام (NAME) llvm-nm - فهرست‌بندی جدول نمادهای فایل‌های هدف و بیت‌کد LLVM خلاصه دستور (SYNOPSIS) llvm-nm [گزینه‌ها] [نام‌فایل‌ها...] توضیحات (DESCRIPTION) ابزار llvm-nm نام نمادها را از فایل‌های بیت‌کد LLVM، فایل‌های هدف (object files) و آرشیوها فهرست می‌کند. هر نماد به همراه اطلاعاتی ساده درباره منشأ آن نمایش داده می‌شود. اگر نام فایلی مشخص نشود، a.out به عنوان ورودی استفاده می‌شود. اگر از - به عنوان نام فایل استفاده شود، llvm-nm فایل را از جریان ورودی استاندارد خواهد خواند. قالب خروجی پیش‌فرض llvm-nm همان قالب سنتی BSD nm است. هر رکورد خروجی شامل یک آدرس هگزادسیمال ۸ رقمی (اختیاری)، یک نویسه کد نوع، و سپس نام برای هر نماد است. در هر سطر یک رکورد چاپ می‌شود؛ فیلدها با فاصله جدا می‌شوند. هنگامی که آدرس حذف شود، ۸ فاصله به جای آن قرار می‌گیرد. نویسه‌های کد نوع پشتیبانی‌شده به شرح زیر هستند. در مواردی که هر دو نویسه کوچک و بزرگ برای یک مفهوم ذکر شده‌اند، نویسه کوچک نمایانگر نماد محلی (local) و نویسه بزرگ نمایانگر نماد سراسری (global/external) است: a, A نماد مطلق (Absolute). b, B شیء داده مقداردهی‌نشده (bss). C نماد مشترک (Common). چندین تعریف در فرآیند پیوند در قالب یک تعریف ترکیب می‌شوند. d, D شیء داده قابل نوشتن. i, I در COFF: نماد .idata یا نماد در بخشی با فلگ IMAGE_SCN_LNK_INFO فعال. n در ELF: نماد محلی از بخش غیرقابل تخصیص (non-alloc). در COFF: نماد اشکال‌زدایی (debug). N در ELF: نماد بخش اشکال‌زدایی، یا نماد سراسری از بخش غیرقابل تخصیص. s, S در COFF: نماد بخش (section). در Mach-O: نماد مطلق یا نماد از بخشی غیر از __TEXT_EXEC __text، __TEXT __text، __DATA __data، یا __DATA __bss. r, R شیء داده فقط‌خواندنی. t, T شیء کد برنامه یا متن (text). u در ELF: نماد منحصر‌به‌فرد گنو (GNU unique). U شیء نام‌برده در این فایل تعریف نشده است. v در ELF: شیء ضعیف تعریف‌نشده (Undefined weak). تعریف نشدن شیء به منزله شکست در پیوند نیست. V در ELF: نماد شیء ضعیف تعریف‌شده (Defined weak). این تعریف تنها در صورتی استفاده می‌شود که هیچ تعریف معمولی در فرآیند پیوند وجود نداشته باشد. اگر چندین تعریف ضعیف و هیچ تعریف معمولی وجود نداشته باشد، یکی از تعریف‌های ضعیف استفاده خواهد شد. w نماد ضعیف تعریف‌نشده به جز نماد شیء ELF. تعریف نشدن نماد موجب شکست در پیوند نیست. W نماد ضعیف تعریف‌شده به جز نماد شیء ELF. این تعریف تنها در صورتی استفاده می‌شود که هیچ تعریف معمولی در فرآیند پیوند وجود نداشته باشد. اگر چندین تعریف ضعیف و هیچ تعریف معمولی وجود نداشته باشد، یکی از تعریف‌های ضعیف استفاده خواهد شد. - در Mach-O: نماد N_STAB. ? موردی غیرقابل شناسایی. از آنجا که فایل‌های بیت‌کد LLVM معمولاً حاوی اشیایی هستند که تا زمان پیوند خوردن در یک فایل اجرایی یا کامپایل پویا «درجا» (just-in-time) فاقد آدرس در نظر گرفته می‌شوند، llvm-nm برای هیچ نمادی در فایل بیت‌کد LLVM آدرسی چاپ نمی‌کند، حتی نمادهایی که در خود فایل بیت‌کد تعریف شده‌اند. گزینه‌ها (OPTIONS) -B استفاده از قالب خروجی BSD. نام مستعار برای --format=bsd. -X مشخص کردن نوع فایل شیء XCOFF، شیء ELF یا شیء IR ورودی از خط فرمان یا از فایل‌های آرشیو که llvm-nm باید بررسی کند. حالت باید یکی از موارد زیر باشد: 32 تنها پردازش فایل‌های شیء ۳۲ بیتی. 64 تنها پردازش فایل‌های شیء ۶۴ بیتی. 32_64 پردازش هر دو فایل‌های شیء ۳۲ بیتی و ۶۴ بیتی. any پردازش تمامی فایل‌های شیء پشتیبانی‌شده. در سیستم‌عامل AIX، حالت پیش‌فرض پردازش تنها فایل‌های شیء ۳۲ بیتی و نادیده گرفتن اشیاء ۶۴ بیتی است. این رفتار با تنظیم متغیر محیطی OBJECT_MODE قابل تغییر است. برای نمونه، OBJECT_MODE=64 باعث می‌شود llvm-nm اشیاء ۶۴ بیتی را پردازش کرده و اشیاء ۳۲ بیتی را نادیده بگیرد. فلگ -X بر متغیر OBJECT_MODE اولویت دارد. در سایر سیستم‌عامل‌ها، پیش‌فرض پردازش تمام فایل‌های شیء است و متغیر محیطی OBJECT_MODE پشتیبانی نمی‌شود. --debug-syms, -a نمایش تمام نمادها، حتی نمادهایی که معمولاً پنهان می‌شوند. --defined-only, -U چاپ تنها نمادهای تعریف‌شده در این فایل. --demangle, -C نام‌گشایی (Demangle) نام نمادها. --dynamic, -D نمایش نمادهای پویا (dynamic) به جای نمادهای عادی. --export-symbols چاپ نمادهای مرتب‌شده به همراه سطح دسترسی و دیده‌شدن آن‌ها (در صورت وجود)، همراه با حذف موارد تکراری. --extern-only, -g چاپ تنها نمادهایی که تعریف آن‌ها خارجی است؛ یعنی از فایل‌های دیگر قابل دسترسی هستند. --format=, -f انتخاب قالب خروجی؛ format می‌تواند sysv، posix، darwin، bsd یا just-symbols باشد. پیش‌فرض bsd است. --help, -h چاپ خلاصه‌ای از گزینه‌های خط فرمان و معانی آن‌ها. -j چاپ تنها نام نمادها. نام مستعار برای --format=just-symbols. --line-numbers, -l استفاده از اطلاعات اشکال‌زدایی برای چاپ نام فایل‌ها و شماره خطوطی که نمادها در آن‌ها تعریف شده‌اند. برای نمادهای تعریف‌نشده، مکان نخستین بازتخصیص (relocation) آن‌ها چاپ می‌شود. -m استفاده از قالب Darwin. نام مستعار برای --format=darwin. --no-demangle عدم نام‌گشایی نام نمادها. این رفتار پیش‌فرض است. --no-llvm-bc غیرفعال کردن خواننده بیت‌کد LLVM. --no-sort, -p نمایش نمادها به همان ترتیبی که در فایل مواجه می‌شوند. --no-weak, -W عدم چاپ نمادهای ضعیف (weak). --numeric-sort, -n, -v مرتب‌سازی نمادها بر اساس آدرس عددی. --portability, -P استفاده از قالب خروجی POSIX.2. نام مستعار برای --format=posix. --print-armap چاپ جدول نمادهای آرشیو، علاوه بر نمادها. --print-file-name, -A, -o درج نام فایلی که نماد از آن آمده است پیش از هر نماد. --print-size, -S نمایش اندازه نماد و همچنین آدرس آن (برای Mach-O کاربرد ندارد). --quiet سرکوب پیام هشدار «بدون نماد» (no symbols). --radix=, -t مشخص کردن مبنای عددی آدرس نماد(ها). مقادیر پذیرفته‌شده عبارتند از d (ده‌دهی)، x (شانزده‌شانزدهی/هگزادسیمال) و o (هشت‌هشتی/اکتال). --reverse-sort, -r مرتب‌سازی معکوس نمادها. --size-sort مرتب‌سازی نمادها بر اساس اندازه. --special-syms عدم فیلتر کردن نمادهای ویژه از خروجی. --undefined-only, -u چاپ تنها نمادهای تعریف‌نشده. --version, -V نمایش نسخه برنامه اجرایی llvm-nm و سپس خروج. با سایر دستورات ترکیب نمی‌شود. @ خواندن گزینه‌های خط فرمان از فایل پاسخ . گزینه‌های ویژه MACH-O (MACH-O SPECIFIC OPTIONS) --add-dyldinfo افزودن نمادها از dyldinfo در صورتی که از قبل در جدول نمادها وجود نداشته باشند. این رفتار پیش‌فرض است. --add-inlinedinfo افزودن نمادها از کتابخانه‌های درون‌خطی‌شده (inlined)، تنها برای ورودی‌های فایل TBD. --arch= استخراج نمادها از معماری(های) مشخص‌شده. --dyldinfo-only استخراج تنها نمادهای مربوط به dyldinfo. --no-dyldinfo عدم افزودن هیچ نمادی از dyldinfo. -s
استخراج تنها نمادها از این نام سگمنت و بخش. -x چاپ مدخل نماد در قالب هگزادسیمال. گزینه‌های ویژه XCOFF (XCOFF SPECIFIC OPTIONS) --no-rsrc مستثنی کردن نمادهای فایل منبع (__rsrc) از فهرست نمادهای صادراتی. اشکالات (BUGS) • ابزار llvm-nm از تمامی آرگومان‌هایی که GNU nm پشتیبانی می‌کند، پشتیبانی نمی‌کند. وضعیت خروج (EXIT STATUS) ابزار llvm-nm با کد خروج صفر به کار خود پایان می‌دهد. همچنین ببینید (SEE ALSO) llvm-ar(1), llvm-objdump(1), llvm-readelf(1), llvm-readobj(1) نویسنده (AUTHOR) نگه‌داری شده توسط تیم LLVM (https://llvm.org). حق نشر (COPYRIGHT) 2003-2026, LLVM Project 22 2026-07-15 LLVM-NM(1)