| 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... فایلهای شیئی هستند که باید بررسی شوند. هنگامی که بایگانیها (archives) را مشخص میکنید، 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
- هنگام تخلیه اطلاعات (dump)، ابتدا مقدار 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) متفاوتی دارند. از آرگومان اختیاری سبک رمزگشایی میتوان برای انتخاب سبک مناسب با کامپایلر خود استفاده کرد.
- --recurse-limit
- --no-recurse-limit
- --recursion-limit
- --no-recursion-limit
- محدودیتی
را بر میزان
بازگشت (recursion)
انجامشده
هنگام
رمزگشایی
رشتهها
فعال یا
غیرفعال
میکند. از
آنجا که
قالبهای
درهمریزی
نام امکان
ایجاد سطوح
نامحدودی
از بازگشت
را
میدهند،
ساخت
رشتههایی
که
رمزگشایی
آنها تمام
فضای پشتهٔ
موجود در
ماشین
میزبان را
مصرف کند و
منجر به
خطای حافظه
شود، ممکن
است. این
محدودیت با
محدود کردن
بازگشت به
۲۰۴۸ سطح
تودرتو،
تلاش
میکند از
وقوع این
اتفاق
جلوگیری
کند.
حالت پیشفرض فعال بودن این محدودیت است، اما غیرفعال کردن آن برای رمزگشایی نامهای واقعاً پیچیده ممکن است ضروری باشد. با این حال توجه داشته باشید که در صورت غیرفعال بودن محدودیت بازگشت، امکان اتمام فضای پشته وجود دارد و هرگونه گزارش باگ در مورد چنین اتفاقی رد خواهد شد.
- -g
- --debugging
- اطلاعات اشکالزدایی را نمایش میدهد. این گزینه تلاش میکند اطلاعات قالب اشکالزدایی STABS ذخیرهشده در فایل را تجزیه کرده و آن را با نگارشی مشابه زبان C چاپ کند. اگر هیچ اطلاعات اشکالزدایی STABS یافت نشد، این گزینه به گزینهٔ -W بازمیگردد تا هرگونه اطلاعات DWARF در فایل را چاپ کند.
- -e
- --debugging-tags
- مشابه -g، اما اطلاعات در قالبی سازگار با ابزار ctags تولید میشود.
- -d
- --disassemble
- --disassemble=symbol
- یادمانهای
اسمبلی (assembler mnemonics)
دستورالعملهای
ماشین را از
فایل ورودی
نمایش
میدهد. این
گزینه تنها
بخشهایی
را واسمبلی
(disassemble) میکند
که انتظار
میرود
حاوی
دستورالعملها
باشند. اگر
آرگومان
اختیاری 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
- --headers
- اطلاعات
خلاصهای
از
سرآیندهای
بخشهای
فایل شیء (object file)
را نمایش
میدهد.
قطعههای فایل ممکن است به نشانیهای غیراستاندارد بازنشانی (relocate) شوند، برای نمونه با استفاده از گزینههای -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
- محتویات بخشهای غیردیباگ موجود در فایلهای مجزای debuginfo را که به فایل اصلی پیوند دارند نمایش میدهد. این گزینه بهطور خودکار مستلزم گزینهٔ -WK است و تنها بخشهایی نمایش داده میشوند که توسط گزینههای دیگر خط فرمان درخواست شده باشند.
- -l
- --line-numbers
- نمایش را (با استفاده از اطلاعات دیباگ) با نام فایل و شماره خطهای کد منبع متناظر با کد شیء یا جابهجاییهای (relocs) نشاندادهشده برچسبگذاری میکند. تنها با -d، -D یا -r مفید است.
- -m machine
- --architecture=machine
- معماری
مورد
استفاده
هنگام
دیزاسمبل
کردن
فایلهای
شیء را مشخص
میکند. این
گزینه
میتواند
هنگام
دیزاسمبل
فایلهای
شیئی که
فاقد
اطلاعات
معماری
هستند
(مانند S-records)
مفید باشد.
میتوانید
معماریهای
موجود را با
گزینهٔ -i
فهرست کنید.
برای بیشتر معماریها امکان وارد کردن نام معماری و نام ماشین بهصورتی که با دونقطه از هم جدا شدهاند وجود دارد. برای نمونه foo:bar به نوع ماشین bar در معماری foo اشاره خواهد داشت. این قابلیت در صورتی که objdump برای پشتیبانی از چندین معماری پیکربندی شده باشد، میتواند مفید باشد.
اگر مقصد یک معماری ARM باشد، این سوییچ تأثیر دیگری نیز دارد. دیزاسمبل را تنها به دستورالعملهایی محدود میکند که توسط معماری مشخصشده در machine پشتیبانی میشوند. اگر استفاده از این سوییچ به این دلیل لازم است که فایل ورودی هیچ اطلاعات معماری ندارد، اما همچنین تمایل دارید که تمامی دستورالعملها دیزاسمبل شوند، از -marm استفاده کنید.
- -M options
- --disassembler-options=options
- اطلاعات
ویژهٔ مقصد
را به
دیزاسمبلر
ارسال
میکند. فقط
در برخی
مقصدها
پشتیبانی
میشود. اگر
مشخص کردن
بیش از یک
گزینه برای
دیزاسمبلر
لازم باشد،
میتوان از
گزینههای
متعدد -M
استفاده
کرد یا
آنها را
بهصورت
فهرستی
جداشده با
کاما در
کنار هم
قرار داد.
برای ARC، مقدار dsp چاپ دستورالعملهای DSP را کنترل میکند، spfp چاپ دستورالعملهای ممیز شناور (FP) دقت تکی FPX را انتخاب میکند، dpfp چاپ دستورالعملهای ممیز شناور دقت دوگانه FPX را برمیگزیند، quarkse_em چاپ دستورالعملهای ویژه QuarkSE-EM را انتخاب میکند، fpuda چاپ دستورالعملهای کمکی دقت دوگانه را برمیگزیند، fpus چاپ دستورالعملهای FP دقت تکی FPU را انتخاب میکند، در حالی که fpud چاپ دستورالعملهای FP دقت دوگانه 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 را برمیگزیند، در حالی که تعیین -M reg-names-raw صرفاً از r بههمراه شماره ثبات استفاده میکند.
همچنین دو متغیر دیگر از شیوه نامگذاری ثباتهای APCS وجود دارد که توسط -M reg-names-atpcs و -M reg-names-special-atpcs فعال میشوند و از قراردادهای نامگذاری استاندار فراخوانی رویه ARM/Thumb استفاده میکنند (چه با نامهای عادی ثباتها و چه با نامهای ویژه ثباتها).
این گزینه همچنین میتواند برای معماریهای ARM به کار رود تا با استفاده از سوییچ --disassembler-options=force-thumb دیزاسمبلر را وادار کند تمامی دستورالعملها را به عنوان دستورالعملهای Thumb تفسیر نماید. این گزینه هنگامی که قصد دیزاسمبل کردن کد thumb تولیدشده توسط سایر کامپایلرها را دارید، میتواند مفید باشد.
برای مقصدهای AArch64 این سوییچ میتواند تعیین کند که آیا دستورالعملها با استفاده از گزینهٔ -M no-aliases به صورت عمومیترین دستورالعمل دیزاسمبل شوند یا یادداشتهای دستورالعمل با استفاده از -M notes به شکل نظر (comment) در دیزاسمبل درج شوند.
برای x86، برخی از این گزینهها عملکردهای سوییچ -m را تکرار میکنند، اما امکان کنترل دقیقتری را فراهم میسازند.
- "x86-64"
- "i386"
- "i8086"
- دیزاسمبل را برای معماری دادهشده انتخاب میکند.
- "intel"
- "att"
- انتخاب بین حالت نحو intel و حالت نحو AT&T.
- "amd64"
- "intel64"
- انتخاب بین AMD64 ISA و Intel64 ISA.
- "intel-mnemonic"
- "att-mnemonic"
- انتخاب بین حالت نمادین (mnemonic) intel و حالت نمادین AT&T. نکته: "intel-mnemonic" مستلزم "intel" بوده و "att-mnemonic" مستلزم "att" است.
- "addr64"
- "addr32"
- "addr16"
- "data32"
- "data16"
- تعیین اندازهٔ پیشفرض آدرس و اندازهٔ عملوند (operand). این پنج گزینه در صورتی که "x86-64"، "i386" یا "i8086" بعداً در رشتهٔ گزینهها ظاهر شوند، نادیده گرفته خواهند شد.
- "suffix"
- در حالت AT&T و همچنین برای مجموعهٔ محدودی از دستورالعملها در حالت Intel، به دیساسمبلر دستور میدهد که پسوند نمادین را حتی زمانی که پسوند میتواند توسط عملوندها یا برای برخی دستورالعملها توسط پیشفرضهای حالت اجرا استنباط شود، چاپ کند.
برای PowerPC، آرگومان raw مربوط به -M، دیساسمبل کردن دستورالعملهای سختافزاری را بهجای نامهای مستعار انتخاب میکند. برای مثال، شما "rlwinm" را بهجای "clrlwi"، و "addi" را بهجای "li" خواهید دید. تمام آرگومانهای -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 را دیساسمبل خواهد کرد، اما در مواردی که یک کُد دستوری دارای دو مفهوم متفاوت یا آرگومانهای گوناگون باشد، ممکن است دیساسمبل مورد انتظار خود را مشاهده نکنید. اگر بدون تعیین پردازنده دیساسمبل کنید، یک گزینهٔ پیشفرض بر اساس اطلاعات استخراجشده توسط BFD از سرآیند فایلهای شیء انتخاب خواهد شد، اما باز هم ممکن است نتیجه مطابق با انتظار شما نباشد.
برای RISC-V، گزینههای زیر پشتیبانی میشوند:
- "max"
- دیساسمبل کردن بدون بررسی رشتهٔ معماری. این یک حالت بهترین تلاش (best effort) است، بنابراین برای افزونههای همپوشان ISA، نخستین تطابق (که ممکن است در یک زمینهٔ خاص نادرست باشد) برای رمزگشایی دستورالعمل استفاده خواهد شد. این حالت زمانی مفید است که فایل ELF رشتهٔ ISA را مشخص نکرده باشد، که مانع استنتاج خودکار زیرمجموعهٔ 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"
- چاپ نام نمادین «خام» دستورالعمل بهجای برخی نامهای نمادین شبهدستورالعمل (pseudo instruction). یعنی چاپ 'daddu' یا 'or' بهجای 'move'، 'sll' بهجای 'nop' و غیره.
- "msa"
- دیساسمبل کردن دستورالعملهای MSA.
- "virt"
- دیساسمبل کردن دستورالعملهای ASE مجازیسازی.
- "xpa"
- دیساسمبل کردن دستورالعملهای ASE آدرس فیزیکی گسترشیافته (XPA).
- "gpr-names=ABI"
- چاپ نامهای GPR (ثبات عمومی / general-purpose register) متناسب با ABI مشخصشده. بهطور پیشفرض، نامهای GPR بر اساس ABI فایل باینری در حال دیساسمبل شدن انتخاب میشوند.
- "fpr-names=ABI"
- چاپ نامهای FPR (ثبات ممیز شناور / floating-point register) متناسب با 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
- مدخلهای بازمکانی (relocation) فایل را چاپ میکند. در صورت استفاده به همراه -d یا -D، بازمکانیها به صورت آمیخته با واسازی (disassembly) چاپ میشوند.
- -R
- --dynamic-reloc
- مدخلهای
بازمکانی
پویای فایل
را چاپ
میکند. این
گزینه فقط
برای اشیاء
پویا،
مانند
انواع خاصی
از
کتابخانههای
اشتراکی،
معنادار
است. همانند
-r، در صورت
استفاده به
همراه -d یا
-D،
بازمکانیها
به صورت
آمیخته با
واسازی چاپ
میشوند.
نکته: objdump از نمایش بازمکانیهای نوع RELR پشتیبانی نمیکند. این موارد میتوانند توسط برنامهٔ readelf نمایش داده شوند.
- -s
- --full-contents
- محتوای کامل بخشها (sections) را نمایش میدهد، که اغلب در ترکیب با -j برای درخواست بخشهای خاص استفاده میشود. بهطور پیشفرض تمام بخشهای غیرخالی و غیر bss نمایش داده میشوند. بهطور پیشفرض هر بخش فشردهشده به شکل فشرده نمایش داده خواهد شد. به منظور دیدن محتوا به شکل فشردهنشده، گزینهٔ -Z را به خط فرمان بیفزایید.
- -S
- --source
- در صورت امکان، کد منبع را به صورت آمیخته با واسازی نمایش میدهد. شامل -d نیز میشود.
- --show-all-symbols
- هنگام واسازی، تمام نمادهایی که با یک نشانی مشخص مطابقت دارند را نشان میدهد، نه فقط اولین مورد را.
- --source-comment[=txt]
- مانند گزینهٔ -S است، اما تمام خطوط کد منبع با یک پیشوند txt نمایش داده میشوند. بهطور معمول txt یک رشتهٔ توضیحات خواهد بود که میتواند برای تفکیک کد اسمبلی از کد منبع به کار رود. اگر txt مشخص نشود، یک رشتهٔ پیشفرض به شکل "# " (کاراکتر هش به همراه یک فاصله) استفاده خواهد شد.
- --prefix=prefix
- مشخص میکند که هنگام استفاده به همراه -S، پیشوند prefix به مسیرهای مطلق افزوده شود.
- --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]
- پرشهایی
که داخل یک
تابع باقی
میمانند
را با رسم
هنر اسکی (ASCII art)
بین
نشانیهای
مبدأ و مقصد
مصورسازی
میکند.
آرگومان
اختیاری =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 واسازی رنگی را غیرفعال میکند..IP -W[lLiaprmfFsoORtUuTgAckK] 4
- --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 تعیین کرد. در صورت عدم استفاده از این موارد، پیشفرض فعال بودن دنبال کردن پیوندهای اشکالزدایی است.
نکته - در صورتی که پشتیبانی از پروتکل debuginfod در زمان ساخت binutils فعال شده باشد، این گزینه تلاشی برای برقراری ارتباط با سرورهای 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 در حال حاضر پشتیبانی نمیشود.
- --dwarf-depth=n
- تخلیه (dump) بخش
".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
- محتوای کامل هر بخش درخواستشده را نمایش میدهد. محتویات بخشهای تنها در سیستمهایی (مانند Solaris 2.0) مفید است که در آنها مدخلهای جدول نمادهای اشکالزدایی ".stab" در یک بخش ELF حمل میشوند. در بیشتر قالبهای پروندهٔ دیگر، مدخلهای جدول نماد اشکالزدایی با نمادهای پیوند در هم آمیخته شدهاند و در خروجی --syms قابل مشاهده هستند.
- --start-address=address
- نمایش دادهها را از نشانی مشخصشده آغاز میکند. این گزینه بر خروجی گزینههای -d، -r و -s تأثیر میگذارد.
- --stop-address=address
- نمایش دادهها را در نشانی مشخصشده متوقف میکند. این گزینه بر خروجی گزینههای -d، -r و -s تأثیر میگذارد.
- -t
- --syms
- مدخلهای
جدول
نمادهای
فایل را چاپ
میکند. این
شبیه به
اطلاعات
ارائهشده
توسط
برنامه nm
است، اگرچه
قالب نمایش
متفاوت است.
قالب خروجی
به قالب
فایلی که
محتوای آن
روگرفت (dump)
میشود
بستگی
دارد، اما
دو نوع اصلی
وجود دارد.
یکی به این
صورت است:
[ 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 شماره بخش (section) است، مقدار fl بیتهای پرچم نماد هستند، شماره ty نوع نماد است، شماره scl رده ذخیرهسازی نماد و مقدار nx تعداد مدخلهای کمکی مرتبط با نماد است. دو فیلد آخر، مقدار نماد و نام آن هستند.
قالب خروجی رایج دیگر که معمولاً در فایلهای مبتنی بر ELF دیده میشود، به این صورت است:
00000000 l d .bss 00000000 .bss 00000000 g .text 00000000 fred
در اینجا عدد نخست، مقدار نماد است (که گاهی به عنوان نشانی آن شناخته میشود). فیلد بعدی در واقع مجموعهای از نویسهها و فاصلهها است که بیتهای پرچمِ تنظیمشده روی نماد را نشان میدهند. این نویسهها در ادامه شرح داده شدهاند. سپس بخشی که نماد با آن مرتبط است قرار دارد، یا *ABS* در صورتی که بخش مطلق باشد (یعنی به هیچ بخشی متصل نباشد)، یا *UND* اگر در فایل روگرفتشده به بخش ارجاع داده شده باشد اما در آنجا تعریف نشده باشد.
پس از نام بخش، فیلد دیگری قرار دارد؛ عددی که برای نمادهای مشترک (common) تراز (alignment) و برای سایر نمادها اندازه است. در نهایت نام نماد نمایش داده میشود.
نویسههای پرچم به ۷ گروه به شرح زیر تقسیم میشوند:
- "l"
- "g"
- "u"
- "!"
- نماد محلی (l)، سراسری (g)، سراسری یکتا (u)، نه سراسری و نه محلی (یک فاصله) یا هم سراسری و هم محلی (!) است. یک نماد میتواند به دلایل مختلفی نه محلی باشد و نه سراسری، برای مثال چون برای اشکالزدایی استفاده میشود، اما اگر همزمان هم محلی و هم سراسری باشد، احتمالاً نشاندهنده یک اشکال (bug) است. نمادهای سراسری یکتا یک گسترش گنو (GNU extension) بر مجموعه استاندارد پیوندهای نماد ELF هستند. برای چنین نمادی، پیونددهنده پویا اطمینان حاصل میکند که در کل فرایند فقط یک نماد با این نام و نوع در حال استفاده باشد.
- "w"
- نماد ضعیف یا weak (w) یا قوی (یک فاصله) است.
- "C"
- نماد نشاندهنده یک سازنده یا constructor (C) یا یک نماد معمولی (یک فاصله) است.
- "W"
- نماد یک هشدار (W) یا یک نماد عادی (یک فاصله) است. نام یک نماد هشدار، پیامی است که در صورت ارجاع به نمادِ پس از نماد هشدار، نمایش داده میشود.
- "I"
- "i"
- نماد یک ارجاع غیرمستقیم به نمادی دیگر (I)، تابعی که باید در حین پردازش بازنشانی یا reloc ارزیابی شود (i) یا یک نماد عادی (یک فاصله) است.
- "d"
- "D"
- نماد یک نماد اشکالزدایی (d) یا یک نماد پویا (D) یا یک نماد عادی (یک فاصله) است.
- "F"
- "f"
- "O"
- نماد نام یک تابع (F) یا یک فایل (f) یا یک شیء (O) یا فقط یک نماد عادی (یک فاصله) است.
- -T
- --dynamic-syms
- مدخلهای
جدول
نمادهای
پویای فایل
را چاپ
میکند. این
گزینه فقط
برای اشیاء
پویا،
مانند
انواع خاصی
از
کتابخانههای
اشتراکی
معنی دارد.
این
اطلاعات
مشابه
اطلاعات
ارائهشده
توسط
برنامه nm
هنگام
استفاده از
گزینه -D (--dynamic)
است.
قالب خروجی مشابه قالبی است که توسط گزینه --syms تولید میشود، به جز اینکه یک فیلد اضافی پیش از نام نماد درج میشود که اطلاعات نسخه مرتبط با نماد را ارائه میدهد. اگر این نسخه، نسخه پیشفرضی باشد که هنگام حل ارجاعات بدون نسخه به نماد استفاده میشود، به همان شکل نمایش داده میشود، در غیر این صورت درون پرانتز قرار میگیرد.
- --special-syms
- هنگام نمایش نمادها، آنهایی را که هدف (target) به نوعی خاص تلقی میکند و معمولاً مورد توجه کاربر نیستند نیز شامل میشود.
- -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
- تمام اطلاعات سرایند (header) موجود، از جمله جدول نمادها و مدخلهای بازنشانی (relocation) را نمایش میدهد. استفاده از -x معادل تعیین تمام گزینههای -a -f -h -p -r -t است.
- -w
- --wide
- برخی خطوط را برای دستگاههای خروجی دارای بیش از ۸۰ ستون قالببندی میکند. همچنین نام نمادها را هنگام نمایش کوتاه نمیکند.
- -z
- --disassemble-zeroes
- در حالت عادی، خروجی دیساسمبل کردن از بلوکهای حاوی صفر صرفنظر میکند. این گزینه به دیساسمبلر دستور میدهد تا آن بلوکها را دقیقاً مانند هر داده دیگری دیساسمبل کند.
- -Z
- --decompress
- گزینه -Z برای استفاده بههمراه گزینه -s در نظر گرفته شده است. این گزینه به objdump دستور میدهد تا پیش از نمایش محتویات هر بخش فشردهشده، آن را از حالت فشرده خارج کند.
- @file
- خواندن
گزینههای
خط فرمان از
file.
گزینههای
خواندهشده
بهجای
گزینه اصلی
@file درج
میشوند.
اگر file وجود
نداشته
باشد یا
قابل
خواندن
نباشد، با
گزینه
بهصورت
تحتاللفظی
رفتار
خواهد شد و
حذف
نمیشود.
گزینهها در file با نویسههای فاصله خالی (whitespace) از یکدیگر جدا میشوند. یک نویسه فاصله خالی میتواند با احاطه کل گزینه درون گیومه تکی یا جفتی، درون گزینه قرار گیرد. هر نویسهای (از جمله بکاسلش) میتواند با قرار دادن یک پیشوند بکاسلش قبل از آن، گنجانده شود. خود file نیز میتواند شامل گزینههای @file دیگری باشد؛ چنین گزینههایی بهصورت بازگشتی پردازش خواهند شد.
همچنین ببینید (SEE ALSO)
nm(1)، readelf(1) و مدخلهای Info برای binutils.
کپیرایت و تکثیر (COPYRIGHT)
Copyright (c) 1991-2025 Free Software Foundation, Inc.
اجازه کپی، توزیع و/یا تغییر این سند تحت شرایط مجوز مستندات آزاد گنو (GNU Free Documentation License)، نسخه 1.3 یا هر نسخه بالاتر منتشر شده توسط بنیاد نرمافزارهای آزاد (Free Software Foundation)؛ بدون بخشهای نامتغیر، بدون متنهای روی جلد، و بدون متنهای پشت جلد داده میشود. نسخهای از این مجوز در بخشی با عنوان «GNU Free Documentation License» گنجانده شده است.
| 2026-01-23 | binutils-2.45.1 |