.\" -*- mode: troff; coding: utf-8 -*- .\" Automatically generated by Pod::Man v6.0.2 (Pod::Simple 3.45) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" \*(C` and \*(C' are quotes in nroff, nothing in troff, for use with C<>. .ie n \{\ . ds C` "" . ds C' "" 'br\} .el\{\ . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Required to disable full justification in groff 1.23.0. .if n .ds AD l .\" ======================================================================== .\" .IX Title "STRIP 1" .TH STRIP 1 2026-01-23 binutils-2.45.1 "GNU Development Tools" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "نام (NAME)" strip \- حذف نمادها و سایر داده‌ها از فایل‌های شیء .SH "خلاصه دستور (SYNOPSIS)" .IX Header "SYNOPSIS" strip [\fB\-F\fR \fIbfdname\fR |\fB\-\-target=\fR\fIbfdname\fR] [\fB\-I\fR \fIbfdname\fR |\fB\-\-input\-target=\fR\fIbfdname\fR] [\fB\-O\fR \fIbfdname\fR |\fB\-\-output\-target=\fR\fIbfdname\fR] [\fB\-s\fR|\fB\-\-strip\-all\fR] [\fB\-S\fR|\fB\-g\fR|\fB\-d\fR|\fB\-\-strip\-debug\fR] [\fB\-\-strip\-dwo\fR] [\fB\-K\fR \fIsymbolname\fR|\fB\-\-keep\-symbol=\fR\fIsymbolname\fR] [\fB\-M\fR|\fB\-\-merge\-notes\fR][\fB\-\-no\-merge\-notes\fR] [\fB\-N\fR \fIsymbolname\fR |\fB\-\-strip\-symbol=\fR\fIsymbolname\fR] [\fB\-w\fR|\fB\-\-wildcard\fR] [\fB\-x\fR|\fB\-\-discard\-all\fR] [\fB\-X\fR |\fB\-\-discard\-locals\fR] [\fB\-R\fR \fIsectionname\fR |\fB\-\-remove\-section=\fR\fIsectionname\fR] [\fB\-\-keep\-section=\fR\fIsectionpattern\fR] [\fB\-\-remove\-relocations=\fR\fIsectionpattern\fR] [\fB\-\-strip\-section\-headers\fR] [\fB\-o\fR \fIfile\fR] [\fB\-p\fR|\fB\-\-preserve\-dates\fR] [\fB\-D\fR|\fB\-\-enable\-deterministic\-archives\fR] [\fB\-U\fR|\fB\-\-disable\-deterministic\-archives\fR] [\fB\-\-keep\-section\-symbols\fR] [\fB\-\-keep\-file\-symbols\fR] [\fB\-\-only\-keep\-debug\fR] [\fB\-\-plugin\fR \fIname\fR] [\fB\-v\fR |\fB\-\-verbose\fR] [\fB\-V\fR|\fB\-\-version\fR] [\fB\-\-help\fR] [\fB\-\-info\fR] \fIobjfile\fR... .SH "توضیحات (DESCRIPTION)" .IX Header "DESCRIPTION" ابزار \fBstrip\fR گنو تمامی نمادها را از فایل‌های شیء \fIobjfile\fR حذف می‌کند. فهرست فایل‌های شیء می‌تواند شامل بایگانی‌ها (archives) نیز باشد. حداقل یک فایل شیء باید مشخص شود. .PP دستور \fBstrip\fR به‌جای نوشتن رونوشت‌های تغییریافته با نام‌های دیگر، فایل‌های مشخص‌شده در آرگومان‌هایش را مستقیماً اصلاح می‌کند. .SH "گزینه‌ها (OPTIONS)" .IX Header "OPTIONS" .IP "\fB\-F\fR \fIbfdname\fR" 4 .IX Item "-F bfdname" .PD 0 .IP \fB\-\-target=\fR\fIbfdname\fR 4 .IX Item "--target=bfdname" .PD با \fIobjfile\fR اصلی به‌صورت فایلی با قالب کد شیء \fIbfdname\fR رفتار کرده و آن را با همان قالب بازنویسی می‌کند. .IP \fB\-\-help\fR 4 .IX Item "--help" خلاصه‌ای از گزینه‌های \fBstrip\fR را نمایش داده و خارج می‌شود. .IP \fB\-\-info\fR 4 .IX Item "--info" فهرستی شامل تمامی معماری‌ها و قالب‌های شیء موجود را نمایش می‌دهد. .IP "\fB\-I\fR \fIbfdname\fR" 4 .IX Item "-I bfdname" .PD 0 .IP \fB\-\-input\-target=\fR\fIbfdname\fR 4 .IX Item "--input-target=bfdname" .PD با \fIobjfile\fR اصلی به‌صورت فایلی با قالب کد شیء \fIbfdname\fR رفتار می‌کند. .IP "\fB\-O\fR \fIbfdname\fR" 4 .IX Item "-O bfdname" .PD 0 .IP \fB\-\-output\-target=\fR\fIbfdname\fR 4 .IX Item "--output-target=bfdname" .PD فایل \fIobjfile\fR را با فایلی در قالب خروجی \fIbfdname\fR جایگزین می‌کند. .IP "\fB\-R\fR \fIsectionname\fR" 4 .IX Item "-R sectionname" .PD 0 .IP \fB\-\-remove\-section=\fR\fIsectionname\fR 4 .IX Item "--remove-section=sectionname" .PD علاوه بر هر بخشی که در حالت عادی ممکن است حذف شود، هر بخشی با نام \fIsectionname\fR را نیز از فایل خروجی حذف می‌کند. این گزینه می‌تواند بیش از یک بار مشخص شود. توجه داشته باشید که استفاده نادرست از این گزینه ممکن است فایل خروجی را غیرقابل استفاده کند. نویسه عام‌منظوره (wildcard) \fB*\fR می‌تواند در انتهای \fIsectionname\fR قرار گیرد؛ در این صورت، هر بخشی که با \fIsectionname\fR شروع شود حذف خواهد شد. .Sp اگر نخستین نویسهٔ \fIsectionpattern\fR علامت تعجب (!) باشد، بخش‌های منطبق حذف نخواهند شد، حتی اگر استفاده پیشین از \fB\-\-remove\-section\fR در همان خط فرمان موجب حذف آن‌ها می‌شد. برای مثال: .Sp .Vb 1 \& \-\-remove\-section=.text.* \-\-remove\-section=!.text.foo .Ve .Sp تمامی بخش‌های منطبق با الگوی \*(Aq.text.*\*(Aq را حذف خواهد کرد، اما بخش \*(Aq.text.foo\*(Aq را حذف نمی‌کند. .IP \fB\-\-keep\-section=\fR\fIsectionpattern\fR 4 .IX Item "--keep-section=sectionpattern" هنگام حذف بخش‌ها از فایل خروجی، بخش‌هایی که با \fIsectionpattern\fR مطابقت دارند را حفظ می‌کند. .IP \fB\-\-remove\-relocations=\fR\fIsectionpattern\fR 4 .IX Item "--remove-relocations=sectionpattern" بازتخصیص‌ها (relocations) را برای هر بخشی که با \fIsectionpattern\fR منطبق باشد از فایل خروجی حذف می‌کند. این گزینه می‌تواند بیش از یک بار مشخص شود. توجه داشته باشید که استفاده نادرست از این گزینه ممکن است فایل خروجی را غیرقابل استفاده کند. نویسه‌های عام‌منظوره در \fIsectionpattern\fR پذیرفته می‌شوند. برای مثال: .Sp .Vb 1 \& \-\-remove\-relocations=.text.* .Ve .Sp بازتخصیص‌ها را برای تمامی بخش‌های منطبق با الگوی \*(Aq.text.*\*(Aq حذف خواهد کرد. .Sp اگر نخستین نویسهٔ \fIsectionpattern\fR علامت تعجب (!) باشد، بازتخصیص‌های بخش‌های منطبق حذف نخواهند شد، حتی اگر استفاده قبلی از \fB\-\-remove\-relocations\fR در همان خط فرمان موجب حذف آن‌ها می‌شد. برای مثال: .Sp .Vb 1 \& \-\-remove\-relocations=.text.* \-\-remove\-relocations=!.text.foo .Ve .Sp تمامی بازتخصیص‌های بخش‌های منطبق با الگوی \*(Aq.text.*\*(Aq را حذف می‌کند، اما بازتخصیص‌های بخش \*(Aq.text.foo\*(Aq را حذف نخواهد کرد. .IP \fB\-\-strip\-section\-headers\fR 4 .IX Item "--strip-section-headers" سرآیندهای بخش‌ها (section headers) را حذف می‌کند. این گزینه مختص فایل‌های ELF است. به‌طور خودکار مستلزم \fB\-\-strip\-all\fR و \fB\-\-merge\-notes\fR است. .IP \fB\-s\fR 4 .IX Item "-s" .PD 0 .IP \fB\-\-strip\-all\fR 4 .IX Item "--strip-all" .PD تمامی نمادها را حذف می‌کند..IP \fB\-g\fR 4 .IX Item "-g" .PD 0 .IP \fB\-S\fR 4 .IX Item "-S" .IP \fB\-d\fR 4 .IX Item "-d" .IP \fB\-\-strip\-debug\fR 4 .IX Item "--strip-debug" .PD تنها نمادهای اشکال‌زدایی را حذف می‌کند. .IP \fB\-\-strip\-dwo\fR 4 .IX Item "--strip-dwo" محتوای تمام بخش‌های DWARF .dwo را حذف کرده و بخش‌های اشکال‌زدایی باقی‌مانده و تمام نمادها را دست‌نخورده باقی می‌گذارد. برای اطلاعات بیشتر، به توضیحات این گزینه در بخش \fBobjcopy\fR مراجعه کنید. .IP \fB\-\-strip\-unneeded\fR 4 .IX Item "--strip-unneeded" علاوه بر نمادها و بخش‌های اشکال‌زدایی که توسط \&\fB\-\-strip\-debug\fR حذف می‌شوند، تمام نمادهایی را که برای پردازش بازنشانی (relocation) مورد نیاز نیستند نیز حذف می‌کند. .IP "\fB\-K\fR \fIsymbolname\fR" 4 .IX Item "-K symbolname" .PD 0 .IP \fB\-\-keep\-symbol=\fR\fIsymbolname\fR 4 .IX Item "--keep-symbol=symbolname" .PD هنگام حذف نمادها، نماد \fIsymbolname\fR را حتی در صورتی که در حالت عادی باید حذف می‌شد، نگه می‌دارد. این گزینه می‌تواند بیش از یک بار مشخص شود. .IP \fB\-M\fR 4 .IX Item "-M" .PD 0 .IP \fB\-\-merge\-notes\fR 4 .IX Item "--merge-notes" .IP \fB\-\-no\-merge\-notes\fR 4 .IX Item "--no-merge-notes" .PD برای فایل‌های ELF، سعی می‌کند (یا سعی نمی‌کند) با حذف یادداشت‌های تکراری، اندازهٔ هر بخش از نوع SHT_NOTE را کاهش دهد. حالت پیش‌فرض تلاش برای این کاهش است، مگر آنکه اطلاعات اشکال‌زدایی یا DWO در حال حذف شدن باشند. .IP "\fB\-N\fR \fIsymbolname\fR" 4 .IX Item "-N symbolname" .PD 0 .IP \fB\-\-strip\-symbol=\fR\fIsymbolname\fR 4 .IX Item "--strip-symbol=symbolname" .PD نماد \fIsymbolname\fR را از فایل مبدأ حذف می‌کند. این گزینه می‌تواند بیش از یک بار مشخص شود و ممکن است با سایر گزینه‌های strip به‌جز \&\fB\-K\fR ترکیب شود. .IP "\fB\-o\fR \fIfile\fR" 4 .IX Item "-o file" به‌جای جایگزین کردن فایل موجود، خروجی پیراسته (strip شده) را در \fIfile\fR قرار می‌دهد. هنگامی که از این آرگومان استفاده می‌شود، تنها یک آرگومان \fIobjfile\fR می‌تواند مشخص شود. .IP \fB\-p\fR 4 .IX Item "-p" .PD 0 .IP \fB\-\-preserve\-dates\fR 4 .IX Item "--preserve-dates" .PD تاریخ‌های دسترسی و تغییر فایل را حفظ می‌کند. .IP \fB\-D\fR 4 .IX Item "-D" .PD 0 .IP \fB\-\-enable\-deterministic\-archives\fR 4 .IX Item "--enable-deterministic-archives" .PD در حالت \fIمعین\fR (deterministic) عمل می‌کند. هنگام کپی کردن اعضای آرشیو و نوشتن نمایهٔ آرشیو، از مقدار صفر برای UIDها، GIDها و برچسب‌های زمانی استفاده می‌کند و حالت‌های فایلی یکسانی را برای تمام فایل‌ها به کار می‌برد. .Sp اگر \fIbinutils\fR با \&\fB\-\-enable\-deterministic\-archives\fR پیکربندی شده باشد، این حالت به‌طور پیش‌فرض فعال است. می‌توان آن را با گزینهٔ \fB\-U\fR در زیر غیرفعال کرد. .IP \fB\-U\fR 4 .IX Item "-U" .PD 0 .IP \fB\-\-disable\-deterministic\-archives\fR 4 .IX Item "--disable-deterministic-archives" .PD در حالت \fIمعین\fR عمل \fIنمی‌کند\fR. این برعکس گزینهٔ \fB\-D\fR در بالا است: هنگام کپی کردن اعضای آرشیو و نوشتن نمایهٔ آرشیو، از مقادیر واقعی UID، GID، برچسب زمانی و حالت‌های فایل آن‌ها استفاده می‌کند. .Sp این حالت پیش‌فرض است مگر آنکه \fIbinutils\fR با \&\fB\-\-enable\-deterministic\-archives\fR پیکربندی شده باشد. .IP \fB\-w\fR 4 .IX Item "-w" .PD 0 .IP \fB\-\-wildcard\fR 4 .IX Item "--wildcard" .PD امکان استفاده از عبارات باقاعده را در \fIsymbolname\fRهای به‌کاررفته در سایر گزینه‌های خط فرمان فراهم می‌کند. عملگرهای علامت سؤال (?)، ستاره (*)، ممیز وارونه (\e) و قلاب‌ها ([]) می‌توانند در هر کجای نام نماد به کار روند. اگر نخستین نویسهٔ نام نماد علامت تعجب (!) باشد، مفهوم سوییچ برای آن نماد معکوس می‌شود. برای نمونه: .Sp .Vb 1 \& \-w \-K !foo \-K fo* .Ve .Sp باعث می‌شود که strip تنها نمادهایی را نگه دارد که با حروف "fo" آغاز می‌شوند، اما نماد "foo" را کنار بگذارد. .IP \fB\-x\fR 4 .IX Item "-x" .PD 0 .IP \fB\-\-discard\-all\fR 4 .IX Item "--discard-all" .PD نمادهای غیرسراسری (non-global) را حذف می‌کند. .IP \fB\-X\fR 4 .IX Item "-X" .PD 0 .IP \fB\-\-discard\-locals\fR 4 .IX Item "--discard-locals" .PD نمادهای محلی تولیدشده توسط کامپایلر را حذف می‌کند. (این نمادها معمولاً با \fBL\fR یا \fB.\fR شروع می‌شوند.) .IP \fB\-\-keep\-section\-symbols\fR 4 .IX Item "--keep-section-symbols" هنگام پیراستن یک فایل، شاید با \fB\-\-strip\-debug\fR یا \&\fB\-\-strip\-unneeded\fR، هر نمادی را که مشخص‌کنندهٔ نام بخش‌ها باشد و در غیر این صورت حذف می‌شد، حفظ می‌کند. .IP \fB\-\-keep\-file\-symbols\fR 4 .IX Item "--keep-file-symbols" هنگام پیراستن یک فایل، شاید با \fB\-\-strip\-debug\fR یا \&\fB\-\-strip\-unneeded\fR، هر نمادی را که مشخص‌کنندهٔ نام فایل‌های مبدأ باشد و در غیر این صورت حذف می‌شد، حفظ می‌کند. .IP \fB\-\-only\-keep\-debug\fR 4 .IX Item "--only-keep-debug" یک فایل را می‌پیراید، محتوای هر بخشی را که توسط \fB\-\-strip\-debug\fR حذف نمی‌شد خالی می‌کند و بخش‌های اشکال‌زدایی را دست‌نخورده باقی می‌گذارد. در فایل‌های ELF، این کار تمام بخش‌های یادداشت (note sections) را نیز در خروجی حفظ می‌کند. .Sp نکته \- سرآیندهای بخش‌های پیراسته‌شده، شامل اندازه‌های آن‌ها، حفظ می‌شوند اما محتویات بخش‌ها دور ریخته می‌شود. سرآیندهای بخش‌ها به این منظور حفظ می‌شوند تا سایر ابزارها بتوانند فایل debuginfo را با فایل اجرایی واقعی تطبیق دهند، حتی اگر آن فایل اجرایی به فضای نشانی متفاوتی بازنشانی شده باشد. .Sp هدف این است که این گزینه در کنار \&\fB\-\-add\-gnu\-debuglink\fR برای ایجاد یک فایل اجرایی دوقسمتی استفاده شود: یکی باینری پیراسته که فضای کمتری در RAM و در توزیع اشغال می‌کند، و دیگری یک فایل اطلاعات اشکال‌زدایی که تنها در صورت نیاز به قابلیت‌های اشکال‌زدایی لازم است. روش پیشنهادی برای ایجاد این فایل‌ها به شرح زیر است: .RS 4 .IP "1." 4 .IX Item "1." \&\f(CW\*(C`foo\*(C'\fR باشد، سپس... .ie n .IP "1." 4 .el .IP "1." 4 .IX Item "1." جهت ساخت فایلی حاوی اطلاعات اشکال‌زدایی. .ie n .IP "1." 4 .el .IP "1." 4 .IX Item "1." جهت ساخت یک فایل اجرایی پیراسته. .ie n .IP "1." 4 .el .IP "1." 4 .IX Item "1." جهت افزودن پیوندی به اطلاعات اشکال‌زدایی درون فایل اجرایی پیراسته. .RE .RS 4 .Sp نکته\-\-\-انتخاب \f(CW\*(C`.dbg\*(C'\fR به‌عنوان پسوند فایل اطلاعات اشکال‌زدایی اختیاری است. همچنین مرحلهٔ \f(CW\*(C`\-\-only\-keep\-debug\*(C'\fR اختیاری است. می‌توانید در عوض این کار را انجام دهید: .IP "1." 4 .IX Item "1." .PD 0 .ie n .IP "1." 4 .el .IP "1." 4 .IX Item "1." .ie n .IP "1." 4 .el .IP "1." 4 .IX Item "1." .ie n .IP "1." 4 .el .IP "1." 4 .IX Item "1." .PD .RE .RS 4 .Sp یعنی فایلی که توسط \fB\-\-add\-gnu\-debuglink\fR به آن اشاره می‌شود می‌تواند فایل اجرایی کامل باشد و نیازی نیست فایلی باشد که توسط سوییچ \&\fB\-\-only\-keep\-debug\fR ایجاد شده است. .Sp نکته\-\-\-این سوییچ تنها برای استفاده روی فایل‌هایی در نظر گرفته شده است که به‌طور کامل پیوند خورده‌اند. استفاده از آن روی فایل‌های شیء (object files) که اطلاعات اشکال‌زدایی در آن‌ها ممکن است ناقص باشد، منطقی نیست. علاوه بر این، قابلیت gnu_debuglink در حال حاضر تنها از وجود یک نام فایل حاوی اطلاعات اشکال‌زدایی پشتیبانی می‌کند، نه چندین نام فایل بر پایهٔ یک نام برای هر فایل شیء. .RE.IP "\fB\-\-plugin\fR \fIname\fR" 4 .IX Item "--plugin name" بارگذاری افزونه با نام \fIname\fR جهت افزودن پشتیبانی از انواع هدف بیشتر. این گزینه تنها در صورتی موجود است که زنجیره ابزار (toolchain) با فعال بودن پشتیبانی از افزونه ساخته شده باشد. .Sp اگر \fB\-\-plugin\fR مشخص نشود، اما پشتیبانی از افزونه فعال باشد، \fBstrip\fR فایل‌های درون \&\fI${libdir}/bfd\-plugins\fR را به ترتیب الفبایی بررسی کرده و اولین افزونه‌ای که شیء مورد نظر را پشتیبانی کند به کار می‌گیرد. .Sp لطفاً توجه داشته باشید که این پوشه جستجوی افزونه، همان پوشه‌ای \fIنیست\fR که توسط گزینه \fB\-plugin\fR در \fBld\fR استفاده می‌شود. به منظور استفاده \fBstrip\fR از افزونه پیونددهنده، باید آن را در پوشه \&\fI${libdir}/bfd\-plugins\fR کپی کرد. برای کامپایل‌های مبتنی بر GCC، نام افزونه پیونددهنده \fIliblto_plugin.so.0.0.0\fR است. برای کامپایل‌های مبتنی بر Clang، نام آن \fILLVMgold.so\fR می‌باشد. افزونه GCC همیشه با نسخه‌های پیشین سازگار به عقب است، بنابراین کپی کردن جدیدترین نسخه آن کفایت می‌کند. .IP \fB\-V\fR 4 .IX Item "-V" .PD 0 .IP \fB\-\-version\fR 4 .IX Item "--version" .PD نمایش شماره نسخه \fBstrip\fR. .IP \fB\-v\fR 4 .IX Item "-v" .PD 0 .IP \fB\-\-verbose\fR 4 .IX Item "--verbose" .PD خروجی با جزئیات: فهرست کردن تمام فایل‌های شیء اصلاح‌شده. در مورد بایگانی‌ها، \fBstrip \-v\fR تمام اعضای بایگانی را فهرست می‌کند. .IP \fB@\fR\fIfile\fR 4 .IX Item "@file" خواندن گزینه‌های خط فرمان از \fIfile\fR. گزینه‌های خوانده‌شده به جای گزینه اصلی @\fIfile\fR قرار می‌گیرند. اگر \fIfile\fR وجود نداشته باشد، یا خوانده نشود، با گزینه به‌صورت تحت‌اللفظی رفتار شده و حذف نمی‌شود. .Sp گزینه‌ها در \fIfile\fR با نویسه‌های فاصله (whitespace) از یکدیگر جدا می‌شوند. یک نویسه فاصله می‌تواند با قرار دادن کل گزینه در علامت نقل‌قول تکی یا دوتایی گنجانده شود. هر نویسه‌ای (از جمله بک‌اسلش) می‌تواند با پیشوند کردن یک بک‌اسلش قبل از آن نویسه درج گردد. خود \fIfile\fR ممکن است شامل گزینه‌های @\fIfile\fR دیگری باشد؛ هر یک از این گزینه‌ها به‌صورت بازگشتی پردازش خواهند شد. .SH "همچنین ببینید (SEE ALSO)" .IX Header "SEE ALSO" مدخل‌های Info برای \fIbinutils\fR. .SH "کپی‌رایت و تکثیر (COPYRIGHT)" .IX Header "COPYRIGHT" Copyright (c) 1991\-2025 Free Software Foundation, Inc. .PP اجازه کپی، توزیع و/یا تغییر این سند تحت شرایط مجوز مستندات آزاد گنو (GNU Free Documentation License)، نسخه ۱.۳ یا هر نسخه بعدی منتشرشده توسط بنیاد نرم‌افزارهای آزاد (Free Software Foundation) اعطا می‌شود؛ بدون بخش‌های تغییرناپذیر، بدون متون روی جلد، و بدون متون پشت جلد. یک نسخه از این مجوز در بخشی با عنوان «GNU Free Documentation License» گنجانده شده است.