| OBJDUMP(1) | GNU Development Tools | OBJDUMP(1) |
نام (NAME)
objdump - نمایش اطلاعات از فایلهای شیء (object files)
خلاصه دستور (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 آرشیو باشند، اطلاعات سرایند (header) آرشیو را (در قالبی شبیه به ls -l) نمایش میدهد. علاوه بر اطلاعاتی که میتوانید با ar tv فهرست کنید، objdump -a قالب فایل شیء هر عضو آرشیو را نیز نشان میدهد.
- --adjust-vma=offset
- هنگام استخراج اطلاعات، ابتدا مقدار offset را به آدرس تمام بخشها اضافه میکند. این گزینه زمانی مفید است که آدرس بخشها با جدول نمادها مطابقت نداشته باشد؛ حالتی که ممکن است هنگام قرار دادن بخشها در آدرسهای خاص و با استفاده از قالبی رخ دهد که توانایی نمایش آدرس بخشها را ندارد، مانند a.out.
- -b bfdname
- --target=bfdname
- مشخص
میکند که
قالب کد شیء
برای
فایلهای
شیء، bfdname است.
این گزینه
ممکن است
ضروری
نباشد؛ objdump
میتواند
بهطور
خودکار
بسیاری از
قالبها را
تشخیص دهد.
برای نمونه،
objdump -b oasys -m vax -h fu.o
اطلاعات خلاصهای از سرایند بخشهای (-h) فایل fu.o را نمایش میدهد، که صراحتاً (-m) به عنوان یک فایل شیء VAX در قالبی که توسط کامپایلرهای Oasys تولید شده شناسایی شده است. میتوانید قالبهای موجود را با گزینه -i فهرست کنید.
- -C
- --demangle[=style]
- رمزگشایی (demangle) نامهای نماد سطح پایین به نامهای سطح کاربر. علاوه بر حذف خط تیره زیرین (underscore) اولیه که توسط سیستم اضافه شده، این گزینه نام توابع ++C را خوانا میکند. کامپایلرهای مختلف سبکهای mangling متفاوتی دارند. از آرگومان اختیاری سبک demangling میتوان برای انتخاب شیوه مناسب برای کامپایلر خود استفاده کرد.
- --recurse-limit
- --no-recurse-limit
- --recursion-limit
- --no-recursion-limit
- محدودیتی
را بر میزان
بازگشت (recursion)
انجامشده
در هنگام demangle
کردن
رشتهها
فعال یا
غیرفعال
میکند. از
آنجا که
قالبهای mangling
نام اجازه
سطوح
نامتناهی
بازگشت را
میدهند،
ممکن است
رشتههایی
ایجاد شوند
که
رمزگشایی
آنها فضای
پشته (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 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
- اطلاعات
خلاصهشده
را از
سرایندهای
بخشِ فایل
شیء نمایش
میدهد.
قطعههای فایل ممکن است به آدرسهای غیراستاندارد بازآرایی شوند، برای نمونه با استفاده از گزینههای -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
- خروجی نمایشیافته را (با استفاده از اطلاعات اشکالزدایی) با نام فایل و شماره خطوط کد منبع متناظر با کد شیء یا بازآراییهای نشاندادهشده برچسبگذاری میکند. فقط همراه با -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 چاپ دستورالعملهای FPX ممیز شناور با دقت یگانه را انتخاب میکند، dpfp چاپ دستورالعملهای FPX ممیز شناور با دقت دوگانه را برمیگزیند، quarkse_em چاپ دستورالعملهای ویژهٔ QuarkSE-EM را انتخاب میکند، fpuda چاپ دستورالعملهای کمکی دقت دوگانه را برمیگزیند، fpus چاپ دستورالعملهای FPU ممیز شناور با دقت یگانه را انتخاب میکند، در حالی که fpud چاپ دستورالعملهای FPU ممیز شناور با دقت دوگانه را برمیگزیند. علاوه بر این، میتوان با استفاده از hex تمام مقادیر بیدرنگ را به صورت هگزادسیمال چاپ کرد. بهطور پیشفرض، مقادیر بیدرنگِ کوتاه در قالب دهدهی و مقادیر بیدرنگِ بلند به صورت هگزادسیمال چاپ میشوند.
گزینهٔ 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 یادداشتهای دستورالعمل به صورت کامنت در واسازی تولید گردند.
برای 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"
- اندازهٔ پیشفرض آدرس و اندازهٔ عملوند را مشخص میکند. این پنج گزینه در صورتی که "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 را دیساسمبل خواهد کرد، اما در مواردی که یک opcode دو معنی متفاوت یا آرگومانهای متفاوتی داشته باشد، ممکن است خروجی دیساسمبل طبق انتظار شما نباشد. اگر دیساسمبل را بدون تعیین پردازنده انجام دهید، مقدار پیشفرضی بر پایهٔ اطلاعات استخراجشده توسط 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"
- چاپ نام نمادین دستورالعمل «خام» ('raw') بهجای نام نمادین شبهدستورالعمل. یعنی، چاپ 'daddu' یا 'or' بهجای 'move'، 'sll' بهجای 'nop'، و غیره.
- "msa"
- دیساسمبل دستورالعملهای MSA.
- "virt"
- دیساسمبل دستورالعملهای virtualization 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
- اطلاعاتی را که مختص به قالب فایل شیء (object file) است چاپ میکند. اطلاعات دقیق چاپشده به قالب فایل شیء بستگی دارد. برای برخی از قالبهای فایل شیء، اطلاعات اضافی چاپ نمیشود.
- -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
- پیشوند 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) را در
خروجی
دیزاسمبل
فعال یا
غیرفعال
میکند.
رفتار
پیشفرض از
طریق یک
گزینه در
زمان
پیکربندی
(configure time) تعیین
میشود.
توجه داشته
باشید که
همهٔ
معماریها
از
برجستهسازی
رنگی نحو
پشتیبانی
نمیکنند،
و بسته به
ترمینال
مورد
استفاده،
ممکن است
خروجی رنگی
عملاً
خوانا
نباشد.
آرگومان 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
- دامپ بخش
".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 ترکیب شوند، مناسب است؛ ابزاری که میتواند آنها را در بخشهای مختلف 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
- ورودیهای
جدول نماد (symbol
table) فایل را
چاپ میکند.
این
اطلاعات
شبیه به
اطلاعات
ارائهشده
توسط
برنامهٔ 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 شمارهٔ بخش (section) است، مقدار fl بیتهای پرچم نماد هستند، شمارهٔ ty نوع نماد است، شمارهٔ scl کلاس ذخیرهسازی نماد است و مقدار nx تعداد ورودیهای کمکی مرتبط با نماد است. دو فیلد آخر، مقدار نماد و نام آن هستند.
قالب رایج دیگر خروجی، که معمولاً در فایلهای مبتنی بر ELF دیده میشود، به این صورت است:
00000000 l d .bss 00000000 .bss 00000000 g .text 00000000 fred
در اینجا نخستین عدد، مقدار نماد است (که گاهی به عنوان آدرس آن شناخته میشود). فیلد بعدی در واقع مجموعهای از نویسهها و فاصلهها است که بیتهای پرچمِ تنظیمشده روی نماد را نشان میدهد. این نویسهها در زیر توضیح داده شدهاند. مورد بعدی، بخشی است که نماد با آن مرتبط است، یا *ABS* در صورتی که بخش مطلق باشد (یعنی به هیچ بخشی متصل نباشد)، یا *UND* در صورتی که به بخش در فایل در حال تخلیه ارجاع داده شده باشد اما در آنجا تعریف نشده باشد.
پس از نام بخش، فیلد دیگری میآید؛ عددی که برای نمادهای مشترک (common) تراز (alignment) و برای سایر نمادها اندازه (size) است. در نهایت، نام نماد نمایش داده میشود.
نویسههای پرچم به ۷ گروه به شرح زیر تقسیم میشوند:
- "l"
- "g"
- "u"
- "!"
- نماد محلی (l)، سراسری (g)، سراسری یکتا (u)، نه سراسری و نه محلی (یک فاصله) یا هم سراسری و هم محلی (!) است. یک نماد میتواند به دلایل گوناگون نه محلی باشد و نه سراسری، برای نمونه به این دلیل که برای اشکالزدایی به کار میرود؛ اما اگر همزمان محلی و سراسری باشد احتمالاً نشاندهندهٔ یک باگ است. نمادهای سراسری یکتا یک افزونهٔ GNU برای مجموعهٔ استاندارد پیوندهای نماد ELF هستند. برای چنین نمادی، پیونددهندهٔ پویا اطمینان حاصل میکند که در تمام فرایند تنها یک نماد با این نام و نوع استفاده شود.
- "w"
- نماد ضعیف (w) یا قوی (یک فاصله) است.
- "C"
- نماد نشاندهندهٔ یک سازنده (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
- تمام اطلاعات سرآیند در دسترس، از جمله جدول نماد و ورودیهای بازنشانی را نمایش میدهد. استفاده از -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)
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 |