| 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 را به نشانی تمامی بخشها (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 میتوان برای انتخاب شیوهٔ مناسب برای کامپایلر خود استفاده کرد.
- --recurse-limit
- --no-recurse-limit
- --recursion-limit
- --no-recursion-limit
- محدودیت
تعداد
بازگشتهای
انجامشده
هنگام
رمزگشایی
رشتهها را
فعال یا
غیرفعال
میکند. از
آنجا که
قالبهای
درهمسازی
نام امکان
سطوح
نامحدودی
از بازگشت
را
میدهند،
ممکن است
رشتههایی
ایجاد شوند
که
رمزگشایی
آنها تمام
فضای پشتهٔ
(stack) موجود در
ماشین
میزبان را
مصرف کرده و
باعث بروز
خطای حافظه
شود. این
محدودیت با
تحدید
بازگشت به
۲۰۴۸ سطح
تودرتو،
تلاش
میکند تا
از وقوع این
اتفاق
جلوگیری
کند.
حالت پیشفرض فعال بودن این محدودیت است، اما غیرفعال کردن آن ممکن است برای رمزگشایی نامهای واقعاً پیچیده لازم باشد. با این حال توجه داشته باشید که در صورت غیرفعال بودن محدودیت بازگشت، اتمام فضای پشته محتمل است و هرگونه گزارش باگ دربارهٔ چنین رویدادی رد خواهد شد.
- -g
- --debugging
- اطلاعات اشکالزدایی (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) خودداری میکند. در ترکیب با --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
- --headers
- اطلاعات
خلاصهای
از
سرآیندهای
بخشِ فایل
شیء را
نمایش
میدهد.
قطعههای فایل ممکن است به نشانیهای غیر استاندارد جابجا (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 چاپ دستورالعملهای FP با دقت دوگانهٔ FPX را برمیگزیند، quarkse_em چاپ دستورالعملهای ویژهٔ QuarkSE-EM را انتخاب میکند، fpuda چاپ دستورالعملهای کمکی دقت دوگانه را برمیگزیند، fpus چاپ دستورالعملهای FP با دقت یگانهٔ FPU را انتخاب میکند، در حالی که fpud چاپ دستورالعملهای FP با دقت دوگانهٔ FPU را انتخاب میکند. علاوه بر این، میتوان با استفاده از hex تعیین کرد که تمام مقادیر فوری (immediates) به صورت هگزادسیمال چاپ شوند. به طور پیشفرض، مقادیر فوری کوتاه با استفاده از نمایش دهدهی (دسیمال) چاپ میشوند، در حالی که مقادیر فوری بلند به صورت هگزادسیمال چاپ خواهند شد.
گزینهٔ cpu=... اجازه میدهد تا یک ISA خاص هنگام دیساسمبل کردن دستورالعملها اعمال شود، و مقدار -m یا هر آنچه را که در فایل ELF وجود دارد لغو و جایگزین کند. این قابلیت ممکن است برای انتخاب ISA مربوط به ARC EM یا HS مفید باشد، زیرا معماری آنها یکسان است و دیساسمبلر به دادههای خصوصی سرآیند ELF متکی است تا تصمیم بگیرد که کد برای EM است یا HS. این گزینه ممکن است چندین بار مشخص شود - تنها آخرین مقدار استفاده خواهد شد. مقادیر معتبر همانند گزینهٔ -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) اینتل و حالت یادافزای AT&T. نکته: "intel-mnemonic" متضمن "intel" است و "att-mnemonic" متضمن "att" میباشد.
- "addr64"
- "addr32"
- "addr16"
- "data32"
- "data16"
- اندازه پیشفرض نشانی و اندازه عملوند را تعیین میکند. اگر "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 هر آپکدی را که برای 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"
- چاپ یادافزای دستورالعمل «خام» (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
- چاپ مدخلهای بازمکانی (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
- استفاده از
برجستهسازی
رنگی نحو (syntax
highlighting) را در
خروجی
دیساسمبل
فعال یا
غیرفعال
میکند.
رفتار
پیشفرض از
طریق یک
گزینه زمان
پیکربندی
تعیین
میشود.
توجه داشته
باشید که
تمام
معماریها
از
برجستهسازی
رنگی نحو
پشتیبانی
نمیکنند،
و بسته به
ترمینال
مورد
استفاده،
ممکن است
خروجی رنگی
عملاً
خوانا
نباشد.
آرگومان 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 تعیین کرد. اگر از این گزینهها استفاده نشود، رفتار پیشفرض، فعال بودن پیگیری پیوندهای اشکالزدایی است.
نکته - اگر در زمان ساخت 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 در حال حاضر پشتیبانی نمیشود.
- --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
- محتویات کامل هر بخش درخواستشده را نمایش میدهد. محتویات بخشهای .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* در صورتی که در فایل در حال برونریزی به بخش ارجاع داده شده اما در آنجا تعریف نشده باشد.
پس از نام بخش فیلد دیگری میآید، یک عدد، که برای نمادهای مشترک تراز و برای سایر نمادها اندازه است. در نهایت نام نماد نمایش داده میشود.
نویسههای پرچم به ۷ گروه زیر تقسیم میشوند:
- "l"
- "g"
- "u"
- "!"
- نماد، محلی (l)، سراسری (g)، سراسری یکتا (u)، نه سراسری و نه محلی (یک فاصله) یا هم سراسری و هم محلی (!) است. یک نماد میتواند به دلایل مختلفی نه محلی باشد و نه سراسری، برای مثال به این دلیل که برای اشکالزدایی به کار میرود، اما اگر هم محلی و هم سراسری باشد، احتمالاً نشاندهندهٔ یک اشکال است. نمادهای سراسری یکتا یک افزونهٔ گنو برای مجموعهٔ استاندارد پیوندهای نماد 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 است، به جز اینکه یک فیلد اضافی پیش از نام نماد درج میشود که اطلاعات نسخهٔ مرتبط با نماد را ارائه میدهد. اگر نسخه، نسخهٔ پیشفرضی باشد که باید هنگام رفع ارجاعات بدون نسخه به نماد استفاده شود، همانگونه که هست نمایش مییابد، در غیر این صورت درون پرانتز قرار میگیرد.
- --special-syms
- هنگام نمایش نمادها، آنهایی را که از نظر هدف به نحوی خاص تلقی میشوند و معمولاً مورد توجه کاربر نیستند نیز شامل میشود.
- -U [d|i|l|e|x|h]
- --unicode=[default|invalid|locale|escape|hex|highlight]
- نمایش
نویسههای
چندبایتی
کدگذاریشده
با UTF-8 را در
رشتهها
کنترل
میکند.
حالت
پیشفرض
(--unicode=default) این
است که هیچ
رفتار خاصی
با آنها
نشود.
گزینهٔ --unicode=locale
توالی را در
لوکال جاری
نمایش
میدهد که
ممکن است از
آنها
پشتیبانی
کند یا
نکند.
گزینههای
--unicode=hex و --unicode=invalid
آنها را
بهصورت
توالیهای
بایتی
شانزدهشانزدهی
محصور در
قلابها یا
آکولادها
نمایش
میدهند.
گزینهٔ --unicode=escape آنها را بهصورت توالیهای گریز (\uxxxx) نمایش میدهد و گزینهٔ --unicode=highlight آنها را بهصورت توالیهای گریز با رنگ قرمز برجسته نمایش میدهد (در صورتی که توسط دستگاه خروجی پشتیبانی شود). هدف از رنگآمیزی جلب توجه به حضور توالیهای یونیکد در جاهایی است که ممکن است انتظارشان نرود.
- -V
- --version
- شمارهٔ نسخهٔ objdump را چاپ کرده و خارج میشود.
- -x
- --all-headers
- تمام اطلاعات سرایند موجود، از جمله جدول نماد و مدخلهای بازنشانی را نمایش میدهد. استفاده از -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 |