LLVM-STRIP(1) LLVM LLVM-STRIP(1)

llvm-strip - ابزار پیراستن فایل‌های شیء

llvm-strip [گزینه‌ها] ورودی‌ها...

دستور llvm-strip ابزاری برای پیراستن بخش‌ها و نمادها از فایل‌های شیء است. اگر هیچ گزینهٔ پیراستن یا حذف دیگری مشخص نشود، --strip-all به‌طور پیش‌فرض فعال خواهد شد.

به‌طور پیش‌فرض، فایل‌های ورودی درجا اصلاح می‌شوند. اگر برای فایل ورودی مقدار "-" مشخص شود، ورودی از جریان ورودی استاندارد برنامه خوانده می‌شود.

اگر ورودی یک بایگانی باشد، هر عملیات درخواستی بر روی تک‌تک اعضای بایگانی به‌صورت جداگانه اعمال خواهد شد.

این ابزار همچنان در حال توسعهٔ فعال است، اما در بیشتر سناریوها می‌تواند به‌عنوان یک جایگزین مستقیم برای strip گنو (GNU) عمل کند.

گزینه‌های زیر یا مستقل از قالب فایل هستند، یا بر چندین قالب فایل اعمال می‌شوند.

استفاده از مقادیر واقعی برای UIDها، GIDها و برچسب‌های زمانی هنگام به‌روزرسانی سرآیند اعضای بایگانی.
حذف بیشتر نمادهای محلی که در بازنشانی‌ها ارجاع داده نشده‌اند از خروجی. قالب‌های مختلف فایل ممکن است این مورد را به زیرمجموعه‌ای از نمادهای محلی محدود کنند؛ برای نمونه، نمادهای فایل و بخش در اشیاء ELF دور ریخته نخواهند شد. علاوه بر این، تمام بخش‌های اشکال‌زدایی نیز حذف می‌شوند.
فعال‌سازی حالت قطعی هنگام پیراستن بایگانی‌ها؛ یعنی استفاده از مقدار ۰ برای فیلدهای UID، GID و برچسب زمان در سرآیند اعضای بایگانی. به‌طور پیش‌فرض فعال است.
چاپ خلاصه‌ای از گزینه‌های خط فرمان.
غیرفعال کردن --strip-all.
نوشتن خروجی در <file>. نمی‌توان چندین فایل ورودی را در ترکیب با -o استفاده کرد.
تولید یک فایل اشکال‌زدایی به‌عنوان خروجی که تنها محتویات بخش‌های مفید برای مقاصد اشکال‌زدایی را حفظ می‌کند.

برای اشیاء ELF، این گزینه محتویات بخش‌های SHF_ALLOC را که از نوع SHT_NOTE نیستند، با تبدیل آن‌ها به SHT_NOBITS و در صورت امکان کاهش اندازهٔ سرآیندهای برنامه، حذف می‌کند.

در صورت مشخص شدن، با نام‌های نماد و بخش تعیین‌شده توسط دیگر سوئیچ‌ها، به‌صورت الگوهای عبارت منظم تعمیم‌یافتهٔ POSIX رفتار می‌شود.
حذف بخش مشخص‌شده از خروجی. این گزینه می‌تواند چندین بار مشخص شود تا چندین بخش به‌طور هم‌زمان حذف گردند.
حذف تمامی نمادها، بخش‌های اشکال‌زدایی و بازنشانی‌ها از خروجی. این گزینه معادل سوئیچ --strip-all در دستور strip متعلق به GNU است.
برای اشیاء ELF، تمام نمادها و بخش‌های غیرتخصیصی خارج از قطعه‌ها را از خروجی حذف می‌کند، به جز بخش‌های .gnu.warning و .ARM.attribute و جدول نام بخش‌ها.

برای اشیاء COFF، تمام نمادها، بخش‌های اشکال‌زدایی و بازنشانی‌ها را از خروجی حذف می‌کند.

