| OBJDUMP(1) | GNU Development Tools | OBJDUMP(1) |
نام (NAME)
objdump - نمایش اطلاعات از فایلهای شیء
خلاصه دستور (SYNOPSIS)
objdump [-a|--archive-headers]
[-b bfdname|--target=bfdname]
[-C|--demangle[=style] ]
[-d|--disassemble[=symbol]]
[-D|--disassemble-all]
[-z|--disassemble-zeroes]
[-EB|-EL|--endian={big | little }]
[-f|--file-headers]
[-F|--file-offsets]
[--file-start-context]
[-g|--debugging]
[-e|--debugging-tags]
[-h|--section-headers|--headers]
[-i|--info]
[-j section|--section=section]
[-l|--line-numbers]
[-S|--source]
[--source-comment[=text]]
[-m machine|--architecture=machine]
[-M options|--disassembler-options=options]
[-p|--private-headers]
[-P options|--private=options]
[-r|--reloc]
[-R|--dynamic-reloc]
[-s|--full-contents]
[-Z|--decompress]
[-W[lLiaprmfFsoORtUuTgAck]|
--dwarf[=rawline,=decodedline,=info,=abbrev,=pubnames,=aranges,=macro,=frames,=frames-interp,=str,=str-offsets,=loc,=Ranges,=pubtypes,=trace_info,=trace_abbrev,=trace_aranges,=gdb_index,=addr,=cu_index,=links]]
[-WK|--dwarf=follow-links]
[-WN|--dwarf=no-follow-links]
[-wD|--dwarf=use-debuginfod]
[-wE|--dwarf=do-not-use-debuginfod]
[-L|--process-links]
[--ctf=section]
[--sframe=section]
[-G|--stabs]
[-t|--syms]
[-T|--dynamic-syms]
[-x|--all-headers]
[-w|--wide]
[--start-address=address]
[--stop-address=address]
[--no-addresses]
[--prefix-addresses]
[--[no-]show-raw-insn]
[--adjust-vma=offset]
[--show-all-symbols]
[--dwarf-depth=n]
[--dwarf-start=n]
[--ctf-parent=section]
[--no-recurse-limit|--recurse-limit]
[--special-syms]
[--prefix=prefix]
[--prefix-strip=level]
[--insn-width=width]
[--visualize-jumps[=color|=extended-color|=off]
[--disassembler-color=[off|terminal|on|extended]
[-U method] [--unicode=method]
[-V|--version]
[-H|--help]
objfile....SH
"توضیحات
(DESCRIPTION)" دستور objdump
اطلاعات
مربوط به یک
یا چند فایل
شیء (object file) را
نمایش
میدهد.
گزینهها
تعیین
میکنند که
چه اطلاعات
خاصی نمایش
داده شود.
این
اطلاعات
بیشتر برای
برنامهنویسانی
مفید است که
روی
ابزارهای
کامپایل
کار
میکنند،
برعکس
برنامهنویسانی
که صرفاً
میخواهند
برنامهشان
کامپایل
شده و اجرا
شود.
عبارت objfile... فایلهای شیء هستند که باید بررسی شوند. هنگامی که فایلهای آرشیو را مشخص میکنید، objdump اطلاعات مربوط به تکتک فایلهای شیء عضو آن آرشیو را نشان میدهد.
گزینهها (OPTIONS)
فرمهای کوتاه و بلند گزینهها که در اینجا بهعنوان جایگزین نشان داده شدهاند، معادل یکدیگرند. حداقل باید یکی از گزینههای موجود در فهرست -a,-d,-D,-e,-f,-g,-G,-h,-H,-p,-P,-r,-R,-s,-S,-t,-T,-V,-x مشخص شود.
- -a
- --archive-header
- اگر هر یک از فایلهای objfile از نوع آرشیو باشند، اطلاعات سرآیند آرشیو را (در قالبی شبیه به ls -l) نمایش میدهد. علاوه بر اطلاعاتی که میتوانید با ar tv فهرست کنید، objdump -a قالب فایل شیء هر عضو آرشیو را نیز نشان میدهد.
- --adjust-vma=offset
- هنگام تخلیه و استخراج اطلاعات، ابتدا مقدار offset را به آدرس تمام بخشها اضافه میکند. این گزینه زمانی مفید است که آدرس بخشها با جدول نمادها مطابقت نداشته باشد؛ حالتی که ممکن است هنگام قرار دادن بخشها در آدرسهای مشخص در قالبهایی رخ دهد که نمیتوانند آدرس بخشها را نمایش دهند، مانند a.out.
- -b bfdname
- --target=bfdname
- مشخص
میکند که
قالب کد شیء
برای
فایلهای
شیء، bfdname است.
این گزینه
ممکن است
ضروری
نباشد؛ objdump
میتواند
بهطور
خودکار
بسیاری از
قالبها را
تشخیص دهد.
بهعنوان مثال،
objdump -b oasys -m vax -h fu.o
اطلاعات خلاصهای از سرآیندهای بخش (-h) فایل fu.o را نمایش میدهد، که صراحتاً (-m) بهعنوان یک فایل شیء VAX در قالب تولید شده توسط کامپایلرهای Oasys مشخص شده است. با گزینهٔ -i میتوانید قالبهای موجود را فهرست کنید.
- -C
- --demangle[=style]
- رمزگشایی (demangle) نام نمادهای سطح پایین به نامهای سطح کاربر. این گزینه علاوه بر حذف هرگونه زیرخط اولیه که توسط سیستم اضافه شده است، نام توابع ++C را خوانا میکند. کامپایلرهای مختلف شیوههای متفاوتی برای دستکاری نام (mangling) دارند. از آرگومان اختیاری شیوهٔ demangling میتوان برای انتخاب شیوهٔ مناسب کامپایلر خود استفاده کرد.
- --recurse-limit
- --no-recurse-limit
- --recursion-limit
- --no-recursion-limit
- محدودیت
تعداد
بازگشتهای
انجامشده
هنگام demangle
کردن
رشتهها را
فعال یا
غیرفعال
میکند. از
آنجا که
قالبهای mangling
نام اجازهٔ
سطوح
نامحدودی
از بازگشت
را
میدهند،
امکان
ایجاد
رشتههایی
وجود دارد
که
رمزگشایی
آنها فضای
پشتهٔ
موجود در
ماشین
میزبان را
تمام کرده و
موجب خطای
حافظه شود.
این
محدودیت با
محدود کردن
بازگشت به 2048
سطح تو در
تو، تلاش
میکند از
وقوع این
اتفاق
جلوگیری
کند.
حالت پیشفرض این است که این محدودیت فعال باشد، اما غیرفعال کردن آن ممکن است برای demangle کردن نامهای واقعاً پیچیده لازم باشد. با این حال توجه داشته باشید که اگر محدودیت بازگشت غیرفعال شود، اتمام فضای پشته محتمل است و هرگونه گزارش باگ دربارهٔ چنین رویدادی رد خواهد شد.
- -g
- --debugging
- اطلاعات اشکالزدایی را نمایش میدهد. این گزینه سعی میکند اطلاعات قالب اشکالزدایی STABS ذخیرهشده در فایل را تجزیه کرده و آن را با ساختار نحوی شبیه به زبان C چاپ کند. اگر هیچ اطلاعات اشکالزدایی STABS یافت نشود، این گزینه به گزینهٔ -W رجوع میکند تا هرگونه اطلاعات DWARF در فایل را چاپ کند.
- -e
- --debugging-tags
- مشابه -g است، اما اطلاعات در قالبی سازگار با ابزار ctags تولید میشود.
- -d
- --disassemble
- --disassemble=symbol
- نمادهای
یادافزای
اسمبلی (mnemonics)
را برای
دستورالعملهای
ماشین از
فایل ورودی
نمایش
میدهد. این
گزینه فقط
بخشهایی
را
دیساسمبل
میکند که
انتظار
میرود
شامل
دستورالعملها
باشند. اگر
آرگومان
اختیاری symbol
داده شود
(احتمالاً
چندین بار)،
یادافزاهای
اسمبلی را
از (تمام) symbol
شروع کرده و
نمایش
میدهد. اگر
symbol نام یک
تابع باشد،
عمل
دیساسمبل
در انتهای
تابع متوقف
میشود، در
غیر این
صورت با
رسیدن به
نماد بعدی
متوقف
خواهد شد.
اگر هیچ
تطابقی
برای هیچ symbol
یافت نشود،
چیزی نمایش
داده
نخواهد شد.
توجه داشته باشید اگر گزینهٔ --dwarf=follow-links فعال باشد، هر جدول نمادی در فایلهای اطلاعات اشکالزدایی پیوندیافته خوانده شده و هنگام دیساسمبل استفاده میشود.
- -D
- --disassemble-all
- مشابه -d
است، اما
محتوای
تمام
بخشهای
غیرخالی و
غیر bss را
دیساسمبل
میکند، نه
فقط
بخشهایی
که انتظار
میرود
شامل
دستورالعملها
باشند.
گزینهٔ -j
ممکن است
برای
انتخاب
بخشهای
خاص
استفاده
شود.
این گزینه همچنین اثر ظریفی بر دیساسمبل دستورالعملها در بخشهای کد دارد. هنگامی که گزینهٔ -d فعال است، objdump فرض میکند هر نمادی که در یک بخش کد وجود دارد، روی مرز بین دستورالعملها رخ میدهد و از دیساسمبل در عرض چنین مرزی خودداری میکند. اما هنگامی که گزینهٔ -D فعال باشد، این فرض نادیده گرفته میشود. این بدان معناست که خروجی -d و -D ممکن است با هم تفاوت داشته باشد، برای مثال اگر دادهها در بخشهای کد ذخیره شده باشند.
اگر معماری مقصد ARM باشد، این سوئیچ همچنین باعث میشود دیساسمبلر قطعات دادهٔ یافتشده در بخشهای کد را به گونهای رمزگشایی کند که گویی دستورالعمل هستند.
توجه داشته باشید اگر گزینهٔ --dwarf=follow-links فعال باشد، هر جدول نمادی در فایلهای اطلاعات اشکالزدایی پیوندیافته خوانده شده و هنگام دیساسمبل استفاده خواهد شد.
- --no-addresses
- هنگام دیساسمبل کردن، آدرسها را در هر خط یا برای نمادها و آفستهای بازنشانی (relocation offsets) چاپ نمیکند. در ترکیب با --no-show-raw-insn، این گزینه میتواند برای مقایسهٔ خروجی کامپایلر مفید باشد.
- --prefix-addresses
- هنگام دیساسمبل کردن، آدرس کامل را در هر خط چاپ میکند. این قالب قدیمیتر دیساسمبل است.
- -EB
- -EL
- --endian={big|little}
- ترتیب بایتها (endianness) در فایلهای شیء را مشخص میکند. این گزینه فقط بر دیساسمبل تأثیر میگذارد و میتواند هنگام دیساسمبل قالبی از فایل که اطلاعات ترتیب بایت در آن شرح داده نشده است، مانند S-records، مفید باشد.
- -f
- --file-headers
- اطلاعات خلاصهای از سرآیند کلی هر یک از فایلهای objfile را نمایش میدهد.
- -F
- --file-offsets
- هنگام دیساسمبل کردن بخشها، هر زمان که نمادی نمایش داده میشود، آفست فایلیِ ناحیهٔ دادهای را که در شرف استخراج است نیز نمایش میدهد. اگر صفرهای متوالی نادیده گرفته شوند، هنگامی که دیساسمبل از سر گرفته میشود، به کاربر اعلام میکند که چه تعداد صفر نادیده گرفته شده است و آفست فایلی مکانی که دیساسمبل از آنجا ادامه مییابد را نشان میدهد. هنگام استخراج بخشها، آفست فایلی محلی را که استخراج از آن شروع میشود نمایش میدهد.
- --file-start-context
- مشخص میکند که هنگام نمایش درهمآمیختهٔ کد منبع و دیساسمبل (با فرض فعال بودن -S) از فایلی که هنوز نمایش داده نشده است، زمینه و متن تا ابتدای فایل گسترش یابد.
- -h
- --section-headers
- نمایش
اطلاعات
خلاصهوار
از
سرآیندهای
بخشِ فایل
شیء.
قطعات فایل ممکن است به نشانیهای غیر استاندارد بازآدرسدهی شوند، برای نمونه با استفاده از گزینههای -Ttext، -Tdata یا -Tbss در ld. با این حال، برخی قالبهای فایل شیء، مانند a.out، نشانی آغازین قطعات فایل را ذخیره نمیکنند. در چنین شرایطی، اگرچه ld بخشها را به درستی بازآدرسدهی میکند، اما استفاده از objdump -h برای فهرست کردن سرآیندهای بخشِ فایل نمیتواند نشانیهای صحیح را نشان دهد. در عوض، نشانیهای معمول را نشان میدهد که برای هدف ضمنی هستند.
توجه داشته باشید در برخی موارد ممکن است هر دو ویژگی READONLY و NOREAD برای یک بخش تنظیم شده باشند. در چنین مواردی ویژگی NOREAD اولویت دارد، اما objdump هر دو را گزارش میکند، چرا که وضعیت دقیق بیتهای پرچم ممکن است اهمیت داشته باشد.
- -H
- --help
- چاپ خلاصهای از گزینههای objdump و خروج.
- -i
- --info
- نمایش فهرستی از تمامی معماریها و قالبهای شیء موجود که میتوان با -b یا -m تعیین کرد.
- -j name
- --section=name
- نمایش اطلاعات مربوط به بخش name. این گزینه میتواند چندین بار مشخص شود.
- -L
- --process-links
- نمایش محتوای بخشهای غیر اشکالزدایی (non-debug) موجود در فایلهای debuginfo جداگانه که به فایل اصلی پیوند داده شدهاند. این گزینه به طور خودکار متضمن گزینه -WK است، و تنها بخشهایی نمایش داده میشوند که توسط گزینههای دیگر خط فرمان درخواست شده باشند.
- -l
- --line-numbers
- برچسبگذاری موارد نمایش داده شده (با استفاده از اطلاعات اشکالزدایی) با نام فایل و شماره خطوط کد منبع متناظر با کد شیء یا بازآدرسدهیهای نشاندادهشده. تنها همراه با -d، -D یا -r کاربرد دارد.
- -m machine
- --architecture=machine
- تعیین
معماری
مورد
استفاده
هنگام
دیزاسمبل
کردن
فایلهای
شیء. این
گزینه
هنگامی که
فایلهای
شیء فاقد
اطلاعات
معماری
هستند
(مانند S-recordها)
میتواند
مفید باشد.
میتوانید
فهرست
معماریهای
موجود را با
گزینه -i
مشاهده
کنید.
در بیشتر معماریها امکان تعیین نام معماری و نوع ماشین که با دونقطه از هم جدا شدهاند وجود دارد. برای نمونه foo:bar به نوع ماشین bar در معماری foo اشاره میکند. اگر objdump برای پشتیبانی از چندین معماری پیکربندی شده باشد، این مورد میتواند مفید باشد.
اگر هدف یک معماری ARM باشد، این سوئیچ اثر دیگری نیز دارد: دیزاسمبل را تنها به دستورالعملهایی محدود میکند که توسط معماری مشخصشده با machine پشتیبانی میشوند. چنانچه فایل ورودی شامل هیچگونه اطلاعات معماری نبوده و استفاده از این سوئیچ ضروری باشد، اما تمایل به دیزاسمبل کردن تمام دستورالعملها داشته باشید، از -marm استفاده کنید.
- -M options
- --disassembler-options=options
- ارسال
اطلاعات
مختص به هدف
به
دیزاسمبلر.
تنها روی
برخی اهداف
پشتیبانی
میشود.
چنانچه
تعیین بیش
از یک گزینه
دیزاسمبلر
لازم باشد،
میتوان
چندین
گزینه -M را
استفاده
کرد یا
آنها را در
یک فهرست
جداشده با
کاما قرار
داد.
در معماری ARC، گزینه dsp چاپ دستورالعملهای DSP را کنترل میکند، spfp چاپ دستورالعملهای ممیز شناور دقتتکی FPX را برمیگزیند، dpfp چاپ دستورالعملهای ممیز شناور دقتدوگانه FPX را برمیگزیند، quarkse_em چاپ دستورالعملهای ویژه QuarkSE-EM را انتخاب میکند، fpuda چاپ دستورالعملهای کمکی دقتدوگانه را تعیین میکند، fpus چاپ دستورالعملهای ممیز شناور دقتتکی FPU را انتخاب میکند، در حالی که fpud چاپ دستورالعملهای ممیز شناور دقتدوگانه FPU را برمیگزیند. علاوه بر این، با استفاده از hex میتوان ترتیبی داد که همه مقادیر فوری (immediates) در قالب شانزدهشانزدهی چاپ شوند. به طور پیشفرض، مقادیر فوری کوتاه در نمایش دهدهی چاپ میشوند، در حالی که مقادیر فوری بلند به صورت شانزدهشانزدهی چاپ میگردند.
گزینه cpu=... امکان اعمال اجباری یک ISA خاص هنگام دیزاسمبل کردن دستورالعملها را فراهم ساخته و مقدار -m یا هر مقداری که در فایل ELF وجود دارد را نادیده میگیرد. این مورد ممکن است برای انتخاب ISAهای ARC EM یا HS مفید باشد، زیرا معماری آنها یکسان است و دیزاسمبلر برای تشخیص این که کد مربوط به EM است یا HS، به دادههای خصوصی سرآیند ELF متکی است. این گزینه میتواند چندین بار مشخص شود - تنها آخرین مقدار استفاده خواهد شد. مقادیر معتبر همانند مقادیر گزینه -mcpu=... در اسمبلر هستند.
اگر هدف یک معماری ARM باشد، میتوان از این سوئیچ برای انتخاب مجموعه نامهای ثباتها در حین دیزاسمبل استفاده کرد. تعیین -M reg-names-std (حالت پیشفرض) نام ثباتها را مطابق با مستندات مجموعه دستورالعمل ARM انتخاب میکند، با این استثنا که ثبات ۱۳ به نام 'sp'، ثبات ۱۴ به نام 'lr' و ثبات ۱۵ به نام 'pc' نامیده میشوند. تعیین -M reg-names-apcs مجموعه نامهای استفادهشده در استانداردهای فراخوانی توابع ARM (APCS) را انتخاب میکند، در حالی که تعیین -M reg-names-raw تنها از r به همراه شماره ثبات استفاده خواهد کرد.
همچنین دو نوع دیگر از طرح نامگذاری ثباتهای APCS وجود دارد که با -M reg-names-atpcs و -M reg-names-special-atpcs فعال میشوند و از قراردادهای نامگذاری استانداردهای فراخوانی توابع ARM/Thumb استفاده میکنند (خواه با نامهای معمول ثباتها یا نامهای ویژه ثباتها).
این گزینه همچنین میتواند در معماریهای ARM برای وادار ساختن دیزاسمبلر به تفسیر تمام دستورالعملها به عنوان دستورالعملهای Thumb با استفاده از سوئیچ --disassembler-options=force-thumb به کار رود. این قابلیت هنگام تلاش برای دیزاسمبل کردن کدهای thumb تولیدشده توسط سایر کامپایلرها مفید است.
برای اهداف AArch64، این سوئیچ میتواند تعیین کند که آیا دستورالعملها به صورت عمومیترین حالت با استفاده از گزینه -M no-aliases دیزاسمبل شوند یا اینکه یادداشتهای دستورالعمل به عنوان توضیح (کامنت) در دیزاسمبل با استفاده از -M notes ایجاد شوند.
برای x86، برخی از گزینهها عملکردهای سوئیچ -m را تکرار میکنند، اما امکان کنترل دقیقتری را فراهم میسازند.
- "x86-64"
- "i386"
- "i8086"
- انتخاب دیزاسمبل برای معماری دادهشده.
- "intel"
- "att"
- انتخاب بین حالت نحو intel و نحو AT&T.
- "amd64"
- "intel64"
- انتخاب بین ISA معماری AMD64 و ISA معماری Intel64.
- "intel-mnemonic"
- "att-mnemonic"
- انتخاب بین حالت نمونیک intel و حالت نمونیک AT&T. توجه: "intel-mnemonic" متضمن "intel" و "att-mnemonic" متضمن "att" است.
- "addr64"
- "addr32"
- "addr16"
- "data32"
- "data16"
- مشخص کردن اندازه پیشفرض نشانی و اندازه عملوند. این پنج گزینه در صورتی که بعداً "x86-64"، "i386" یا "i8086" در رشته گزینهها بیایند، لغو و بازنویسی خواهند شد.
- "suffix"
- در حالت AT&T و همچنین برای مجموعه محدودی از دستورالعملها در حالت Intel، به دیزاسمبلر دستور میدهد که پسوند نمونیک را چاپ کند، حتی اگر پسوند از طریق عملوندها یا در برخی دستورالعملها بر اساس پیشفرضهای حالت اجرا، قابل استنباط باشد.
برای PowerPC، آرگومان raw در -M دیزاسمبل دستورالعملهای سختافزاری را به جای نامهای مستعار انتخاب میکند. به عنوان مثال، شما به جای "clrlwi" عبارت "rlwinm"، و به جای "li" عبارت "addi" را خواهید دید. تمامی آرگومانهای -m در gas که یک پردازنده را انتخاب میکنند، پشتیبانی میشوند. این مقادیر عبارتند از: 403، 405، 440، 464، 476، 601، 603، 604، 620، 7400، 7410، 7450، 7455، 750cl، 821، 850، 860، a2، booke، booke32، cell، com، e200z2، e200z4، e300، e500، e500mc، e500mc64، e500x2، e5500، e6500، efs، power4، power5، power6، power7، power8، power9، power10، power11، ppc، ppc32، ppc64، ppc64bridge، ppcps، pwr، pwr2، pwr4، pwr5، pwr5x، pwr6، pwr7، pwr8، pwr9، pwr10، pwr11، pwrx، titan، vle و future. گزینههای 32 و 64 انتخاب پیشفرض یا قبلی پردازنده را اصلاح کرده و به ترتیب دستورالعملهای ۶۴ بیتی را غیرفعال و فعال میسازند. علاوه بر این، altivec، any، lsp، htm، vsx، spe و spe2 قابلیتهایی را به انتخاب پردازنده قبلی یا بعدی میافزایند. گزینه any هر opcode شناختهشده برای binutils را دیزاسمبل خواهد کرد، اما در مواردی که یک opcode دو معنی متفاوت یا آرگومانهای مختلفی داشته باشد، ممکن است دیزاسمبل مدنظر خود را نبینید. اگر بدون تعیین پردازنده دیزاسمبل کنید، یک پیشفرض از اطلاعات استخراجشده توسط BFD از سرآیند فایلهای شیء انتخاب خواهد شد، اما نتیجه باز هم ممکن است مطابق انتظار شما نباشد.
برای RISC-V، گزینههای زیر پشتیبانی میشوند:
- "max"
- دیزاسمبل بدون بررسی رشته معماری. این یک حالت تلاش بهینه (best effort) است، بنابراین برای افزونههای همپوشان ISA، اولین تطابق (که ممکن است در یک بافتار خاص نادرست باشد) برای رمزگشایی دستورالعمل به کار میرود. این حالت زمانی مفید است که فایل ELF رشته ISA را ارائه ندهد و مانع از استنتاج خودکار زیرمجموعه ISA شود، و رشته پیشفرض جایگزین ("rv64gc") همه دستورالعملهای باینری را پوشش ندهد.
- "numeric"
- چاپ نامهای عددی ثباتها به جای نامهای ABI (برای مثال، چاپ "x2" به جای "sp").
- "no-aliases"
- دیزاسمبل تنها به شکل دستورالعملهای استاندارد (canonical). به عنوان مثال، دستورالعملهای فشرده دقیقاً به همان صورت نمایش داده میشوند ("addi sp,sp,-128" به صورت "c.addi16sp sp,-128" خواهد بود).
- "priv-spec=SPEC"
- چاپ CSR بر اساس نسخه مشخصات سطح دسترسی (privilege spec) انتخابشده (مانند 1.10، 1.11، 1.12، 1.13).
برای MIPS، این گزینه چاپ نامهای نمونیک دستورالعملها و نامهای ثباتها را در دستورالعملهای دیزاسمبلشده کنترل میکند. گزینههای متعددی از موارد زیر را میتوان به صورت رشتهای جداشده با کاما تعیین کرد، و گزینههای نامعتبر نادیده گرفته میشوند:
- "no-aliases"
- چاپ نمونیک «خام» (raw) دستورالعمل به جای نمونیک شبهدستور. به عنوان مثال، چاپ 'daddu' یا 'or' به جای 'move'، 'sll' به جای 'nop' و غیره.
- "msa"
- دیزاسمبل دستورالعملهای MSA.
- "virt"
- دیزاسمبل دستورالعملهای مجازیسازی ASE.
- "xpa"
- دیزاسمبل دستورالعملهای eXtended Physical Address (XPA) ASE.
- "gpr-names=ABI"
- چاپ نامهای GPR (ثبات همهمنظوره) متناسب با ABI مشخصشده. به طور پیشفرض، نامهای GPR بر اساس ABI باینریِ در حال دیزاسمبل انتخاب میشوند.
- "fpr-names=ABI"
- چاپ نامهای FPR (ثبات ممیز شناور) متناسب با ABI مشخصشده. به طور پیشفرض، شمارههای FPR به جای نامها چاپ میشوند.
- "cp0-names=ARCH"
- چاپ نامهای ثبات CP0 (کمکپردازنده کنترل سیستم؛ کمکپردازنده ۰) متناسب با پردازنده یا معماری مشخصشده توسط ARCH. به طور پیشفرض، نامهای ثبات CP0 بر اساس معماری و پردازنده باینریِ در حال دیزاسمبل انتخاب میشوند.
- "hwr-names=ARCH"
- چاپ نامهای HWR (ثبات سختافزاری مورد استفاده در دستورالعمل "rdhwr") متناسب با پردازنده یا معماری مشخصشده توسط ARCH. به طور پیشفرض، نامهای HWR بر اساس معماری و پردازنده باینریِ در حال دیزاسمبل انتخاب میشوند.
- "reg-names=ABI"
- چاپ نامهای GPR و FPR متناسب با ABI انتخابشده.
- "reg-names=ARCH"
- چاپ نامهای ثباتهای مختص پردازنده (نامهای ثبات CP0 و HWR) متناسب با پردازنده یا معماری انتخابشده.
برای هر یک از گزینههای فهرستشده در بالا، میتوان ABI یا ARCH را به عنوان numeric تعیین کرد تا برای انواع ثباتهای انتخابی، اعداد به جای نامها چاپ شوند. میتوانید مقادیر در دسترس برای ABI و ARCH را با استفاده از گزینه --help فهرست کنید.
برای VAX، میتوانید نشانیهای ورودی توابع را با -M entry:0xf00ba تعیین کنید. میتوانید از این مورد چندین بار استفاده کنید تا فایلهای باینری VAX که فاقد جدول نمادها هستند (مانند رونوشتهای ROM) به درستی دیزاسمبل شوند. در چنین مواردی، ماسک ورودی تابع در غیر این صورت به عنوان دستورالعملهای VAX رمزگشایی میشد، که احتمالاً منجر به دیزاسمبل نادرست ادامه تابع میگردید.
- --private-headers
- چاپ اطلاعاتی که مختص قالب پرونده شیء است. اطلاعات دقیق چاپشده به قالب پرونده شیء بستگی دارد. برای برخی از قالبهای پرونده شیء، هیچ اطلاعات اضافی چاپ نمیشود.
- -P options
- --private=options
- چاپ
اطلاعاتی
که مختص
قالب
پرونده شیء
است.
آرگومان options
یک فهرست
جداشده با
کاما است که
به قالب
بستگی دارد
(فهرست
گزینهها
با راهنما
نمایش داده
میشود).
برای XCOFF، گزینههای دردسترس عبارتاند از:
- "header"
- "aout"
- "sections"
- "syms"
- "relocs"
- "lineno,"
- "loader"
- "except"
- "typchk"
- "traceback"
- "toc"
- "ldinfo"
برای PE، گزینههای دردسترس عبارتاند از:
- "header"
- "sections"
همه قالبهای شیء از این گزینه پشتیبانی نمیکنند. بهویژه قالب ELF از آن استفاده نمیکند.
- -r
- --reloc
- چاپ مدخلهای بازمکانی پرونده. اگر به همراه -d یا -D استفاده شود، بازمکانیها بهصورت آمیخته با دیساسمبلی چاپ میشوند.
- -R
- --dynamic-reloc
- چاپ
مدخلهای
بازمکانی
پویای
پرونده. این
گزینه تنها
برای
شیءهای
پویا،
مانند
انواع خاصی
از
کتابخانههای
مشترک،
معنادار
است. همانند
-r، اگر با -d
یا -D
استفاده
شود،
بازمکانیها
بهصورت
آمیخته با
دیساسمبلی
چاپ
میشوند.
نکته: objdump از نمایش بازمکانیهای نوع RELR پشتیبانی نمیکند. این موارد میتوانند توسط برنامه readelf نمایش داده شوند.
- -s
- --full-contents
- نمایش محتوای کامل بخشها، که معمولاً در ترکیب با -j برای درخواست بخشهای خاص استفاده میشود. بهطور پیشفرض تمام بخشهای غیرخالی و غیر bss نمایش داده میشوند. بهطور پیشفرض هر بخش فشردهشده به شکل فشرده نمایش داده خواهد شد. برای مشاهده محتوا در حالتی که از فشرده خارج شده باشد، گزینه -Z را به خط فرمان اضافه کنید.
- -S
- --source
- نمایش کد منبع ادغامشده با دیساسمبلی، در صورت امکان. مستلزم -d است.
- --show-all-symbols
- هنگام دیساسمبل کردن، تمام نمادهایی را که با یک آدرس مشخص مطابقت دارند نمایش میدهد، نه فقط نماد اول را.
- --source-comment[=txt]
- مانند گزینه -S، اما تمام خطوط کد منبع با پیشوند txt نمایش داده میشوند. معمولاً txt یک رشته توضیحات خواهد بود که میتواند برای تمایز کد اسمبلی از کد منبع به کار رود. اگر txt داده نشود، رشته پیشفرض "# " (هش و به دنبال آن یک فاصله) استفاده خواهد شد.
- --prefix=prefix
- مشخص کردن prefix برای افزودن به مسیرهای مطلق هنگام استفاده با -S.
- --prefix-strip=level
- مشخص میکند چه تعداد از نامهای دایرکتوری ابتدایی از مسیرهای مطلق ثابت حذف شوند. این گزینه بدون --prefix=prefix هیچ تأثیری ندارد.
- --show-raw-insn
- هنگام دیساسمبل کردن دستورالعملها، دستورالعمل را علاوه بر فرم نمادین، در مبنای شانزده نیز چاپ میکند. این حالت پیشفرض است، مگر زمانی که --prefix-addresses استفاده شده باشد.
- --no-show-raw-insn
- هنگام دیساسمبل کردن دستورالعملها، بایتهای دستورالعمل را چاپ نمیکند. این حالت پیشفرض در هنگام استفاده از --prefix-addresses است.
- --insn-width=width
- نمایش width بایت در یک خط واحد هنگام دیساسمبل کردن دستورالعملها.
- --visualize-jumps[=color|=extended-color|=off]
- بصریسازی
پرشهایی
که درون یک
تابع باقی
میمانند
با رسم هنر
اسکی میان
آدرسهای
مبدأ و
مقصد.
آرگومان
اختیاری =color
با استفاده
از رنگهای
ساده
ترمینال به
خروجی رنگ
اضافه
میکند. به
عنوان روش
دیگر،
آرگومان
=extended-color با
استفاده از
رنگهای ۸
بیتی رنگ
اضافه
خواهد کرد،
اما ممکن
است در تمام
ترمینالها
کار نکنند.
اگر لازم باشد پس از فعالسازی گزینه visualize-jumps آن را غیرفعال کنید، از visualize-jumps=off استفاده نمایید.
- --disassembler-color=off
- --disassembler-color=terminal
- --disassembler-color=on|color|colour
- --disassembler-color=extended|extended-color|extended-colour
- فعال یا
غیرفعال
کردن
برجستهسازی
رنگی نحو در
خروجی
دیساسمبلی.
رفتار
پیشفرض از
طریق
گزینهای
در زمان
پیکربندی
تعیین
میشود.
توجه داشته
باشید که
همه
معماریها
از
برجستهسازی
رنگی نحو
پشتیبانی
نمیکنند و
بسته به
ترمینال
استفادهشده،
خروجی رنگی
ممکن است در
واقع خوانا
نباشد.
آرگومان on رنگها را با استفاده از رنگهای ساده ترمینال اضافه میکند.
آرگومان terminal نیز همین کار را انجام میدهد، اما تنها در صورتی که دستگاه خروجی یک ترمینال باشد.
آرگومان extended-color شبیه به آرگومان on است، اما از رنگهای ۸ بیتی استفاده میکند. این رنگها ممکن است روی تمام ترمینالها کار نکنند.
آرگومان off دیساسمبلی رنگی را غیرفعال میکند.
- -W[lLiaprmfFsoORtUuTgAckK]
- --dwarf[=rawline,=decodedline,=info,=abbrev,=pubnames,=aranges,=macro,=frames,=frames-interp,=str,=str-offsets,=loc,=Ranges,=pubtypes,=trace_info,=trace_abbrev,=trace_aranges,=gdb_index,=addr,=cu_index,=links,=follow-links]
- محتویات بخشهای دیباگ DWARF موجود در پرونده را (در صورت وجود) نمایش میدهد. بخشهای دیباگ فشردهشده پیش از نمایش بهطور خودکار (و موقت) از حالت فشرده خارج میشوند. اگر یک یا چند حرف یا کلمه اختیاری پس از سوئیچ بیاید، تنها همان نوع از دادهها تخلیه خواهند شد. حروف و کلمات به اطلاعات زیر اشاره دارند:
- "a"
- "=abbrev"
- نمایش محتویات بخش .debug_abbrev.
- "A"
- "=addr"
- نمایش محتویات بخش .debug_addr.
- "c"
- "=cu_index"
- نمایش محتویات بخشهای .debug_cu_index و/یا .debug_tu_index.
- "f"
- "=frames"
- نمایش محتویات خام یک بخش .debug_frame.
- "F"
- "=frames-interp"
- نمایش محتویات تفسیرشده یک بخش .debug_frame.
- "g"
- "=gdb_index"
- نمایش محتویات بخشهای .gdb_index و/یا .debug_names.
- "i"
- "=info"
- نمایش محتویات بخش .debug_info. نکته: خروجی این گزینه همچنین میتواند با استفاده از گزینههای --dwarf-depth و --dwarf-start محدود شود.
- "k"
- "=links"
- نمایش محتویات بخشهای .gnu_debuglink، .gnu_debugaltlink و .debug_sup، در صورتی که هر یک از آنها موجود باشد. همچنین پیوندهای پروندههای شیء مجزای dwarf (dwo) را در صورتی که توسط صفتهای DW_AT_GNU_dwo_name یا DW_AT_dwo_name در بخش .debug_info مشخص شده باشند نمایش میدهد.
- "K"
- "=follow-links"
- نمایش
محتویات هر
بخش دیباگ
انتخابشدهای
که در
پرونده(های)
اطلاعات
دیباگ مجزا
و
پیوندخورده
یافت شود.
اگر یک بخش
دیباگ در
بیش از یک
پرونده
وجود داشته
باشد، این
عمل
میتواند
به نمایش
چندین نسخه
از همان بخش
دیباگ منجر
شود.
علاوه بر این، هنگام نمایش صفتهای DWARF، اگر فرمی یافت شود که به پرونده اطلاعات دیباگ مجزا ارجاع میدهد، محتویات ارجاعدادهشده نیز نمایش داده خواهند شد.
نکته - در برخی از توزیعها این گزینه بهطور پیشفرض فعال است. میتوان آن را از طریق گزینه دیباگ N غیرفعال کرد. حالت پیشفرض را میتوان هنگام پیکربندی binutils از طریق گزینههای --enable-follow-debug-links=yes یا --enable-follow-debug-links=no انتخاب کرد. اگر از این گزینهها استفاده نشود، پیشفرض دنبال کردن پیوندهای دیباگ خواهد بود.
نکته - اگر هنگام ساخت binutils پشتیبانی از پروتکل debuginfod فعال شده باشد، این گزینه همچنین شامل تلاشی برای برقراری ارتباط با هر کارساز debuginfod ذکرشده در متغیر محیطی DEBUGINFOD_URLS خواهد بود. رفع این مورد ممکن است مدتی طول بکشد. این رفتار را میتوان از طریق گزینه دیباگ =do-not-use-debuginfod غیرفعال کرد.
- "N"
- "=no-follow-links"
- دنبال کردن پیوندها به پروندههای مجزای اطلاعات دیباگ را غیرفعال میکند.
- "D"
- "=use-debuginfod"
- برقراری ارتباط با کارسازهای debuginfod را در صورت نیاز به دنبال کردن پیوندهای دیباگ فعال میکند. این رفتار پیشفرض است.
- "E"
- "=do-not-use-debuginfod"
- برقراری ارتباط با کارسازهای debuginfod را هنگام نیاز به دنبال کردن پیوندهای دیباگ غیرفعال میکند.
- "l"
- "=rawline"
- نمایش محتویات بخش .debug_line در قالبی خام.
- "L"
- "=decodedline"
- نمایش محتویات تفسیرشده بخش .debug_line.
- "m"
- "=macro"
- نمایش محتویات بخشهای .debug_macro و/یا .debug_macinfo.
- "o"
- "=loc"
- نمایش محتویات بخشهای .debug_loc و/یا .debug_loclists.
- "O"
- "=str-offsets"
- نمایش محتویات بخش .debug_str_offsets.
- "p"
- "=pubnames"
- نمایش محتویات بخشهای .debug_pubnames و/یا .debug_gnu_pubnames.
- "r"
- "=aranges"
- نمایش محتویات بخش .debug_aranges.
- "R"
- "=Ranges"
- نمایش محتویات بخشهای .debug_ranges و/یا .debug_rnglists.
- "s"
- "=str"
- نمایش محتویات بخشهای .debug_str، .debug_line_str و/یا .debug_str_offsets.
- "t"
- "=pubtype"
- نمایش محتویات بخشهای .debug_pubtypes و/یا .debug_gnu_pubtypes.
- "T"
- "=trace_aranges"
- نمایش محتویات بخش .trace_aranges.
- "u"
- "=trace_abbrev"
- نمایش محتویات بخش .trace_abbrev.
- "U"
- "=trace_info"
- نمایش محتویات بخش .trace_info.
نکته: نمایش محتویات بخشهای .debug_static_funcs، .debug_static_vars و debug_weaknames در حال حاضر پشتیبانی نمیشود. تخلیهٔ بخش ".debug_info" را به n فرزند محدود میکند. این گزینه فقط با --debug-dump=info مفید است. حالت پیشفرض، چاپ تمام DIEها است؛ مقدار ویژهٔ 0 برای n نیز همین اثر را خواهد داشت.
با تعیین یک مقدار غیرصفر برای n، رکوردهای DIE در عمق n یا عمیقتر چاپ نخواهند شد. محدودهٔ n بر مبنای صفر است.
- --dwarf-start=n
- فقط DIEهایی
را چاپ
میکند که
با DIE شمارهٔ
n آغاز
میشوند.
این گزینه
فقط با --debug-dump=info
کارآمد است.
در صورت مشخص شدن، این گزینه از چاپ اطلاعات سرایند و تمامی DIEهای قبل از DIE شمارهٔ n جلوگیری میکند. تنها موارد همسطح و فرزندان DIE مشخصشده چاپ خواهند شد.
این گزینه میتواند در ترکیب با --dwarf-depth استفاده شود.
- --dwarf-check
- بررسیهای تکمیلی برای سازگاری اطلاعات Dwarf را فعال میکند.
- --ctf[=section]
- محتویات
بخش CTF
مشخصشده
را نمایش
میدهد.
بخشهای CTF
خود شامل
زیربخشهای
متعددی
هستند که
همگی به
ترتیب
نمایش داده
میشوند.
بهطور پیشفرض، محتویات بخش با نام .ctf نمایش داده میشود که نام تولیدشده توسط ld است.
- --ctf-parent=member
- اگر بخش CTF حاوی انواعی با تعریف مبهم باشد، از یک آرشیو شامل چندین دیکشنری CTF تشکیل میشود که همگی از یک دیکشنری حاوی انواع بدون ابهام ارثبری میکنند. این عضو بهطور پیشفرض همانند بخش دربرگیرندهاش .ctf نامیده میشود، اما امکان تغییر این نام با استفاده از تابع "ctf_link_set_memb_name_changer" در زمان پیوند وجود دارد. هنگام بررسی آرشیوهای CTF که توسط یک پیونددهنده با استفاده از تغییردهندهٔ نام برای تغییر نام عضو آرشیو والد ساخته شدهاند، میتوان از --ctf-parent برای تعیین نام استفادهشده برای والد بهره برد.
- --ctf-parent-section=section
- این گزینه به شما اجازه میدهد تا برای دیکشنری والد CTF حاوی انواع بدون ابهام، بخشی کاملاً متفاوت از بخش دیکشنریهای فرزند شامل بقیه موارد مبهم انتخاب کنید. پیونددهنده اشیاء ELF با چنین ساختاری تولید نمیکند، اما برخی پیونددهندههای شخص ثالث ممکن است این کار را انجام دهند. همچنین برای بررسی CTFهایی که به صورت چندین فایل خام برای ترکیب با objcopy نوشته شدهاند مناسب است؛ زیرا objcopy میتواند آنها را در بخشهای مختلف ELF قرار دهد اما نه در اعضای مختلف یک دیکشنری واحد CTF.
- --sframe[=section]
- محتویات
بخش SFrame
مشخصشده
را نمایش
میدهد.
بهطور پیشفرض، محتویات بخش با نام .sframe نمایش داده میشود که نام تولیدشده توسط ld است.
- -G
- --stabs
- محتویات کامل هر بخش درخواستی را نمایش میدهد. محتویات بخشهای .stab، روی سیستمهایی (مانند Solaris 2.0) کاربرد دارد که ورودیهای جدول نمادهای اشکالزدایی ".stab" در یک بخش ELF حمل میشوند. در بیشتر قالبهای دیگر فایل، ورودیهای جدول نماد اشکالزدایی با نمادهای پیوند در هم آمیخته شدهاند و در خروجی --syms قابل مشاهده هستند.
- --start-address=address
- نمایش دادهها را از آدرس مشخصشده آغاز میکند. این گزینه بر خروجی گزینههای -d، -r و -s اثر میگذارد.
- --stop-address=address
- نمایش دادهها را در آدرس مشخصشده متوقف میکند. این گزینه بر خروجی گزینههای -d، -r و -s اثر میگذارد.
- -t
- --syms
- ورودیهای
جدول نماد
فایل را چاپ
میکند. این
اطلاعات
مشابه
اطلاعات
ارائهشده
توسط
برنامهٔ nm
است، هرچند
قالب نمایش
متفاوت است.
قالب خروجی
به قالب
فایلی که
تخلیه
میشود
بستگی
دارد، اما
دو نوع اصلی
وجود دارد.
یکی از
آنها به
این صورت
است:
[ 4](sec 3)(fl 0x00)(ty 0)(scl 3) (nx 1) 0x00000000 .bss [ 6](sec 1)(fl 0x00)(ty 0)(scl 2) (nx 0) 0x00000000 fred
که در آن، عدد داخل قلابها شمارهٔ ورودی در جدول نمادها است، عدد sec شمارهٔ بخش، مقدار fl بیتهای پرچم نماد، عدد ty نوع نماد، عدد scl کلاس ذخیرهسازی نماد و مقدار nx تعداد ورودیهای کمکی مرتبط با نماد است. دو فیلد پایانی، مقدار نماد و نام آن هستند.
قالب خروجی رایج دیگر که معمولاً در فایلهای مبتنی بر ELF دیده میشود، به این شکل است:
00000000 l d .bss 00000000 .bss 00000000 g .text 00000000 fred
در اینجا نخستین عدد مقدار نماد است (که گاهی اوقات به عنوان آدرس آن نامیده میشود). فیلد بعدی در واقع مجموعهای از نویسهها و فاصلهها است که نشاندهندهٔ بیتهای پرچم تنظیمشده روی نماد هستند. این نویسهها در زیر توضیح داده شدهاند. مورد بعدی بخشی است که نماد با آن مرتبط است، یا اگر بخش مطلق باشد (یعنی به هیچ بخشی متصل نباشد) *ABS* درج میشود، یا اگر در فایلی که تخلیه میشود به بخش ارجاع شده ولی در آنجا تعریف نشده باشد، *UND* خواهد بود.
پس از نام بخش، فیلد دیگری قرار دارد که یک عدد است؛ این عدد برای نمادهای مشترک نشاندهندهٔ همترازی (alignment) و برای سایر نمادها اندازه است. در نهایت نام نماد نمایش داده میشود.
نویسههای پرچم به ۷ گروه به شرح زیر تقسیم میشوند:
- "l"
- "g"
- "u"
- "!"
- نماد محلی (l)، سراسری (g)، سراسری یکتا (u)، نه سراسری و نه محلی (یک فاصله) یا هم سراسری و هم محلی (!) است. یک نماد میتواند بنا به دلایل گوناگون نه محلی باشد و نه سراسری، مثلاً به این دلیل که برای اشکالزدایی به کار میرود؛ اما اگر نمادی هم محلی و هم سراسری باشد، احتمالاً نشاندهندهٔ یک باگ است. نمادهای سراسری یکتا یک افزونهٔ GNU برای مجموعهٔ استاندارد پیوندهای نماد ELF هستند. برای چنین نمادی، پیونددهندهٔ پویا اطمینان حاصل میکند که در تمام فرآیند فقط یک نماد با این نام و نوع مورد استفاده قرار گیرد.
- "w"
- نماد ضعیف (w) یا قوی (یک فاصله) است.
- "C"
- نماد بیانگر یک سازنده (C) یا یک نماد معمولی (یک فاصله) است.
- "W"
- نماد یک هشدار (W) یا یک نماد عادی (یک فاصله) است. نام یک نماد هشدار، پیامی است که در صورت ارجاع به نماد پس از نماد هشدار نمایش داده میشود.
- "I"
- "i"
- نماد یک ارجاع غیرمستقیم به نماد دیگری است (I)، تابعی که باید هنگام پردازش بازنشانی ارزیابی شود (i)، یا یک نماد عادی (یک فاصله).
- "d"
- "D"
- نماد یک نماد اشکالزدایی (d)، یک نماد پویا (D) یا یک نماد عادی (یک فاصله) است.
- "F"
- "f"
- "O"
- نماد نام یک تابع (F)، یک فایل (f)، یک شیء (O) یا صرفاً یک نماد عادی (یک فاصله) است.
- -T
- --dynamic-syms
- ورودیهای
جدول
نمادهای
پویای فایل
را چاپ
میکند. این
گزینه تنها
برای اشیاء
پویا،
مانند
انواع خاصی
از
کتابخانههای
مشترک،
معنادار
است. این
اطلاعات
مشابه
اطلاعات
ارائهشده
توسط
برنامهٔ nm
هنگام
استفاده از
گزینهٔ -D
(--dynamic) است.
قالب خروجی شبیه به خروجی تولیدشده توسط گزینهٔ --syms است، با این تفاوت که یک فیلد اضافی پیش از نام نماد درج میشود که اطلاعات نسخهٔ مرتبط با نماد را ارائه میدهد. اگر نسخه همان نسخهٔ پیشفرضی باشد که هنگام حل ارجاعات بدون نسخه به نماد استفاده میشود، به همان صورت نمایش داده میشود؛ در غیر این صورت درون پرانتز قرار میگیرد..IP --special-syms 4 هنگام نمایش نمادها، آنهایی را نیز که معماری مقصد به نوعی خاص تلقی میکند و به طور معمول برای کاربر اهمیتی ندارند، شامل میشود.
- -U [d|i|l|e|x|h]
- --unicode=[default|invalid|locale|escape|hex|highlight]
- نمایش
نویسههای
چندبایتی
کدگذاریشده
با UTF-8 را در
رشتهها
کنترل
میکند.
حالت
پیشفرض
(--unicode=default) این
است که هیچ
رفتار خاصی
با آنها
انجام نشود.
گزینهٔ --unicode=locale
توالی را در
محلیسازی
(locale) فعلی
نمایش
میدهد، که
ممکن است از
آنها
پشتیبانی
کند یا
نکند.
گزینههای
--unicode=hex و --unicode=invalid
آنها را به
صورت
توالیهای
بایتی
هگزادسیمال
محصور در
قلابها یا
ابروها
نمایش
میدهند.
گزینهٔ --unicode=escape آنها را به صورت توالیهای گریز (\uxxxx) نمایش میدهد و گزینهٔ --unicode=highlight آنها را به عنوان توالیهای گریز برجستهشده با رنگ قرمز (در صورت پشتیبانی دستگاه خروجی) نمایش میدهد. هدف از رنگآمیزی، جلب توجه به حضور توالیهای یونیکد در جاهایی است که انتظار وجود آنها نمیرود.
- -V
- --version
- شمارهٔ نسخهٔ objdump را چاپ کرده و خارج میشود.
- -x
- --all-headers
- تمام اطلاعات سرایند موجود، از جمله جدول نمادها و مدخلهای بازنشانی (relocation) را نمایش میدهد. استفاده از -x معادل تعیین تمام گزینههای -a -f -h -p -r -t است.
- -w
- --wide
- قالببندی برخی سطرها برای دستگاههای خروجی که بیش از ۸۰ ستون دارند. همچنین از کوتاهسازی (truncate) نام نمادها هنگام نمایش آنها جلوگیری میکند.
- -z
- --disassemble-zeroes
- بهطور معمول خروجی واسازی (disassembly) از بلوکهای صفر عبور میکند. این گزینه به واساز دستور میدهد تا درست مانند هر دادهٔ دیگری، آن بلوکها را نیز واسازی کند.
- -Z
- --decompress
- گزینهٔ -Z برای استفاده همراه با گزینهٔ -s در نظر گرفته شده است. این گزینه به objdump دستور میدهد تا پیش از نمایش محتویات بخشهای فشردهشده، آنها را از حالت فشرده خارج کند.
- @file
- گزینههای
خط فرمان را
از file
میخواند.
گزینههای
خواندهشده
به جای
گزینهٔ
اصلی @file
جایگزین
میشوند.
اگر file وجود
نداشته
باشد یا
قابل
خواندن
نباشد، با
گزینه
بهصورت
لفظی
برخورد
میشود و
حذف نخواهد
شد.
گزینهها در file با فاصلههای خالی از هم جدا میشوند. یک نویسهٔ فاصله را میتوان با قرار دادن کل گزینه درون گیومهٔ تکی یا جفتی گنجاند. هر نویسهای (از جمله بکاسلش) را میتوان با افزودن پیشوند بکاسلش به آن درج کرد. خود file میتواند حاوی گزینههای @file دیگری باشد؛ چنین گزینههایی بهصورت بازگشتی پردازش خواهند شد.
همچنین ببینید (SEE ALSO)
nm(1)، readelf(1) و مدخلهای Info برای binutils.
کپیرایت و تکثیر (COPYRIGHT)
حق نشر (c) متعلق است به Free Software Foundation, Inc. از ۱۹۹۱ تا ۲۰۲۵.
اجازهٔ کپی، توزیع و/یا تغییر این سند تحت شرایط «مجوز مستندات آزاد گنو» (GNU Free Documentation License)، نسخهٔ ۱.۳ یا هر نسخهٔ بعدی منتشرشده توسط بنیاد نرمافزارهای آزاد؛ بدون بخشهای تغییرناپذیر، بدون متنهای روی جلد، و بدون متنهای پشت جلد داده میشود. نسخهای از این مجوز در بخش موسوم به «GNU Free Documentation License» آورده شده است.
| 2026-01-23 | binutils-2.45.1 |