| 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 بایگانی باشند، اطلاعات سرایند (header) بایگانی را (در قالبی شبیه به ls -l) نمایش میدهد. علاوه بر اطلاعاتی که میتوانید با ar tv فهرست کنید، objdump -a قالب فایل شیء هر عضو بایگانی را نیز نشان میدهد.
- --adjust-vma=offset
- هنگام تخلیه و نمایش اطلاعات (dumping)، ابتدا مقدار offset را به آدرس تمام بخشها (sections) اضافه میکند. این گزینه زمانی مفید است که آدرس بخشها با جدول نمادها مطابقت نداشته باشد؛ وضعیتی که ممکن است هنگام قرار دادن بخشها در آدرسهای خاص حین استفاده از قالبی رخ دهد که توانایی بازنمایی آدرس بخشها را ندارد، مانند 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) میکند. این کار علاوه بر حذف هرگونه زیرخط (underscore) ابتدایی اضافه شده توسط سیستم، نام توابع ++C را خوانا میکند. کامپایلرهای مختلف شیوههای مختلفی برای ساخت نام (mangling) دارند. از آرگومان اختیاری شیوه میتوان برای انتخاب شیوه مناسب رمزگشایی (demangling style) برای کامپایلر خود استفاده کرد.
- --recurse-limit
- --no-recurse-limit
- --recursion-limit
- --no-recursion-limit
- محدودیت
عمق بازگشت
(recursion) را هنگام
رمزگشایی
رشتهها
فعال یا
غیرفعال
میکند. از
آنجا که
قالبهای
ساخت نام
امکان
بازگشت
نامحدود را
میدهند،
امکان
ایجاد
رشتههایی
وجود دارد
که
رمزگشایی
آنها تمام
فضای پشته (stack)
موجود روی
ماشین
میزبان را
مصرف کرده و
باعث خطای
حافظه شود.
این
محدودیت با
تحدید
بازگشت به
۲۰۴۸ سطح
تودرتو،
سعی میکند
از این
رخداد
جلوگیری
کند.
حالت پیشفرض فعال بودن این محدودیت است، اما غیرفعال کردن آن ممکن است برای رمزگشایی نامهای بسیار پیچیده لازم باشد. با این حال توجه داشته باشید که اگر محدودیت بازگشت غیرفعال شود، سرریز پشته امکانپذیر خواهد بود و هرگونه گزارش باگ درباره چنین رخدادی رد خواهد شد.
- -g
- --debugging
- اطلاعات اشکالزدایی را نمایش میدهد. این گزینه تلاش میکند اطلاعات قالب اشکالزدایی STABS ذخیرهشده در فایل را تحلیل کرده و با نحوی شبیه به زبان C چاپ کند. اگر هیچ اطلاعات اشکالزدایی STABS پیدا نشود، این گزینه به گزینه -W رجوع میکند تا هرگونه اطلاعات DWARF در فایل را چاپ نماید.
- -e
- --debugging-tags
- مانند -g، اما اطلاعات در قالبی سازگار با ابزار ctags تولید میشود.
- -d
- --disassemble
- --disassemble=symbol
- نمادهای
یادافزای
اسمبلی (assembler 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) از فایلی که تاکنون نمایش داده نشده است، بافت متن (context) تا ابتدای فایل گسترش یابد.
- -h
- --section-headers
- نمایش
اطلاعات
خلاصه از
سرآیندهای
بخشهای (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
- برچسبگذاری خروجی (با استفاده از اطلاعات اشکالزدایی) با نام فایل و شماره خطوط مبدأ متناظر با کد شیء یا جابهجاییهای (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 چاپ دستورالعملهای FP با دقت دوگانهٔ 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 Procedure Call Standard را انتخاب میکند، در حالی که مشخص کردن -M reg-names-raw تنها از r به همراه شماره ثبات استفاده خواهد کرد.
همچنین دو حالت متفاوت از شیوهٔ نامگذاری ثباتهای APCS وجود دارد که توسط -M reg-names-atpcs و -M reg-names-special-atpcs فعال میشوند و از قراردادهای نامگذاری ARM/Thumb Procedure Call Standard استفاده میکنند (خواه با نامهای معمولی ثباتها یا نامهای ویژهٔ ثباتها).
این گزینه همچنین میتواند برای معماریهای ARM به کار رود تا با استفاده از سوییچ --disassembler-options=force-thumb دیزاسمبلر را وادار کند تمامی دستورالعملها را به عنوان دستورالعملهای Thumb تفسیر کند. این ویژگی میتواند هنگام تلاش برای دیزاسمبل کد Thumb تولیدشده توسط سایر کامپایلرها مفید باشد.
برای اهداف AArch64، این سوییچ میتواند برای تنظیم این که آیا دستورالعملها با استفاده از گزینهٔ -M no-aliases به عنوان عمومیترین دستورالعمل دیزاسمبل شوند یا این که یادداشتهای دستورالعمل باید با استفاده از -M notes به صورت نظر (کامنت) در دیزاسمبل درج گردند، به کار رود.
برای 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، به دیزاسمبلر دستور میدهد تا یک پسوند نمادین (mnemonic suffix) چاپ کند، حتی زمانی که پسوند از روی عملوندها یا برای برخی دستورالعملها، از پیشفرضهای حالت اجرا قابل استنباط باشد.
برای 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 را دیزاسمبل خواهد کرد، اما در مواردی که یک آپکد دارای دو معنای مختلف یا آرگومانهای متفاوتی باشد، ممکن است خروجی دیزاسمبل مطابق انتظار شما نباشد. اگر بدون تعیین پردازنده اقدام به دیزاسمبل کنید، یک مقدار پیشفرض از اطلاعات گردآوریشده توسط 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، این گزینه چاپ نامهای نمادین (mnemonic) دستورالعمل و نام ثباتها را در دستورالعملهای دیزاسمبلشده کنترل میکند. انتخابهای متعدد از موارد زیر میتواند به عنوان یک رشتهٔ جداشده با کاما مشخص شود، و گزینههای نامعتبر نادیده گرفته میشوند:
- "no-aliases"
- چاپ نام نمادین «خام» دستورالعمل به جای نامهای نمادین شبهدستورالعمل (pseudo instruction). برای مثال، چاپ 'daddu' یا 'or' به جای 'move'، و 'sll' به جای 'nop' و غیره.
- "msa"
- دیزاسمبل دستورالعملهای MSA.
- "virt"
- دیزاسمبل دستورالعملهای افزونهٔ مجازیسازی (virtualization ASE).
- "xpa"
- دیزاسمبل دستورالعملهای افزونهٔ نشانی فیزیکی گسترشیافته (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
- مدخلهای بازنشانی (relocation) پرونده را چاپ میکند. در صورت استفاده با -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]
- پرشهایی
را که درون
یک تابع
باقی
میمانند
با رسم هنر
اسکی (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 دیساسمبلی رنگی را غیرفعال میکند.
- -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 را در صورت وجود در پرونده نمایش میدهد. بخشهای اشکالزدایی فشردهشده پیش از نمایش، بهطور خودکار (بهصورت موقت) از حالت فشرده خارج میشوند. اگر یک یا چند حرف یا کلمه اختیاری در ادامه این سوئیچ بیاید، تنها آن نوع (یا انواع) از دادهها تخلیه (dump) خواهند شد. حروف و کلمات به اطلاعات زیر اشاره دارند:
- "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 در حال حاضر پشتیبانی نمیشود. تخلیهٔ (dump) بخش ".debug_info" را به n فرزند محدود میکند. این گزینه تنها همراه با --debug-dump=info مفید است. مقدار پیشفرض، چاپ تمام DIEها است؛ مقدار ویژهٔ ۰ برای n نیز همین اثر را خواهد داشت.
با مقداری غیرصفر برای n، مدخلهای DIE در سطح n یا عمیقتر از آن چاپ نخواهند شد. محدودهٔ n برمبنای صفر است.
- --dwarf-start=n
- تنها DIEهایی
را چاپ
میکند که
با DIE شمارهٔ
n آغاز
میشوند.
این گزینه
تنها همراه
با --debug-dump=info مفید
است.
در صورت تعیین، این گزینه از چاپ هرگونه اطلاعات سرآیند و تمام DIEهای پیش از DIE شمارهٔ n جلوگیری میکند. تنها همسطحها (siblings) و فرزندان 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 ترکیب شوند مناسب است؛ ابزاری که میتواند آنها را در بخشهای مختلف ELF قرار دهد اما نه در اعضای متفاوت از یک فرهنگنامهٔ واحد CTF.
- --sframe[=section]
- محتوای بخش
SFrame مشخصشده
را نمایش
میدهد.
بهطور پیشفرض، بخشی با نام .sframe نمایش داده میشود که نام تولیدشده توسط ld است.
- -G
- --stabs
- محتوای کامل هر بخش درخواستشده را نمایش میدهد. محتوای بخشهای .stab، .stab.index و .stab.excl را از یک فایل ELF نمایش میدهد. این گزینه تنها در سیستمهایی (مانند 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* اگر به بخش در فایلی که تخلیه میشود ارجاع داده شده باشد اما در آن تعریف نشده باشد.
پس از نام بخش فیلد دیگری میآید؛ عددی که برای نمادهای مشترک (common) مقدار تراز، و برای سایر نمادها اندازه است. در پایان، نام نماد نمایش داده میشود.
نویسههای پرچم به ۷ دسته به شرح زیر تقسیم میشوند:
- "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 هنگام نمایش نمادها، آنهایی را که از دید سامانه هدف (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
- تمام اطلاعات سرآیند موجود، شامل جدول نمادها و مدخلهای بازنشانی (relocation) را نمایش میدهد. استفاده از -x معادل تعیین تمامی گزینههای -a -f -h -p -r -t است.
- -w
- --wide
- برخی خطوط را برای دستگاههای خروجی که بیش از ۸۰ ستون دارند قالببندی میکند. همچنین نام نمادها را هنگام نمایش کوتاه نمیکند.
- -z
- --disassemble-zeroes
- بهطور معمول خروجی دیساسمبل از بلوکهای صفر عبور میکند. این گزینه به دیساسمبلر هدایت میدهد تا درست مانند هر دادهٔ دیگری، آن بلوکها را نیز دیساسمبل کند.
- -Z
- --decompress
- گزینهٔ -Z برای استفاده بههمراه گزینهٔ -s در نظر گرفته شده است. این گزینه به objdump دستور میدهد تا پیش از نمایش محتویات بخشهای فشرده، آنها را از حالت فشرده خارج کند.
- @file
- گزینههای
خط فرمان را
از file
میخواند.
گزینههای
خواندهشده
به جای
گزینهٔ
اصلی @file درج
میشوند.
اگر file وجود
نداشته
باشد یا
نتوان آن را
خواند، با
گزینه
بهصورت
لفظی
برخورد شده
و حذف
نخواهد شد.
گزینهها در file با نویسههای فاصله از یکدیگر جدا میشوند. با قرار دادن کل گزینه درون علامتهای نقلقول تکی یا جفتی، میتوان یک نویسهٔ فاصله را در یک گزینه گنجاند. هر نویسهای (از جمله ممیز وارونه) را میتوان با پیشوند کردن یک ممیز وارونه به نویسهٔ مورد نظر، در آن وارد کرد. خود file نیز میتواند شامل گزینههای @file دیگری باشد؛ چنین گزینههایی بهصورت بازگشتی پردازش خواهند شد.
همچنین ببینید (SEE ALSO)
nm(1)، readelf(1) و مدخلهای Info برای binutils.
کپیرایت و تکثیر (COPYRIGHT)
کپیرایت (c) 1991-2025 Free Software Foundation, Inc.
مجوز کپی، توزیع و/یا تغییر این سند تحت شرایط «مجوز مستندات آزاد گنو» (GNU Free Documentation License)، نسخهٔ 1.3 یا هر نسخهٔ بالاتر منتشرشده توسط بنیاد نرمافزارهای آزاد اعطا میشود؛ بدون هیچ بخش تغییرناپذیر، بدون متنهای روی جلد و بدون متنهای پشت جلد. نسخهای از این مجوز در بخشی با عنوان «GNU Free Documentation License» گنجانده شده است.
| 2026-01-23 | binutils-2.45.1 |