حذف تمام بخش‌های اشکال‌زدایی از خروجی.
حذف تمام نمادهای دارای نام <symbol> از خروجی. برای حذف چندین نماد می‌توان این گزینه را چند بار مشخص کرد.
حذف تمام نمادهای محلی یا تعریف‌نشده‌ای که برای بازنشانی‌ها لازم نیستند از خروجی. همچنین تمام بخش‌های اشکال‌زدایی را حذف می‌کند.
نمایش نسخهٔ فایل اجرایی llvm-strip.
مجاز ساختن نحو نویسهٔ عام برای پرچم‌های مربوط به نمادها. به‌طور پیش‌فرض برای پرچم‌های مربوط به بخش‌ها فعال است. ناسازگار با --regex.

نحو نویسهٔ عام نمادهای ویژهٔ زیر را مجاز می‌داند:

نویسه معنی معادل
* هر تعداد نویسه .*
? هر نویسهٔ تکی .
\ گریز دادن نویسهٔ بعدی \
[a-z] کلاس نویسه [a-z]
[!a-z], [^a-z] کلاس نویسهٔ نفی‌شده [^a-z]

علاوه بر این، شروع یک نویسهٔ عام با '!' از تطابق جلوگیری می‌کند، حتی اگر پرچم دیگری تطابق داشته باشد. برای نمونه -w -N '*' -N '!x' تمام نمادها را به جز x می‌پیراید.

ترتیب نویسه‌های عام اهمیتی ندارد. برای نمونه، -w -N '*' -N '!x' با -w -N '!x' -N '*' یکسان است.

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

گزینه‌های زیر تنها برای اشیاء ELF پیاده‌سازی شده‌اند. در صورت استفاده با سایر اشیاء، llvm-strip یا خطایی صادر می‌کند یا در سکوت از آن‌ها چشم‌پوشی می‌نماید.

به llvm-strip اجازه می‌دهد بخش‌ها را حذف کند حتی اگر به مراجع نامعتبر بخش منجر شود. هر فیلد نامعتبر sh_link روی صفر تنظیم خواهد شد.
حذف نمادهای محلی که با ".L" آغاز می‌شوند و در بازنشانی‌ها به آن‌ها ارجاع داده نشده است از خروجی.
نگه‌داشتن نمادهای از نوع STT_FILE، حتی اگر در غیر این صورت پیراسته می‌شدند.
هنگام حذف بخش‌ها از خروجی، بخش‌های با نام <section> را حذف نکن. این گزینه می‌تواند چندین بار برای نگه‌داشتن چندین بخش مشخص شود.
هنگام حذف نمادها از خروجی، نمادهای با نام <symbol> را حذف نکن. این گزینه می‌تواند چندین بار برای نگه‌داشتن چندین نماد مشخص شود.
حفظ برچسب‌های زمان دسترسی و تغییر در خروجی.
حذف تمام سرآیندهای بخش و تمام داده‌های بخشی که درون قطعه‌ها نیستند از خروجی. توجه داشته باشید که بسیاری از ابزارها قادر به استفاده از شیء فاقد سرآیند بخش نخواهند بود.

گزینه‌های زیر تنها برای اشیاء Mach-O پیاده‌سازی شده‌اند. در صورت استفاده با سایر اشیاء، llvm-strip یا خطایی صادر می‌کند یا در سکوت از آن‌ها چشم‌پوشی می‌نماید.

حذف نمادهای Swift.

در صورت بروز خطا، llvm-strip با یک کد خروج غیرصفر خارج می‌شود. در غیر این صورت، با کد 0 خارج می‌شود.

برای گزارش باگ‌ها، لطفاً به <https://github.com/llvm/llvm-project/labels/tools:llvm-objcopy%2Fstrip> مراجعه کنید.

llvm-objcopy(1) <llvm-objcopy.html>

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

2003-2026, LLVM Project

2026-07-15 22