| OBJDUMP(1) | GNU Development Tools | OBJDUMP(1) |
نام (NAME)
aarch64-linux-gnu-objdump - نمایش اطلاعات از فایلهای شیء هدف AArch64
خلاصه دستور (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|--dwarf]
[-Wa|--dwarf=abbrev]
[-WA|--dwarf=addr]
[-Wr|--dwarf=aranges]
[-Wc|--dwarf=cu_index]
[-WL|--dwarf=decodedline]
[-Wf|--dwarf=frames]
[-WF|--dwarf=frames-interp]
[-Wg|--dwarf=gdb_index]
[-Wi|--dwarf=info]
[-Wk|--dwarf=links]
[-Wo|--dwarf=loc]
[-Wm|--dwarf=macro]
[-Wp|--dwarf=pubnames]
[-Wt|--dwarf=pubtypes]
[-WR|--dwarf=Ranges]
[-Wl|--dwarf=rawline]
[-Ws|--dwarf=str]
[-WO|--dwarf=str-offsets]
[-Wu|--dwarf=trace_abbrev]
[-WT|--dwarf=trace_aranges]
[-WU|--dwarf=trace_info]
[-WK|--dwarf=follow-links]
[-WN|--dwarf=no-follow-links]
[-WD|--dwarf=use-debuginfod]
[-WE|--dwarf=do-not-use-debuginfod]
[--debug-dir=dir]
[--map-global-vars]
[-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...
توضیحات (DESCRIPTION)
دستور objdump اطلاعات مربوط به یک یا چند فایل شیء را نمایش میدهد. گزینهها مشخص میکنند چه اطلاعات خاصی نمایش داده شود. این اطلاعات بیشتر برای برنامهنویسانی مفید است که بر روی ابزارهای کامپایل کار میکنند، بر خلاف برنامهنویسانی که صرفاً میخواهند برنامهشان کامپایل شده و اجرا شود.
objfile... فایلهای شیء هستند که باید بررسی شوند. هنگامی که آرشیوها را مشخص میکنید، objdump اطلاعات مربوط به هر یک از فایلهای شیء عضو آرشیو را نمایش میدهد.
گزینهها (OPTIONS)
شکلهای بلند و کوتاه گزینهها که در اینجا به عنوان گزینههای جایگزین نشان داده شدهاند، معادل یکدیگرند. حداقل باید یکی از گزینههای فهرست -a,-d,-D,-e,-f,-g,-G,-h,-H,-p,-P,-r,-R,-s,-S,-t,-T,-V,-x مشخص شود.
- -a
- --archive-header
- اگر هر یک از فایلهای objfile آرشیو باشند، اطلاعات هدر آرشیو را (در قالبی شبیه به ls -l) نمایش میدهد. علاوه بر اطلاعاتی که با ar tv میتوانید فهرست کنید، objdump -a قالب فایل شیء هر یک از اعضای آرشیو را نمایش میدهد.
- --adjust-vma=offset
- هنگام تخلیه اطلاعات، ابتدا مقدار offset را به تمام آدرسهای بخشها میافزاید. این گزینه در صورتی مفید است که آدرسهای بخشها با جدول نمادها مطابقت نداشته باشند، که ممکن است هنگام قرار دادن بخشها در آدرسهای خاص هنگام استفاده از قالبی رخ دهد که نمیتواند آدرس بخشها را نشان دهد، مانند a.out.
- -b bfdname
- --target=bfdname
- مشخص
میکند که
قالب کد شیء
برای
فایلهای
شیء، bfdname است.
این گزینه
ممکن است
لازم
نباشد؛
زیرا objdump
میتواند
بسیاری از
قالبها را
به صورت
خودکار
شناسایی
کند.
برای نمونه،
objdump -b oasys -m vax -h fu.o
اطلاعات خلاصه هدرهای بخش (-h) فایل fu.o را نمایش میدهد، که صریحاً (-m) به عنوان یک فایل شیء VAX در قالب تولیدشده توسط کامپایلرهای Oasys شناسایی شده است. میتوانید قالبهای موجود را با گزینه -i فهرست کنید.
- -C
- --demangle[=style]
- رمزگشایی (demangle) نامهای سطح پایین نمادها به نامهای سطح کاربر. این گزینه علاوه بر حذف هرگونه زیرخط اولیه که توسط سیستم اضافه شده است، نام توابع ++C را خوانا میکند. کامپایلرهای مختلف سبکهای درهمسازی متفاوتی دارند. آرگومان اختیاری سبک رمزگشایی میتواند برای انتخاب سبک مناسب برای کامپایلر شما استفاده شود.
- --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
- یادآورهای
اسمبلی (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
- هنگام دیاسمبل، آدرسها را در هر خط یا برای نمادها و آفستهای بازنشانی چاپ نمیکند. در ترکیب با --no-show-raw-insn، این گزینه ممکن است برای مقایسه خروجی کامپایلر مفید باشد.
- --prefix-addresses
- هنگام دیاسمبل، آدرس کامل را در هر خط چاپ میکند. این قالب قدیمیتر دیاسمبل است.
- -EB
- -EL
- --endian={big|little}
- ترتیب بایتهای فایلهای شیء را مشخص میکند. این گزینه فقط بر دیاسمبل تأثیر میگذارد. این ویژگی هنگام دیاسمبل قالبی که اطلاعات ترتیب بایت را توصیف نمیکند، مانند 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 را نمایش میدهد. این گزینه ممکن است چندین بار مشخص شود.
- --map-global-vars
- اطلاعات متغیرهای سراسری را نمایش میدهد. این گزینه تنها زمانی کار میکند که فایل شیء با گزینه اشکالزدایی کامپایل شده باشد. به طور دقیقتر، این گزینه بر مدخلهای اطلاعات اشکالزدایی DWARF2 متکی است. برای ردیابی مکان و نوع تمام متغیرهای سراسری در فایل شیء دادهشده مفید است.
- -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 چاپ دستورالعملهای FP با دقت تکی FPX را انتخاب میکند، dpfp چاپ دستورالعملهای FP با دقت مضاعف FPX را انتخاب میکند، quarkse_em چاپ دستورالعملهای خاص QuarkSE-EM را انتخاب میکند، fpuda چاپ دستورالعملهای کمکی دقت مضاعف را انتخاب میکند، fpus چاپ دستورالعملهای FP با دقت تکی FPU را انتخاب میکند، در حالی که fpud چاپ دستورالعملهای FP با دقت مضاعف FPU را انتخاب میکند. علاوه بر این، میتوان با استفاده از hex انتخاب کرد که همه مقادیر فوری به صورت هگزادسیمال چاپ شوند. به طور پیشفرض، مقادیر فوری کوتاه با استفاده از نمایش دهدهی چاپ میشوند، در حالی که مقادیر فوری طولانی به صورت هگزادسیمال چاپ میشوند.
گزینه cpu=... به کاربر اجازه میدهد هنگام دیاسمبل کردن دستورالعملها یک ISA خاص را اعمال کند، و مقدار -m یا هر آنچه را که در فایل ELF وجود دارد بازنویسی (override) نماید. این ممکن است برای انتخاب ARC EM یا HS ISA مفید باشد، زیرا معماری برای آنها یکسان است و دیاسمبلر به دادههای هدر اختصاصی ELF متکی است تا تصمیم بگیرد کد مربوط به EM است یا HS. این گزینه ممکن است چندین بار مشخص شود - تنها آخرین مقدار استفاده خواهد شد. مقادیر معتبر همان مقادیر گزینه -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 به منظور وادار کردن دیاسمبلر به تفسیر تمام دستورالعملها به عنوان دستورالعملهای Thumb با استفاده از سوییچ --disassembler-options=force-thumb استفاده شود. این هنگام تلاش برای دیاسمبل کردن کد thumb تولیدشده توسط کامپایلرهای دیگر میتواند مفید باشد.
برای اهداف AArch64 این سوییچ میتواند برای تنظیم اینکه آیا دستورالعملها به عنوان عمومیترین دستورالعمل با استفاده از گزینه -M no-aliases دیاسمبل شوند، یا اینکه نکات دستورالعمل باید به صورت کامنت در دیاسمبل با استفاده از -M notes تولید شوند، استفاده شود. علاوه بر این، گزینه -M annotate میتواند برای سفارشیسازی نحوه رسیدگی به دستورالعملهای تعریفنشده هنگام دیاسمبل فایلهای اجرایی و کتابخانههای اشتراکی استفاده شود. معمولاً دیاسمبلر فقط مقدار هگزادسیمال دستورالعمل تعریفنشده را نشان میدهد، اما اگر یادداشتگذاری فعال باشد، ابتدا سعی میکند نمادی را پیدا کند که مقدار آن با رمزگذاری دستورالعمل مطابقت دارد. اگر تطابقی وجود داشته باشد، نام نماد به جای آن نمایش داده خواهد شد. این ویژگی میتواند هنگام دیاسمبل کردن بخشهای غیرکد که ممکن است حاوی آدرسهای توابع و دادهها باشند، مفید باشد.
برای x86، برخی از گزینهها عملکردهای سوییچ -m را تکرار میکنند، اما کنترل دقیقتری را فراهم میسازند.
- "x86-64"
- "i386"
- "i8086"
- دیاسمبل را برای معماری دادهشده انتخاب میکند.
- "intel"
- "att"
- بین حالت نگارش اینتل (intel) و حالت نگارش AT&T انتخاب میکند.
- "amd64"
- "intel64"
- بین AMD64 ISA و Intel64 ISA انتخاب میکند.
- "intel-mnemonic"
- "att-mnemonic"
- بین حالت یادآور اینتل و حالت یادآور AT&T انتخاب میکند. توجه: "intel-mnemonic" مستلزم "intel" و "att-mnemonic" مستلزم "att" است.
- "addr64"
- "addr32"
- "addr16"
- "data32"
- "data16"
- اندازه پیشفرض آدرس و اندازه عملوند را مشخص میکند. اگر "x86-64"، "i386" یا "i8086" بعداً در رشته گزینه ظاهر شوند، این پنج گزینه نادیده گرفته خواهند شد.
- "suffix"
- هنگام قرار داشتن در حالت AT&T و همچنین برای مجموعه محدودی از دستورالعملها در حالت Intel، به دیاسمبلر دستور میدهد که یک پسوند یادآور را حتی زمانی که پسوند میتواند از عملوندها یا (برای دستورالعملهای خاص) از پیشفرضهای حالت اجرا استنباط شود، چاپ کند.
- "annotate-immediates"
- نماد مرتبط با مقادیر فوری را، در صورت وجود، نمایش میدهد. فقط بر روی فایلهای باینری اجرایی و کتابخانههای اشتراکی کار میکند، نه فایلهای شیء استاتیک.
برای PowerPC، آرگومان raw از گزینه -M دیاسمبل دستورالعملهای سختافزاری را به جای نامهای مستعار انتخاب میکند. برای نمونه، به جای "clrlwi" عبارت "rlwinm"، و به جای "li" عبارت "addi" را خواهید دید. تمام آرگومانهای -m برای gas که یک پردازنده (CPU) را انتخاب میکنند، پشتیبانی میشوند. این مقادیر عبارتند از: 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"
- دیاسمبل بدون بررسی رشته معماری. این یک حالت مبتنی بر بهترین تلاش است، بنابراین برای پسوندهای تداخلی 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 مطابق با نسخه مشخصات سطح دسترسی انتخابشده (مانند 1.10، 1.11، 1.12، 1.13).
برای MIPS، این گزینه چاپ نامهای یادآور دستورالعمل و نامهای ثباتها را در دستورالعملهای دیاسمبلشده کنترل میکند. انتخابهای چندگانه از موارد زیر را میتوان به صورت یک رشته جداشده با کاما مشخص کرد، و گزینههای نامعتبر نادیده گرفته میشوند:
- "no-aliases"
- چاپ یادآور دستورالعمل «خام» به جای یادآور شبهدستورالعمل. به عنوان مثال، چاپ 'daddu' یا 'or' به جای 'move'، یا 'sll' به جای 'nop' و غیره.
- "msa"
- دیاسمبل کردن دستورالعملهای MSA.
- "virt"
- دیاسمبل کردن دستورالعملهای مجازیسازی ASE.
- "xpa"
- دیاسمبل کردن دستورالعملهای ASE مربوط به آدرس فیزیکی گسترشیافته (XPA).
- "gpr-names=ABI"
- چاپ نامهای GPR (ثبات همهمنظوره) متناسب با ABI مشخصشده. به طور پیشفرض، نامهای GPR بر اساس ABI باینری در حال دیاسمبل انتخاب میشوند.
- "fpr-names=ABI"
- چاپ نامهای FPR (ثبات ممیز شناور) متناسب با ABI مشخصشده. به طور پیشفرض، شمارههای FPR به جای نامها چاپ میشوند.
- "cp0-names=ARCH"
- چاپ نامهای ثبات CP0 (کمکپردازنده کنترل سیستم؛ کمکپردازنده ۰) متناسب با CPU یا معماری مشخصشده با ARCH. به طور پیشفرض، نامهای ثبات CP0 بر اساس معماری و پردازنده فایل باینری در حال دیاسمبل انتخاب میشوند.
- "hwr-names=ARCH"
- چاپ نامهای HWR (ثبات سختافزاری، مورد استفاده دستورالعمل "rdhwr") متناسب با CPU یا معماری مشخصشده با ARCH. به طور پیشفرض، نامهای HWR بر اساس معماری و پردازنده باینری در حال دیاسمبل انتخاب میشوند.
- "reg-names=ABI"
- چاپ نامهای GPR و FPR متناسب با ABI انتخابشده.
- "reg-names=ARCH"
- چاپ نامهای ثبات خاص پردازنده (ثبات CP0 و نامهای HWR) متناسب با CPU یا معماری انتخابشده.
برای هر یک از گزینههای فهرستشده در بالا، ABI یا ARCH میتواند به صورت numeric مشخص شود تا برای انواع ثباتهای انتخابشده، به جای نامها، شمارهها چاپ شوند. میتوانید مقادیر موجود برای ABI و ARCH را با استفاده از گزینه --help فهرست کنید.
برای VAX، میتوانید آدرسهای ورودی تابع را با -M entry:0xf00ba مشخص کنید. میتوانید چندین بار از این گزینه برای دیاسمبل صحیح فایلهای باینری VAX که فاقد جدول نمادها هستند (مانند تخلیههای حافظه ROM) استفاده کنید. در این موارد، ماسک ورودی تابع ممکن است در غیر این صورت به عنوان دستورالعملهای VAX رمزگشایی شود، که احتمالاً منجر به دیاسمبل نادرست بقیه تابع خواهد شد.
- -p
- --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 دیساسمبل رنگی را غیرفعال میکند.
- -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 انتخاب کرد. اگر از اینها استفاده نشود، پیشفرض، فعال بودن دنبال کردن پیوندهای اشکالزدایی است.
توجه - اگر پشتیبانی از پروتکل debuginfod در زمان ساخت binutils فعال شده باشد، این گزینه همچنین شامل تلاشی برای تماس با هر یک از سرورهای debuginfod ذکرشده در متغیر محیطی DEBUGINFOD_URLS خواهد بود. حل و فصل این مورد ممکن است مدتی زمان ببرد. این رفتار را میتوان از طریق گزینه اشکالزدایی =do-not-use-debuginfod غیرفعال کرد.
- "N"
- "=no-follow-links"
- دنبال کردن پیوندها به فایلهای مجزای اطلاعات اشکالزدایی را غیرفعال میکند.
- "D"
- "=use-debuginfod"
- در صورت نیاز به دنبال کردن پیوندهای اشکالزدایی، تماس با سرورهای debuginfod را فعال میکند. این رفتار پیشفرض است.
- "E"
- "=do-not-use-debuginfod"
- هنگام نیاز به دنبال کردن پیوندهای اشکالزدایی، تماس با سرورهای debuginfod را غیرفعال میکند.
- "l"
- "=rawline"
- محتوای بخش .debug_line را در یک قالب خام نمایش میدهد.
- "L"
- "=decodedline"
- محتوای تفسیرشده بخش .debug_line را نمایش میدهد.
- "m"
- "=macro"
- محتوای بخشهای .debug_macro و/یا .debug_macinfo را نمایش میدهد.
- "o"
- "=loc"
- محتوای بخشهای .debug_loc و/یا .debug_loclists را نمایش میدهد.
- "O"
- "=str-offsets"
- محتوای بخش .debug_str_offsets را نمایش میدهد.
- "p"
- "=pubnames"
- محتوای بخشهای .debug_pubnames و/یا .debug_gnu_pubnames را نمایش میدهد.
- "r"
- "=aranges"
- محتوای بخش .debug_aranges را نمایش میدهد.
- "R"
- "=Ranges"
- محتوای بخشهای .debug_ranges و/یا .debug_rnglists را نمایش میدهد.
- "s"
- "=str"
- محتوای بخشهای .debug_str، .debug_line_str و/یا .debug_str_offsets را نمایش میدهد.
- "t"
- "=pubtype"
- محتوای بخشهای .debug_pubtypes و/یا .debug_gnu_pubtypes را نمایش میدهد.
- "T"
- "=trace_aranges"
- محتوای بخش .trace_aranges را نمایش میدهد.
- "u"
- "=trace_abbrev"
- محتوای بخش .trace_abbrev را نمایش میدهد.
- "U"
- "=trace_info"
- محتوای بخش .trace_info را نمایش میدهد.
توجه: نمایش محتوای بخشهای .debug_static_funcs، .debug_static_vars و debug_weaknames در حال حاضر پشتیبانی نمیشود.
- --dwarf-depth=n
- تخلیه بخش
".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 را فعال میکند.
- --debug-dir=dir
- هنگام جستجوی فایلهای مجزای اطلاعات اشکالزدایی، دایرکتوری dir را جستجو میکند.
- --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
- ورودیهای
جدول نماد (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 شماره بخش است، مقدار fl بیتهای فلگ نماد است، عدد ty نوع نماد است، عدد scl کلاس ذخیرهسازی نماد و مقدار nx تعداد ورودیهای کمکی مرتبط با نماد است. دو فیلد آخر مقدار نماد و نام آن هستند.
فرمت خروجی متداول دیگر که معمولاً در فایلهای مبتنی بر ELF دیده میشود، به شکل زیر است:
00000000 l d .bss 00000000 .bss 00000000 g .text 00000000 fred
در اینجا عدد اول مقدار نماد است (که گاهی اوقات به عنوان نشانی آن شناخته میشود). فیلد بعدی در واقع مجموعهای از کاراکترها و فاصلهها است که بیتهای فلگ تنظیمشده روی نماد را نشان میدهند. این کاراکترها در ادامه شرح داده شدهاند. فیلد بعدی بخشی است که نماد با آن مرتبط است، یا *ABS* اگر بخش مطلق باشد (یعنی به هیچ بخشی متصل نباشد)، یا *UND* اگر در فایلی که استخراج میشود به بخش ارجاع داده شده اما در آنجا تعریف نشده باشد.
پس از نام بخش فیلد دیگری قرار دارد که یک عدد است؛ این عدد برای نمادهای مشترک اندازه تراز (Alignment) و برای نمادهای دیگر اندازه (Size) نماد است. در نهایت نام نماد نمایش داده میشود.
کاراکترهای فلگ به ۷ گروه زیر تقسیم میشوند:
- "l"
- "g"
- "u"
- "!"
- نماد یک نماد محلی (l)، سراسری (g)، سراسری منحصربهفرد (u)، نه سراسری و نه محلی (یک فاصله) یا هم سراسری و هم محلی (!) است. یک نماد میتواند به دلایل مختلفی نه محلی و نه سراسری باشد (مثلاً به این دلیل که برای اشکالزدایی استفاده میشود)، اما اگر همزمان هم محلی و هم سراسری باشد احتمالاً نشاندهنده یک اشکال (باگ) است. نمادهای سراسری منحصربهفرد یک افزونه گنو به مجموعه استانداردهای پیوند نماد ELF هستند. برای چنین نمادی لینکر پویا تضمین میکند که در کل فرآیند تنها یک نماد با این نام و نوع مورد استفاده قرار گیرد.
- "w"
- نماد ضعیف (w / Weak) یا قوی (یک فاصله) است.
- "C"
- نماد نشاندهنده یک سازنده (C / Constructor) یا یک نماد معمولی (یک فاصله) است.
- "W"
- نماد یک نماد اخطار (W / Warning) یا یک نماد معمولی (یک فاصله) است. نام یک نماد اخطار پیامی است که در صورت ارجاع به نمادِ پس از نماد اخطار نمایش داده میشود.
- "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)
کپیرایت © ۱۹۹۱-۲۰۲۶ بنیاد نرمافزار آزاد (Free Software Foundation, Inc.)
مجوز کپی، توزیع و/یا تغییر این سند تحت شرایط «مجوز مستندات آزاد گنو» (GNU Free Documentation License)، نسخه ۱.۳ یا هر نسخه بعدی منتشرشده توسط بنیاد نرمافزارهای آزاد اعطا میشود؛ بدون بخشهای تغییرناپذیر، بدون متون روی جلد و بدون متون پشت جلد. نسخهای از این مجوز در بخش موسوم به «GNU Free Documentation License» گنجانده شده است.
| 2026-07-30 | binutils-2.47 |