.\" Man page generated from reStructuredText .\" by the Docutils 0.22.4 manpage writer. . . .nr rst2man-indent-level 0 . .de1 rstReportMargin \\$1 \\n[an-margin] level \\n[rst2man-indent-level] level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] - \\n[rst2man-indent0] \\n[rst2man-indent1] \\n[rst2man-indent2] .. .de1 INDENT .\" .rstReportMargin pre: . RS \\$1 . nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] . nr rst2man-indent-level +1 .\" .rstReportMargin post: .. .de UNINDENT . RE .\" indent \\n[an-margin] .\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] .nr rst2man-indent-level -1 .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. .TH "ABIDW" "1" "May 01, 2026" "" "Libabigail" .SH "نام (NAME)" abidw \- سریال‌سازی ABI یک فایل ELF .sp دستور \fBabidw\fP یک کتابخانه اشتراکی در قالب ELF \% را خوانده و یک بازنمود XML از ABI آن را در خروجی استاندارد منتشر می‌کند. قالب بازنمود ارائه‌شده، با نام \fBABIXML\fP، شامل تمامی توابع و متغیرهای سراسری تعریف‌شده به همراه بازنمودی کامل از نوع‌های داده آن‌ها است. این خروجی همچنین شامل بازنمودی از نمادهای ELF تعریف‌شده به‌صورت سراسری در فایل است. .sp هنگامی که گزینه \fB\-\-linux\-tree\fP داده شود، این برنامه می‌تواند یک درخت هسته لینوکس \% را نیز مدیریت کند؛ به این معنی که یک درخت دایرکتوری شامل باینری vmlinux و ماژول‌های هسته لینوکس \% را بررسی می‌کند. این ابزار باینری‌های هسته لینوکس \% را تحلیل کرده و بازنمود XML رابط بین هسته و ماژول‌های آن را در خروجی استاندارد منتشر می‌سازد. در این حالت، به آن ABI نمی‌گوییم، بلکه آن را KMI (رابط ماژول هسته یا Kernel Module Interface) می‌نامیم. KMI منتشرشده شامل تمامی توابع و متغیرهای تعریف‌شده به‌صورت سراسری به همراه بازنمود کاملی از نوع‌های آن‌ها است. .sp برای تولید بازنمود ABI یا KMI، دستور \fBabidw\fP به‌طور پیش‌فرض از اطلاعات دیباگ در قالب DWARF \% (در صورت وجود) استفاده می‌کند؛ در غیر این صورت، به دنبال اطلاعات دیباگ در قالب‌های CTF \% یا BTF \% (در صورت وجود) می‌گردد. در نهایت، اگر هیچ اطلاعات دیباگی در این قالب‌ها یافت نشود، تنها نمادهای ELF \% را در نظر گرفته و افزودن یا حذف آن‌ها را گزارش می‌دهد. .sp این ابزار از کتابخانه libabigail برای تحلیل باینری و همچنین اطلاعات دیباگ مرتبط با آن استفاده می‌کند. نحوه عملکرد کلی آن به شرح زیر است: .sp هنگامی که دستور داده شود، یک باینری و اطلاعات دیباگ مرتبط با آن خوانده و تحلیل می‌شوند. برای این منظور، libabigail به‌طور پیش‌فرض توضیحات مربوط به نوع‌های داده قابل دسترسی توسط رابط‌ها (توابع و متغیرها) را که از خارج از واحد ترجمه (translation unit) آن‌ها قابل مشاهده هستند، تحلیل می‌کند. پس از انجام این تحلیل، یک پیکره رابط دودویی کاربردی (Application Binary Interface Corpus) تنها با در نظر گرفتن زیرمجموعه‌ای از نوع‌های داده قابل دسترس از رابط‌های مرتبط با نمادهای ELF \% که توسط باینری تعریف و صادر (export) شده‌اند، ساخته می‌شود. این همان پیکره نهایی ABI است که libabigail آن را نماینده ABI باینری تحلیل‌شده در نظر می‌گیرد. .sp سپس libabigail قابلیت تولید بازنمودهای متنی از پیکره‌های ABI، مقایسه آن‌ها، تحلیل تغییراتشان و گزارش‌دهی درباره آن‌ها را دارد. .SH "فراخوانی (INVOCATION)" .INDENT 0.0 .INDENT 3.5 .sp .EX abidw [options] [] .EE .UNINDENT .UNINDENT .SH "گزینه‌ها (OPTIONS)" .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .IP \(bu 2 \fB\-\-abidiff\fP .UNINDENT .INDENT 0.0 .INDENT 3.5 بارگذاری ABI باینری ELF داده‌شده در آرگومان، ذخیره آن در قالب XML متعلق به libabigail در یک فایل موقت؛ خواندن مجدد ABI از فایل موقت XML و مقایسه ABI بازخوانی‌شده با ABI باینری ELF ارائه‌شده در آرگومان. دو ABI باید یکسان باشند. اگر یکسان نباشند، برنامه پیامی تشخیصی صادر کرده و با کدی غیرصفر خارج می‌شود. .sp این گزینه برای دیباگ و سنجش صحت عملکرد (sanity check) است. .UNINDENT .UNINDENT .INDENT 0.0 .IP \(bu 2 \fB\-\-abixml\-version\fP .sp نمایش نسخه قالب ABIXML ارائه‌شده توسط این برنامه و خروج. .IP \(bu 2 \fB\-\-add\-binaries\fP <\fIbin1,bin2,...\fP> .sp به ازای هر یک از باینری‌های جداشده با ویرگول که در آرگومان این گزینه داده شده است، چنانچه باینری در دایرکتوری مشخص‌شده توسط گزینه \fI\-\-added\-binaries\-dir\fP یافت شود، پیکره ABI آن باینری بارگذاری شده و به مجموعه‌ای از پیکره‌های ABI (با نام گروه پیکره ABI یا ABI Corpus Group) متشکل از باینری مشخص‌شده در آرگومان \fBabidw\fP افزوده می‌شود. سپس آن گروه پیکره سریال‌سازی و خارج می‌شود. .IP \(bu 2 \fB\-\-added\-binaries\-dir | \-\-abd\fP <\fIdir\-path\fP> .sp این گزینه باید به همراه گزینه‌های \fB\-\-add\-binaries\fP، \fB\-\-follow\-dependencies\fP یا \fB\-\-list\-dependencies\fP به کار رود. باینری‌های فهرست‌شده در آرگومان‌های گزینه \fB\-\-add\-binaries\fP، یا باینری‌هایی که وابستگی‌های باینری ورودی هستند (در صورت استفاده از گزینه \fB\-\-follow\-dependencies\fP) و در دایرکتوری <\fIdir\-path\fP> یافت می‌شوند، به عنوان پیکره ABI بارگذاری شده و به مجموعه پیکره‌های ABI ساخته‌شده و سریال‌سازی‌شده (به نام گروه پیکره ABI) افزوده خواهند شد. .IP \(bu 2 \fB\-\-allow\-non\-exported\-interfaces\fP .sp هنگام بررسی اطلاعات دیباگ همراه با یک باینری، این ابزار توضیحات مربوط به نوع‌های داده قابل دسترس توسط رابط‌ها (توابع و متغیرها) را که از بیرون واحد ترجمه آن‌ها قابل مشاهده است، تحلیل می‌کند. پس از پایان آن تحلیل، یک پیکره ABI تنها با در نظر گرفتن زیرمجموعه‌ای از نوع‌های داده قابل دسترس از رابط‌های مرتبط با نمادهای ELF \% که توسط باینری تعریف و صادر شده‌اند ساخته می‌شود. این همان پیکره نهایی ABI است که بازنمود متنی آن با نام \fBABIXML\fP ذخیره می‌گردد. .sp با این حال، مشکل این روش این است که تحلیل تمامی رابط‌هایی که از بیرون واحد ترجمه‌شان قابل مشاهده‌اند می‌تواند حجم زیادی داده ایجاد کند، به‌ویژه زمانی که این باینری‌ها برنامه‌های کاربردی باشند (برخلاف کتابخانه‌های اشتراکی). یک نمونه از چنین برنامه‌هایی، هسته لینوکس \% است. تحلیل پیکره‌های عظیم ABI مانند این‌ها می‌تواند بسیار کند باشد. .sp با این حال در مورد یک باینری با «اندازه معمولی»، با استفاده از این گزینه می‌توان این امکان را فراهم کرد که libabigail تمام رابط‌های قابل مشاهده از خارج از واحد ترجمه‌شان را تحلیل کند. .sp توجه داشته باشید که این گزینه به‌طور پیش‌فرض فعال است، مگر اینکه با هسته لینوکس \% سر و کار داشته باشیم. .IP \(bu 2 \fB\-\-annotate\fP .UNINDENT .INDENT 0.0 .INDENT 3.5 حاشیه‌نویسی خروجی ABIXML با قرار دادن کامنت‌هایی در بالای بیشتر عناصر. این کامنت‌ها از شکل زیباسازی‌شده (pretty\-printed) نوع‌های داده، اعلان‌ها یا حتی نمادهای ELF تشکیل شده‌اند. هدف از این کار، خواناتر کردن خروجی ABIXML برای انسان به منظور دیباگ یا مستندسازی است. .UNINDENT .UNINDENT .INDENT 0.0 .IP \(bu 2 \fB\-\-btf\fP .sp استخراج اطلاعات ABI از اطلاعات دیباگ BTF \%، در صورت وجود در شیء داده‌شده. .IP \(bu 2 \fB\-\-check\-alternate\-debug\-info\fP <\fIelf\-path\fP> .sp چنانچه اطلاعات دیباگ فایل \fIelf\-path\fP شامل ارجاعی به یک فایل اطلاعات دیباگ جایگزین \% باشد، \fBabidw\fP بررسی می‌کند که آیا می‌تواند آن فایل اطلاعات دیباگ جایگزین را بیابد یا خیر. در این صورت، پیامی با معنی حاکی از موفقیت صادر کرده و مسیر کامل فایل اطلاعات دیباگ جایگزین یافت‌شده را ذکر می‌کند. در غیر این صورت، یک کد خطا صادر می‌کند. .IP \(bu 2 \fB\-\-check\-alternate\-debug\-info\-base\-name\fP <\fIelf\-path\fP> .sp همانند \fB\-\-check\-alternate\-debug\-info\fP، اما در پیام موفقیت، تنها نام پایه (base name) فایل اطلاعات دیباگ ذکر می‌شود، نه مسیر کامل آن. .IP \(bu 2 \fB\-\-debug\-abidiff\fP .UNINDENT .INDENT 0.0 .INDENT 3.5 مشابه \fB\-\-abidiff\fP اما در حالت دیباگ. در این حالت، برای نوع‌هایی که یکسان‌سازی نوع (type canonicalization) در آن‌ها با شکست مواجه می‌شود، پیام خطا صادر می‌گردد. .sp این یک گزینه اختیاری برای دیباگ و سنجش صحت عملکرد است. برای فعال‌سازی آن، بسته libabigail باید با گزینه \-\-enable\-debug\-self\-comparison پیکربندی شده باشد. .UNINDENT .UNINDENT .INDENT 0.0 .IP \(bu 2 \fB\-\-ctf\fP .sp استخراج اطلاعات ABI از اطلاعات دیباگ CTF \%، در صورت وجود در شیء داده‌شده..IP \(bu 2 \fB\-\-debug\-info\-dir | \-d\fP <\fIdir\-path\fP> .sp در مواردی که اطلاعات دیباگ برای \fIpath\-to\-elf\-file\fP در یک فایل جداگانه قرار دارد که در مکانی غیر استاندارد واقع شده است، این گزینه به \fBabidw\fP اعلام می‌کند که در کجا به دنبال آن فایل اطلاعات دیباگ بگردد. .sp توجه داشته باشید که \fIdir\-path\fP باید به دایرکتوری ریشه‌ای اشاره کند که اطلاعات دیباگ در زیر آن به صورت درختی مرتب شده‌اند. در سیستم‌های مبتنی بر Red Hat، این دایرکتوری معمولاً \fB/usr/lib/debug\fP است\&. .sp این گزینه می‌تواند چندین بار با دایرکتوری‌های ریشه مختلف مشخص شود. در این صورت، \fBabidw\fP به طور بالقوه تمام آن دایرکتوری‌های ریشه را برای یافتن اطلاعات دیباگ مجزا (split debug info) برای فایل elf جستجو خواهد کرد. .sp توجه داشته باشید که این گزینه برای اطلاعات دیباگ مجزایی که توسط مدیر بسته‌ی سیستم شما نصب شده است اجباری نیست، زیرا در آن حالت \fBabidw\fP می‌داند که چگونه آن را پیدا کند. .IP \(bu 2 \fB\-\-debug\-type\-canonicalization | \-\-debug\-tc\fP .UNINDENT .INDENT 0.0 .INDENT 3.5 اشکال‌زدایی فرآیند استانداردسازی انواع (type canonicalization). این کار با استفاده از برابری ساختاری و کانونی (canonical) هنگام استانداردسازی تک‌تک انواع انجام می‌شود. برابری ساختاری و کانونی باید نتیجه یکسانی ارائه دهند. اگر آن‌ها برای یک نوع خاص نتیجه یکسانی نداشته باشند، به این معنی است که استانداردسازی آن نوع دچار خطا شده است. در این صورت، یک پیام خطا صادر شده و اجرای برنامه متوقف می‌شود. .sp این گزینه تنها در صورتی در دسترس است که بسته با گزینه \-\-enable\-debug\-type\-canonicalization پیکربندی شده باشد. .UNINDENT .UNINDENT .INDENT 0.0 .IP \(bu 2 \fB\-\-drop\-private\-types\fP .sp این گزینه به صورت ضمنی توسط گزینه‌های \-\-headers\-dir و \-\-header\-file فعال می‌شود. .sp با این گزینه، انواعی که در هدرها تعریف \fIنشده‌اند\fP به طور کامل از بازنمایی داخلی ایجادشده توسط Libabigail برای بازنمایی ABI حذف می‌شوند و در فایل abi XML قرار نخواهند گرفت. .sp این گزینه صرفاً به دلایل سازگاری ارائه شده است و دیگر نباید به طور صریح استفاده شود. .IP \(bu 2 \fB\-\-drop\-undefined\-syms\fP .sp با این گزینه، توابع یا متغیرهایی که نماد (صادرشده‌ی) ELF آن‌ها تعریف‌نشده است، از بازنمایی داخلی ایجادشده توسط Libabigail برای بازنمایی ABI حذف می‌شوند و در فایل abi XML قرار نخواهند گرفت. .IP \(bu 2 \fB\-\-exported\-interfaces\-only\fP .sp به‌طور پیش‌فرض، هنگام بررسی اطلاعات دیباگ همراه یک باینری، این ابزار توضیحات انواعی را تحلیل می‌کند که از طریق رابط‌ها (توابع و متغیرها) که خارج از واحد ترجمه (translation unit) خود قابل مشاهده هستند، در دسترس قرار دارند. هنگامی که این تحلیل انجام شد، یک پیکره‌ی ABI (ABI corpus) تنها با در نظر گرفتن زیرمجموعه‌ای از انواع ساخته می‌شود که از رابط‌های مرتبط با نمادهای ELF \% که توسط باینری تعریف و صادر (export) شده‌اند، قابل دسترسی هستند. این همان پیکره نهایی ABI است که بازنمایی متنی آن به عنوان \fBABIXML\fP ذخیره می‌شود\&. .sp با این حال، مشکل این رویکرد آن است که تحلیل تمام رابط‌هایی که از خارج از واحد ترجمه خود قابل مشاهده هستند می‌تواند به حجم بسیار زیادی از داده منجر شود، به خصوص زمانی که آن باینری‌ها بر خلاف کتابخانه‌های اشتراکی، برنامه‌های کاربردی باشند. یک نمونه از این برنامه‌ها هسته لینوکس (Linux Kernel) \% است\&. تحلیل چنین پیکره‌های عظیمی از ABI می‌تواند بسیار کُند باشد. .sp برای کاهش این مشکل کارایی، این گزینه به libabigail اجازه می‌دهد تا فقط انواعی را تحلیل کند که از رابط‌های مرتبط با نمادهای تعریف‌شده و صادرشده‌ی ELF \% در دسترس هستند. .sp توجه داشته باشید که این گزینه هنگام تحلیل Linux Kernel \% به طور پیش‌فرض فعال است\&. در غیر این صورت، به طور پیش‌فرض غیرفعال است. .IP \(bu 2 \fB\-\-fail\-no\-debug\-info\fP .sp اگر برنامه نتواند اطلاعات دیباگ را برای باینری ورودی پیدا کند، با یک کد خطای غیر صفر خارج می‌شود. بدون این گزینه، برنامه در صورت عدم وجود اطلاعات دیباگ، اطلاعات ABI مربوط به نمادهای ELF را منتشر می‌کند. در این حالت، اطلاعات نوع (type information) نادیده گرفته می‌شود. .IP \(bu 2 \fB\-\-follow\-dependencies\fP .sp برای هر وابستگیِ باینری ورودیِ \fBabidw\fP، اگر در دایرکتوری مشخص‌شده توسط گزینه \fB\-\-added\-binaries\-dir\fP یافت شود، یک پیکره ABI از آن وابستگی ایجاد کرده و آن را همراه با پیکره ABI باینری ورودی برنامه، به مجموعه‌ای از پیکره‌های ABI (به نام گروه پیکره ABI یا ABI Corpus Group) اضافه می‌کند. سپس گروه پیکره ABI به صورت سریالی‌شده (serialized) ذخیره می‌شود. .IP \(bu 2 \fB\-\-force\-early\-suppression\fP .sp این گزینه باید در کنار گزینه \-\-suppression استفاده شود\&. .sp این گزینه، مشخصات فرونشانی (suppression specifications) \%<#\:suppr-spec-label> را مجبور می‌کند تا در حالت فرونشانی زودهنگام (early suppression mode) \%<#\:early-suppression-mode-label> اعمال شوند\&. بنابراین، عناصر بازنمایی داخلی که با مشخصات فرونشانی مطابقت دارند، از حافظه حذف می‌شوند. .sp اگر از این گزینه استفاده نشود، تنها مشخصات فرونشانی با ویژگی drop که روی \(aqyes\(aq \%<#\:drop-property-label> تنظیم شده است، مؤثر خواهند بود. سایر دستورالعمل‌های مشخصات فرونشانی به نظر نادیده گرفته می‌شوند. .IP \(bu 2 \fB\-\-headers\-dir | \-\-hd\fP .sp مشخص می‌کند که هدرهای عمومی باینری که ابزار باید در نظر بگیرد در کجا قرار دارند. بنابراین ابزار انواعی را که در هدرهای عمومی تعریف نشده‌اند فیلتر می‌کند. این گزینه به‌طور ضمنی گزینه \-\-drop\-private\-types را فعال می‌کند\&. .sp توجه داشته باشید که می‌توان چندین دایرکتوری هدر عمومی را برای باینری مورد نظر مشخص کرد. در این حالت گزینه \fB\-\-header\-dir\fP باید چندین بار در خط فرمان درج شود، مانند مثال زیر: .INDENT 2.0 .INDENT 3.5 .sp .EX $ abidw \-\-header\-dir /some/path \e \-\-header\-dir /some/other/path \e binary > binary.abi .EE .UNINDENT .UNINDENT .IP \(bu 2 \fB\-\-header\-file | \-\-hf\fP .sp مشخص می‌کند که یکی از هدرهای عمومی فایل abi که ابزار باید در نظر بگیرد در کجا قرار دارد. بنابراین ابزار انواعی را که در هدرهای عمومی تعریف نشده‌اند فیلتر می‌کند. .sp این گزینه به‌طور ضمنی گزینه \-\-drop\-private\-types را فعال می‌کند\&. .IP \(bu 2 \fB\-\-help | \-h\fP .sp نمایش یک راهنمای کوتاه درباره دستور و خروج. .IP \(bu 2 \fB\-\-kmi\-whitelist | \-\-kmi\-stablelist |\-w\fP <\fIpath\-to\-stablelist\fP> .sp هنگام تحلیل یک باینری از Linux Kernel \%، این گزینه به فهرست نام نمادهای ELF توابع و متغیرهایی اشاره می‌کند که ABI آن‌ها باید نوشته شود. هر تابع یا متغیری با نامی که در آن فهرست قرار ندارد، نادیده گرفته خواهد شد. این فهرست \(dqفهرست پایدار رابط ماژول هسته\(dq (Kernel Module Interface stable list) نامیده می‌شود. این به این دلیل است که برای هسته، ما از ABI صحبت نمی‌کنیم؛ بلکه بیشتر درباره رابط بین هسته و ماژول‌های آن صحبت می‌کنیم. از این رو اصطلاح \fBKMI\fP به جای \fBKABI\fP به کار می‌رود\&. .sp هر تابع یا متغیر دیگری که نماد ELF آن در آن فهرست پایدار وجود نداشته باشد، توسط فرآیند نگارش KMI در نظر گرفته نخواهد شد. .sp اگر این گزینه ارائه نشود \-\- یعنی اگر هیچ فهرست پایداری مشخص نشده باشد \-\- تمام KMI، یعنی تمام توابع و متغیرهای سراسریِ عمومی که توسط باینری‌های Linux Kernel \% تعریف و صادر شده‌اند، منتشر می‌شوند. .IP \(bu 2 \fB\-\-list\-dependencies\fP .sp برای هر وابستگی از باینری ورودیِ \(ga\(gaabidw\(ga\(ga، اگر در دایرکتوری مشخص‌شده توسط گزینه \fB\-\-added\-binaries\-dir\fP یافت شود، نام آن وابستگی چاپ می‌شود. .IP \(bu 2 \fB\-\-load\-all\-types\fP .sp به‌طور پیش‌فرض، \fBlibabigail\fP (و در نتیجه \fBabidw\fP) تنها انواعی را بارگذاری می‌کند که از اعلانات توابع و متغیرهایی که به‌طور عمومی توسط باینری تعریف و صادر شده‌اند، قابل دسترسی باشند. بنابراین تنها آن نوع‌ها در خروجی \fBabidw\fP وجود دارند\&. با این حال، این گزینه باعث می‌شود که \fBabidw\fP \fIتمام\fP انواع تعریف‌شده در باینری‌ها را بارگذاری کند، حتی مواردی را که از اعلانات عمومی قابل دسترسی نیستند. .IP \(bu 2 \fB\-\-linux\-tree | \-\-lt\fP .sp باعث می‌شود \fBabidw\fP مسیر ورودی را به عنوان مسیری به دایرکتوری حاوی باینری vmlinux و چندین باینری ماژول هسته در نظر بگیرد. در این حالت، این برنامه بازنمایی رابط ماژول هسته (KMI) را در خروجی استاندارد منتشر می‌کند. .sp در زیر مثالی از کاربرد \fBabidw\fP روی درخت منبع Linux Kernel \% آورده شده است. .sp ابتدا، یک درخت منبع Linux Kernel \% را دریافت کرده و آن را بسازید. سپس ماژول‌های هسته را در یک دایرکتوری نصب کنید. باینری vmlinux را نیز در آن دایرکتوری کپی کنید. و سپس با استفاده از \fBabidw\fP، رابط KMI آن هسته را روی دیسک ذخیره کنید: .INDENT 2.0 .INDENT 3.5 .sp .EX $ git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git $ cd linux && git checkout v4.5 $ make allyesconfig all $ mkdir build\-output $ make INSTALL_MOD_PATH=./build\-output modules_install $ cp vmlinux build\-output/modules/4.5.0 $ abidw \-\-linux\-tree build\-output/modules/4.5.0 > build\-output/linux\-4.5.0.kmi .EE .UNINDENT .UNINDENT.IP \(bu 2 \fB\-\-no\-assume\-odr\-for\-cplusplus\fP .sp هنگام تحلیل یک باینری حاصل از کد C++ با استفاده از اطلاعات دیباگ DWARF \%، کتابخانه libabigail قاعده یکتایی تعریف (One Definition Rule) \% را برای افزایش سرعت تحلیل فرض می‌کند. در این حالت، زمانی که چندین نوع داده در باینری نام یکسانی داشته باشند، همگی برابر فرض می‌شوند. .sp این گزینه این فرض را غیرفعال کرده و به libabigail دستور می‌دهد تا برای تعیین برابری، انواع داده را واقعاً با یکدیگر مقایسه کند. .IP \(bu 2 \fB\-\-no\-corpus\-path\fP .sp صفت مسیر (path) را برای پیکره (corpus) متعلق به ABI صادر نمی‌کند. .IP \(bu 2 \fB\-\-no\-elf\-needed\fP .sp فهرست نام‌های وابستگی DT_NEEDED را در پیکره قرار نمی‌دهد. .IP \(bu 2 \fB\-\-no\-leverage\-dwarf\-factorization\fP .sp هنگام تحلیل باینری‌ای که اطلاعات دیباگ DWARF \% آن با ابزار DWZ \% پردازش شده است، فرض می‌شود اطلاعات انواع داده از قبل فاکتورگیری شده‌اند. این زمینه توسط libabigail برای انجام برخی بهینه‌سازی‌های سرعتی به کار گرفته می‌شود. .sp این گزینه آن بهینه‌سازی‌ها را غیرفعال می‌کند. .IP \(bu 2 \fB\-\-no\-load\-undefined\-interfaces\fP .sp به‌طور پیش‌فرض، \fBlibabigail\fP (و در نتیجه \fBabidw\fP) اطلاعات مربوط به نمادهای تعریف‌نشده توابع و متغیرها، و همچنین توابع و متغیرهایی که با آن نمادهای تعریف‌نشده مرتبط هستند را بارگذاری می‌کند. به این موارد رابط‌های تعریف‌نشده (undefined interfaces) می‌گویند. با این حال، این گزینه باعث می‌شود که \fBabidw\fP از بارگذاری اطلاعات مربوط به رابط‌های تعریف‌نشده خودداری کند. در نتیجه، فایل XML حاصل حاوی اطلاعاتی در مورد این رابط‌های تعریف‌نشده نخواهد بود. .IP \(bu 2 \fB\-\-no\-linux\-kernel\-mode\fP .sp بدون این گزینه، اگر abipkgdiff تشخیص دهد باینری‌های در حال بررسی باینری‌های هسته لینوکس هستند (چه vmlinux یا ماژول‌ها)، فقط توابع و متغیرهایی را در نظر می‌گیرد که نمادهای ELF آن‌ها در بخش‌های __ksymtab و __ksymtab_gpl فهرست شده باشند. .sp با این گزینه، abipkgdiff باینری را به عنوان یک باینری ELF غیرخاص در نظر می‌گیرد. بنابراین توابع و متغیرهایی را لحاظ می‌کند که به مفهوم ELF تعریف و صادر (export) شده‌اند. .IP \(bu 2 \fB\-\-noout\fP .sp این گزینه به \fBabidw\fP دستور می‌دهد تا بازنمود XML از ABI را صادر نکند؛ بنابراین تنها اطلاعات ELF و دیباگ را خوانده، ساختار درونی ABI را ایجاد می‌کند و خارج می‌شود. این گزینه معمولاً برای اهداف عیب‌یابی مفید است. .IP \(bu 2 \fB\-\-no\-parameter\-names\fP .sp در بازنمود ABI صادرشده، نام پارامترهای تابع نشان داده نمی‌شود و تنها انواع آن‌ها نمایش داده می‌شود. .IP \(bu 2 \fB\-\-no\-show\-locs\fP .UNINDENT .INDENT 0.0 .INDENT 3.5 در بازنمود ABI صادرشده، فایل، خط یا ستونی که مصنوعات ABI در آن تعریف شده‌اند نشان داده نمی‌شود. .UNINDENT .UNINDENT .INDENT 0.0 .IP \(bu 2 \fB\-\-no\-write\-default\-sizes\fP .sp در بازنمود XML از ABI، اندازه به بیت (size\-in\-bits) را برای تعاریف نوع اشاره‌گر، تعاریف نوع ارجاع، اعلان‌های تابع و انواع تابع، در صورتی که با اندازه پیش‌فرض آدرسِ واحد ترجمه برابر باشند، نمی‌نویسد. توجه داشته باشید که libabigail در نسخه‌های پیش از 1.8 اندازه پیش‌فرض را تنظیم نخواهد کرد و انواع بدون صفت size\-in\-bits را به عنوان اندازه صفر تفسیر می‌کند. .IP \(bu 2 \fB\-\-out\-file | \-o\fP <\fIfile\-path\fP> .sp این گزینه به \fBabidw\fP دستور می‌دهد تا به جای ارسال بازنمود XML از \fIpath\-to\-elf\-file\fP به خروجی استاندارد، آن را درون فایل \fIfile\-path\fP بنویسد. .IP \(bu 2 \fB\-\-stats\fP .sp آمارهایی درباره موارد گوناگون درونی صادر می‌کند. .IP \(bu 2 \fB\-\-suppressions | suppr\fP <\fIpath\-to\-suppression\-specifications\-file\fP> .sp از یک فایل مشخصات فرونشانی \%<#\:suppr-spec-label> واقع در \fIpath\-to\-suppression\-specifications\-file\fP\& استفاده می‌کند. توجه داشته باشید که این گزینه می‌تواند چندین بار در خط فرمان ظاهر شود. در این صورت، تمام فایل‌های مشخصات فرونشانی ارائه‌شده مد نظر قرار می‌گیرند. مصنوعات ABI منطبق با مشخصات فرونشانی، از خروجی این ابزار حذف می‌شوند. .sp تنها مشخصات فرونشانی‌ای که ویژگی drop آن‌ها روی \(aqyes\(aq \%<#\:drop-property-label> تنظیم شده باشد اثرگذار خواهند بود. تمامی دستورالعمل‌های دیگر مشخصات فرونشانی نادیده گرفته می‌شوند، مگر اینکه گزینه خط فرمان \-\-force\-early\-suppression ارائه شده باشد. .IP \(bu 2 \fB\-\-type\-id\-style\fP <\fBsequence\(ga\(ga|\(ga\(gahash\fP> .sp این گزینه نحوه شناسایی انواع داده را در فایل‌های XML تولیدشده کنترل می‌کند. سبک پیش‌فرض \fBsequence\fP صرفاً انواع داده را به ترتیبی که با آن‌ها مواجه می‌شود (با پیشوند \fBtype\-id\-\fP) شماره‌گذاری می‌کند. سبک \fBhash\fP از یک درهم‌سازی (پایدار و سازگار) از نام‌های درونی انواع داده در libabigail استفاده می‌کند و هدف آن آسان‌تر کردن مقایسه (diff) فایل‌های XML است. .IP \(bu 2 \fB\-\-verbose\fP .sp گزارش‌های با جزئیات کامل (verbose) درباره پیشرفت موارد گوناگون درونی صادر می‌کند. .IP \(bu 2 \fB\-\-version | \-v\fP .sp نسخه برنامه را نمایش داده و خارج می‌شود. .UNINDENT .UNINDENT .UNINDENT.SH "مثال‌های کاربردی (USAGE EXAMPLES)" .INDENT 0.0 .INDENT 3.5 .INDENT 0.0 .IP 1. 3 تولید یک نمایش \fBABIXML\fP از یک فایل باینری: .INDENT 3.0 .INDENT 3.5 .sp .EX $ abidw binary > binary.abi .EE .UNINDENT .UNINDENT .IP 2. 3 تولید یک نمایش \fBABIXML\fP از مجموعه‌ای از باینری‌های مشخص‌شده در خط فرمان: .INDENT 3.0 .INDENT 3.5 .sp .EX $ abidw \-\-added\-binaries=bin1,bin2,bin3 \e \-\-added\-binaries\-dir /some/where \e binary > binaries.abi .EE .UNINDENT .UNINDENT .sp توجه داشته باشید که باینری‌های bin1، bin2 و bin3 در دایرکتوری \fB/some/where\fP یافت می‌شوند\&. نمایشی از ABI مجموعه‌ی باینری‌های \fBbinary، bin1، bin2\fP و \fBbin3\fP تحت عنوان یک \fBABI corpus group\fP در فایل binaries.abi سریال‌سازی می‌شود\&. .IP 3. 3 تولید یک نمایش \fBABIXML\fP از یک باینری و وابستگی‌های آن: .INDENT 3.0 .INDENT 3.5 .sp .EX $ abidw \-\-follow\-dependencies \e \-\-added\-binaries\-dir /some/where \e binary > binary.abi .EE .UNINDENT .UNINDENT .sp توجه داشته باشید که تنها وابستگی‌هایی که در دایرکتوری \fB/some/where\fP قرار دارند تحلیل می‌شوند\&. ABIهای آن‌ها به همراه ABI باینری با نام \fBbinary\fP، در قالب یک ABI corpus group نمایش داده شده و با قالب ABIXML در فایل \fBbinary.abi\fP سریال‌سازی می‌شوند\&. .UNINDENT .UNINDENT .UNINDENT .SH "نکات (NOTES)" .SS "فایل‌های اطلاعات اشکال‌زدایی جایگزین (Alternate debug info files)" .sp از نگارش ۴ مشخصات DWARF، اطلاعات اشکال‌زدایی جایگزین \% یک افزونه‌ی GNU \% برای مشخصات DWARF به حساب می‌آید\&. با این حال، پیشنهاد شده است که در نگارش ۵ استاندارد DWARF گنجانده شود\&. می‌توانید درباره‌ی افزونه‌های GNU برای استاندارد DWARF در اینجا \% بیشتر بخوانید\&. .SH "نویسندگان (AUTHORS)" Dodji Seketeli .SH "کپی‌رایت و تکثیر (COPYRIGHT)" 2014-2025, Red Hat, Inc. .\" End of generated man page.