| 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
b, B
C
d, D
i, I
n
در COFF: نماد اشکالزدایی (debug).
N
s, S
در Mach-O: نماد مطلق یا نماد از بخشی غیر از __TEXT_EXEC __text، __TEXT __text، __DATA __data، یا __DATA __bss.
r, R
t, T
u
U
v
V
w
W
-
?
از آنجا که فایلهای بیتکد 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=<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=<RADIX>, -t
- مشخص کردن مبنای عددی آدرس نماد(ها). مقادیر پذیرفتهشده عبارتند از d (دهدهی)، x (شانزدهشانزدهی/هگزادسیمال) و o (هشتهشتی/اکتال).
- --reverse-sort, -r
- مرتبسازی معکوس نمادها.
- --size-sort
- مرتبسازی نمادها بر اساس اندازه.
- --special-syms
- عدم فیلتر کردن نمادهای ویژه از خروجی.
- --undefined-only, -u
- چاپ تنها نمادهای تعریفنشده.
- --version, -V
- نمایش نسخه برنامه اجرایی llvm-nm و سپس خروج. با سایر دستورات ترکیب نمیشود.
- @<FILE>
- خواندن گزینههای خط فرمان از فایل پاسخ <FILE>.
گزینههای ویژه MACH-O (MACH-O SPECIFIC OPTIONS)
- --add-dyldinfo
- افزودن نمادها از dyldinfo در صورتی که از قبل در جدول نمادها وجود نداشته باشند. این رفتار پیشفرض است.
- --add-inlinedinfo
- افزودن نمادها از کتابخانههای درونخطیشده (inlined)، تنها برای ورودیهای فایل TBD.
- --arch=<arch1[,arch2,...]>
- استخراج نمادها از معماری(های) مشخصشده.
- --dyldinfo-only
- استخراج تنها نمادهای مربوط به dyldinfo.
- --no-dyldinfo
- عدم افزودن هیچ نمادی از dyldinfo.
- -s <segment> <section>
- استخراج تنها نمادها از این نام سگمنت و بخش.
- -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
| 2026-07-15 | 22 |