| READELF(1) | GNU Development Tools | READELF(1) |
نام (NAME)
readelf - نمایش اطلاعات درباره فایلهای ELF
خلاصه دستور (SYNOPSIS)
readelf [-a|--all]
[-h|--file-header]
[-l|--program-headers|--segments]
[-S|--section-headers|--sections]
[-g|--section-groups]
[-t|--section-details]
[-e|--headers]
[-s|--syms|--symbols]
[--dyn-syms|--lto-syms]
[--sym-base=[0|8|10|16]]
[--demangle=style|--no-demangle]
[--quiet]
[--recurse-limit|--no-recurse-limit]
[-U method|--unicode=method]
[-X|--extra-sym-info|--no-extra-sym-info]
[-n|--notes]
[-r|--relocs]
[-u|--unwind]
[-d|--dynamic]
[-V|--version-info]
[-A|--arch-specific]
[-D|--use-dynamic]
[-L|--lint|--enable-checks]
[-x <number or name>|--hex-dump=<number or name>]
[-p <number or name>|--string-dump=<number or
name>]
[-R <number or name>|--relocated-dump=<number or
name>]
[-j <number or name>|--display-section=<number or
name>]
[-z|--decompress]
[-c|--archive-index]
[-w[lLiaprmfFsoORtUuTgAck]|
--debug-dump[=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|--debug-dump=follow-links]
[-wN|--debug-dump=no-follow-links]
[-wD|--debug-dump=use-debuginfod]
[-wE|--debug-dump=do-not-use-debuginfod]
[-P|--process-links]
[--dwarf-depth=n]
[--dwarf-start=n]
[--ctf=section]
[--ctf-parent=section]
[--ctf-symbols=section]
[--ctf-strings=section]
[--sframe=section]
[-I|--histogram]
[-v|--version]
[-W|--wide]
[-T|--silent-truncation]
[-H|--help]
elffile....SH
"توضیحات
(DESCRIPTION)" readelf
اطلاعات
مربوط به یک
یا چند فایل
شیء در قالب
ELF را نمایش
میدهد.
گزینهها
مشخص
میکنند که
چه اطلاعات
ویژهای
نمایش داده
شود.
elffile... فایلهای شیء هستند که باید بررسی شوند. فایلهای ۳۲-بیتی و ۶۴-بیتی ELF و همچنین بایگانیهای حاوی فایلهای ELF پشتیبانی میشوند.
این برنامه عملکردی مشابه objdump انجام میدهد اما وارد جزئیات بیشتری میشود و مستقل از کتابخانهٔ BFD عمل میکند؛ بنابراین اگر اشکالی در BFD وجود داشته باشد، readelf تحت تأثیر قرار نخواهد گرفت.
گزینهها (OPTIONS)
شکلهای کوتاه و بلند گزینهها که در اینجا به صورت جایگزین نشان داده شدهاند، معادل یکدیگر هستند. به غیر از -v یا -H باید حداقل یک گزینه مشخص شود.
- -a
- --all
- معادل است
با مشخص
کردن
گزینههای
--file-header، --program-headers،
--sections، --symbols، --relocs،
--dynamic، --notes،
--version-info، --arch-specific،
--unwind، --section-groups و
--histogram.
توجه - این گزینه به خودی خود --use-dynamic را فعال نمیکند؛ بنابراین اگر آن گزینه در خط فرمان مشخص نشده باشد، نمادهای پویا (dynamic symbols) و جابهجاییهای پویا (dynamic relocs) نمایش داده نخواهند شد.
- -h
- --file-header
- اطلاعات موجود در سرآیند ELF در ابتدای فایل را نمایش میدهد.
- -l
- --program-headers
- --segments
- در صورت وجود، اطلاعات موجود در سرآیندهای قطعه (segment headers) فایل را نمایش میدهد.
- --quiet
- از نمایش پیام تشخیصی «no symbols» جلوگیری میکند.
- -S
- --sections
- --section-headers
- در صورت وجود، اطلاعات موجود در سرآیندهای بخش (section headers) فایل را نمایش میدهد.
- -g
- --section-groups
- در صورت وجود، اطلاعات موجود در گروههای بخش (section groups) فایل را نمایش میدهد.
- -t
- --section-details
- اطلاعات تفصیلی بخشها را نمایش میدهد. به طور ضمنی گزینه -S را نیز فعال میکند.
- -s
- --symbols
- --syms
- در صورت وجود، مدخلهای موجود در بخش جدول نمادها (symbol table) فایل را نمایش میدهد. اگر نمادی دارای اطلاعات نگارش مرتبط باشد، آن اطلاعات نیز نمایش داده میشود. رشتهٔ نگارش به صورت پسوندی برای نام نماد و پس از یک نویسهٔ @ نمایش داده میشود؛ به عنوان مثال foo@VER_1. اگر نگارش، نگارش پیشفرضی باشد که هنگام حل ارجاعات بدون نگارش به نماد به کار میرود، به صورت پسوندی نمایش داده میشود که دو نویسهٔ @ قبل از آن میآید؛ به عنوان مثال foo@@VER_2.
- --dyn-syms
- در صورت وجود، مدخلهای بخش جدول نمادهای پویا (dynamic symbol table) فایل را نمایش میدهد. قالب خروجی همان قالبی است که توسط گزینهٔ --syms استفاده میشود.
- --lto-syms
- محتوای هرگونه جدول نماد LTO موجود در فایل را نمایش میدهد.
- --sym-base=[0|8|10|16]
- فیلد اندازه (size) در جدول نمادها را ملزم به استفاده از مبنای دادهشده میکند. هر گزینهٔ ناشناخته به عنوان 0 در نظر گرفته میشود. --sym-base=0 نمایانگر رفتار پیشفرض و سنتی است. در این حالت اندازهها برای مقادیر کمتر از ۱۰۰۰۰۰ به صورت دهدهی نمایش داده میشوند. برای اندازههای ۱۰۰۰۰۰ و بیشتر، نمادگذاری مبنای شانزده با پیشوند 0x استفاده خواهد شد. --sym-base=8 اندازه نمادها را در مبنای هشت (octal) نمایش میدهد. --sym-base=10 اندازه نمادها را همیشه در مبنای ده (decimal) نمایش میدهد. --sym-base=16 اندازه نمادها را همیشه در مبنای شانزده (hexadecimal) به همراه پیشوند 0x نمایش میدهد.
- -C
- --demangle[=style]
- نام نمادهای سطح پایین را رمزگشایی (demangle) کرده و به نامهای سطح کاربر تبدیل میکند. این کار نام توابع C++ را خوانا میسازد. کامپایلرهای مختلف روشهای متفاوتی برای درهمریزی (mangling) نامها دارند. آرگومان اختیاری سبک demangle کردن میتواند برای انتخاب شیوهٔ مناسب برای کامپایلر شما به کار رود.
- --no-demangle
- نام نمادهای سطح پایین رمزگشایی (demangle) نشوند. این حالت پیشفرض است.
- --recurse-limit
- --no-recurse-limit
- --recursion-limit
- --no-recursion-limit
- محدودیت
عمق بازگشت
در حین
رمزگشایی
(demangling) رشتهها
را فعال یا
غیرفعال
میکند. از
آنجا که
ساختارهای
درهمریزیِ
نام اجازهٔ
سطوح
بازگشتی
نامحدود را
میدهند،
این امکان
وجود دارد
که
رشتههایی
تولید شوند
که پردازش
آنها کل
فضای پشتهٔ
(stack) موجود در
ماشین
میزبان را
مصرف کرده و
باعث خطای
دسترسی به
حافظه شود.
این
محدودیت با
محدود کردن
بازگشت به
۲۰۴۸ سطح
تودرتو
تلاش
میکند از
این رخداد
جلوگیری
کند.
به طور پیشفرض این محدودیت فعال است، اما برای رمزگشایی نامهای بسیار پیچیده ممکن است غیرفعال کردن آن ضروری باشد. با این حال توجه داشته باشید که اگر محدودیت بازگشت غیرفعال شود، احتمال اتمام فضای پشته وجود دارد و هرگونه گزارش باگ پیرامون این موضوع رد خواهد شد.
- -U [d|i|l|e|x|h]
- --unicode=[default|invalid|locale|escape|hex|highlight]
- نحوهٔ
نمایش
نویسههای
غیر ASCII در
نامهای
شناسه را
کنترل
میکند.
حالت
پیشفرض
(--unicode=locale یا --unicode=default)
این است که
با آنها به
عنوان
نویسههای
چندبایتی
برخورد شود
و بر اساس
لوکال (locale)
فعلی نمایش
داده شوند.
تمام
مقادیر
دیگر این
گزینه،
بایتها را
به عنوان
مقادیر
کدگذاریشده
با UTF-8 در نظر
گرفته و
برای تفسیر
آنها تلاش
میکنند.
اگر قابل
تفسیر
نباشند یا
اگر گزینهٔ
--unicode=invalid
استفاده
شده باشد،
به صورت
دنبالهای
از
بایتهای
هگزادسیمال
که در
نویسههای
آکوالاد
محصور
شدهاند
نمایش
مییابند.
استفاده از گزینهٔ --unicode=escape نویسهها را به صورت دنبالههای گریز یونیکد (\uxxxx) نمایش میدهد. استفاده از --unicode=hex نویسهها را به عنوان دنبالههای بایت هگزادسیمال محصور میان علامتهای بزرگتر و کوچکتر (< >) نمایش میدهد.
استفاده از --unicode=highlight نویسهها را به صورت دنبالههای گریز یونیکد نمایش میدهد و علاوه بر آن (در صورتی که دستگاه خروجی از رنگ پشتیبانی کند) آنها را با رنگ قرمز برجسته میسازد. این رنگآمیزی به منظور جلب توجه به حضور دنبالههای یونیکد در مواردی است که ممکن است انتظار حضور آنها وجود نداشته باشد.
- -X
- --extra-sym-info
- هنگام
نمایش
جزئیات
نمادها،
اطلاعات
اضافی را که
معمولاً
نشان داده
نمیشوند
درج میکند.
در حال حاضر
این گزینه
تنها نام
بخشی را که
فیلد
نمایهٔ (index)
نماد به آن
اشاره
دارد، در
صورت وجود،
اضافه
میکند. در
آینده ممکن
است با فعال
بودن این
گزینه
اطلاعات
بیشتری
نمایش داده
شود.
فعال کردن این گزینه دستکم هنگام نمایش اطلاعات نمادها، عملاً گزینهٔ --wide را نیز فعال میکند..IP --no-extra-sym-info 4 تاثیر گزینهٔ --extra-sym-info را غیرفعال میکند. این حالت پیشفرض است.
- -e
- --headers
- تمام سرآیندهای موجود در فایل را نمایش میدهد. معادل با -h -l -S است.
- -n
- --notes
- محتویات قطعهها و/یا بخشهای NOTE را در صورت وجود نمایش میدهد.
- -r
- --relocs
- محتویات بخش بازآرایی (relocation) فایل را در صورت وجود نمایش میدهد.
- -u
- --unwind
- محتویات بخش unwind (بازپیچی) فایل را در صورت وجود نمایش میدهد. در حال حاضر تنها بخشهای unwind برای فایلهای IA64 ELF، و همچنین جدولهای unwind در ARM (".ARM.exidx" / ".ARM.extab") پشتیبانی میشوند. اگر پشتیبانی برای معماری شما هنوز پیادهسازی نشده است، میتوانید تخلیهٔ محتویات بخش .eh_frames را با استفاده از گزینههای --debug-dump=frames یا --debug-dump=frames-interp امتحان کنید.
- -d
- --dynamic
- محتویات بخش پویای (dynamic) فایل را در صورت وجود نمایش میدهد.
- -V
- --version-info
- محتویات بخشهای نسخهٔ موجود در فایل را در صورت وجود نمایش میدهد.
- -A
- --arch-specific
- اطلاعات ویژهٔ معماری موجود در فایل را در صورت وجود نمایش میدهد.
- -D
- --use-dynamic
- هنگام
نمایش
نمادها،
این گزینه
باعث
میشود readelf
به جای
بخشهای
جدول نماد،
از
جدولهای
درهمسازی
نماد در بخش
پویای فایل
استفاده
کند.
هنگام نمایش بازآراییها، این گزینه باعث میشود readelf بازآراییهای پویا را به جای بازآراییهای ایستا نمایش دهد.
- -L
- --lint
- --enable-checks
- پیامهای هشدار دربارهٔ مشکلات احتمالی فایل(های) در حال بررسی را نمایش میدهد. اگر به تنهایی به کار رود، تمام محتویات فایل(ها) بررسی خواهد شد. اگر همراه با یکی از گزینههای تخلیه به کار رود، پیامهای هشدار تنها برای مواردی تولید میشوند که نمایش داده میشوند.
- -x <number or name>
- --hex-dump=<number or name>
- محتویات بخش مشخصشده را به صورت بایتهای هگزادسیمال نمایش میدهد. یک عدد، بخش خاصی را با نمایه در جدول بخشها مشخص میکند؛ هر رشتهٔ دیگر، تمام بخشهای با آن نام را در فایل شیء مشخص میسازد. این گزینه را میتوان چندین بار در خط فرمان تکرار کرد تا چند تخلیهٔ هگزادسیمال درخواست شود.
- -R <number or name>
- --relocated-dump=<number or name>
- محتویات بخش مشخصشده را به صورت بایتهای هگزادسیمال نمایش میدهد. یک عدد، بخش خاصی را با نمایه در جدول بخشها مشخص میکند؛ هر رشتهٔ دیگر، تمام بخشهای با آن نام را در فایل شیء مشخص میسازد. محتویات بخش پیش از نمایش بازآرایی خواهند شد. این گزینه را میتوان چندین بار در خط فرمان تکرار کرد تا چند تخلیهٔ بازآراییشده درخواست شود.
- -p <number or name>
- --string-dump=<number or name>
- محتویات بخش مشخصشده را به صورت رشتههای قابل چاپ نمایش میدهد. یک عدد، بخش خاصی را با نمایه در جدول بخشها مشخص میکند؛ هر رشتهٔ دیگر، تمام بخشهای با آن نام را در فایل شیء مشخص میسازد. این گزینه را میتوان چندین بار در خط فرمان تکرار کرد تا چند تخلیهٔ رشتهای درخواست شود.
- -j <number or name>
- --display-section
- محتویات
بخش
مشخصشده
را بر اساس
نوع سرآیند
بخش آن
نمایش
میدهد.
بخشهای
حاوی
بازآرایی
طوری نمایش
داده
خواهند شد
که گویی
گزینهٔ --relocations
به کار رفته
است،
بخشهای
حاوی نماد
بهگونهای
نمایش داده
میشوند که
گویی از
گزینهٔ --syms
استفاده
شده است، و
به همین
ترتیب.
یک عدد، بخش خاصی را با نمایه در جدول بخشها مشخص میکند؛ هر رشتهٔ دیگر، تمام بخشهای با آن نام را در فایل(های) ورودی مشخص میسازد.
این گزینه را میتوان چندین بار در خط فرمان تکرار کرد تا تخلیهٔ چند بخش درخواست شود.
- -z
- --decompress
- درخواست میکند بخش(هایی) که توسط گزینههای x، R یا p تخلیه میشوند، پیش از نمایش از حالت فشرده خارج شوند. اگر بخش(ها) فشرده نباشند، دستنخورده نمایش داده میشوند.
- -c
- --archive-index
- اطلاعات نمایهٔ نماد فایل موجود در بخش سرآیند آرشیوهای باینری را نمایش میدهد. عملکردی مشابه با دستور t در ar دارد، اما بدون استفاده از کتابخانهٔ BFD.
- -w[lLiaprmfFsOoRtUuTgAckK]
- --debug-dump[=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ها است؛
مقدار
ویژهٔ ۰
برای n نیز
همین اثر را
خواهد داشت.
با یک مقدار غیرصفر برای n، DIEهای واقع در سطح n یا عمیقتر از آن چاپ نخواهند شد. محدوده برای n مبتنی بر صفر است.
- --dwarf-start=n
- فقط DIEهایی
را چاپ
میکند که
با DIE شمارهٔ
n آغاز
میشوند.
این گزینه
فقط با --debug-dump=info
کاربرد
دارد.
در صورت تعیین، این گزینه از چاپ هرگونه اطلاعات سرآیند و تمام DIEهای قبل از DIE شمارهٔ n جلوگیری میکند. تنها همنیاها (siblings) و فرزندان DIE مشخصشده چاپ خواهند شد.
میتوان از این گزینه در کنار --dwarf-depth استفاده کرد.
- -P
- --process-links
- محتویات بخشهای غیردیباگ موجود در فایلهای debuginfo جداگانه که به فایل اصلی پیوند دارند را نمایش میدهد. این گزینه بهطور خودکار گزینهٔ -wK را در بر دارد، و تنها بخشهایی نمایش داده میشوند که توسط سایر گزینههای خط فرمان درخواست شده باشند.
- --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 را با چنین ساختاری تولید نمیکند، اما برخی پیونددهندههای متفرقه (third-party) ممکن است این کار را انجام دهند. همچنین برای بررسی دادههای CTF که به صورت چندین فایل خام نوشته شدهاند تا با objcopy ادغام شوند بسیار مناسب است، چرا که objcopy میتواند آنها را در بخشهای مختلف ELF قرار دهد اما نمیتواند در اعضای مختلف یک دیکشنری CTF واحد بنشاند.
- --ctf-symbols=section
- --ctf-strings=section
- نام بخش
دیگری را
مشخص
میکند که
فایل CTF
میتواند
رشتهها و
نمادها را
از آن به
ارث ببرد.
بهطور
پیشفرض،
از ".symtab" و
جدول رشتهٔ
متصل به آن
استفاده
میشود.
در صورت تعیین هر یک از گزینههای --ctf-symbols یا --ctf-strings، تعیین دیگری نیز الزامی است.
- -I
- --histogram
- هنگام نمایش محتویات جدولهای نماد، یک بافتنگاشت (histogram) از طول فهرستهای باکت (bucket) نمایش میدهد.
- -v
- --version
- شماره نسخهٔ readelf را نمایش میدهد.
- -W
- --wide
- خطوط خروجی را برای جا شدن در ۸۰ ستون نمیشکند. بهطور پیشفرض readelf خطوط فهرست سرآیند بخشها و قطعهها را برای فایلهای ELF ۶۴ بیتی میشکند تا در ۸۰ ستون جا شوند. این گزینه باعث میشود readelf هر سرآیند بخش یا به همین ترتیب هر قطعه را در یک خط مجزا چاپ کند، که در پایانههای عریضتر از ۸۰ ستون بسیار خواناتر است.
- -T
- --silent-truncation
- در حالت عادی هنگامی که readelf نام نمادی را نمایش میدهد و برای جا دادن نام در نمای ۸۰ ستونی مجبور به کوتاهسازی آن میشود، پسوند "[...]" را به نام میافزاید. این گزینهٔ خط فرمان این رفتار را غیرفعال میکند و امکان نمایش ۵ نویسهٔ بیشتر از نام را فراهم ساخته و رفتار قدیمی readelf (پیش از انتشار نسخهٔ 2.35) را بازمیگرداند..IP -H 4
- --help
- نمایش گزینههای خط فرمانی که توسط readelf پشتیبانی میشوند.
- @file
- گزینههای
خط فرمان را
از file
میخواند.
گزینههای
خواندهشده
جایگزین
گزینه
اولیه @file
میشوند.
اگر file وجود
نداشته
باشد یا
قابل
خواندن
نباشد، با
گزینه
بهصورت
لفظی (عینی)
رفتار
خواهد شد و
حذف
نمیشود.
گزینهها در file با نویسه خالی (whitespace) از یکدیگر جدا میشوند. یک نویسه خالی میتواند با قرار دادن کل گزینه در علامت نقلقول تکی یا دوتایی، در گزینه گنجانده شود. هر نویسهای (از جمله بکاسلش) را میتوان با پیشوند قرار دادن یک بکاسلش قبل از نویسه مورد نظر، درج کرد. خود file نیز ممکن است شامل گزینههای @file دیگری باشد؛ چنین گزینههایی بهصورت بازگشتی پردازش خواهند شد.
همچنین ببینید (SEE ALSO)
objdump(1) و مدخلهای Info برای binutils.
کپیرایت و تکثیر (COPYRIGHT)
Copyright (c) 1991-2025 Free Software Foundation, Inc.
اجازه کپی، توزیع و/یا تغییر این سند تحت شرایط مجوز مستندات آزاد گنو (GNU Free Documentation License)، نسخه 1.3 یا هر نسخه بعدی منتشر شده توسط بنیاد نرمافزارهای آزاد؛ بدون بخشهای تغییرناپذیر، بدون متون روی جلد و بدون متون پشت جلد اعطا میشود. نسخهای از این مجوز در بخشی با عنوان “GNU Free Documentation License” گنجانده شده است.
| 2026-01-23 | binutils-2.45.1 |