.\" -*- mode: troff; coding: utf-8 -*- .\" Automatically generated by Pod::Man v6.0.2 (Pod::Simple 3.45) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" \*(C` and \*(C' are quotes in nroff, nothing in troff, for use with C<>. .ie n \{\ . ds C` "" . ds C' "" 'br\} .el\{\ . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Required to disable full justification in groff 1.23.0. .if n .ds AD l .\" ======================================================================== .\" .IX Title "ADDR2LINE 1" .TH ADDR2LINE 1 2026-01-23 binutils-2.45.1 "GNU Development Tools" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "نام (NAME)" addr2line \- تبدیل نشانی‌ها یا نماد+آفست به نام فایل و شماره خط .SH "خلاصه دستور (SYNOPSIS)" .IX Header "SYNOPSIS" addr2line [\fB\-a\fR|\fB\-\-addresses\fR] [\fB\-b\fR \fIbfdname\fR|\fB\-\-target=\fR\fIbfdname\fR] [\fB\-C\fR|\fB\-\-demangle\fR[=\fIstyle\fR]] [\fB\-r\fR|\fB\-\-no\-recurse\-limit\fR] [\fB\-R\fR|\fB\-\-recurse\-limit\fR] [\fB\-e\fR \fIfilename\fR|\fB\-\-exe=\fR\fIfilename\fR] [\fB\-f\fR|\fB\-\-functions\fR] [\fB\-s\fR|\fB\-\-basename\fR] [\fB\-i\fR|\fB\-\-inlines\fR] [\fB\-p\fR|\fB\-\-pretty\-print\fR] [\fB\-j\fR|\fB\-\-section=\fR\fIname\fR] [\fB\-H\fR|\fB\-\-help\fR] [\fB\-V\fR|\fB\-\-version\fR] [addr addr ...] .SH "توضیحات (DESCRIPTION)" .IX Header "DESCRIPTION" دستور \&\fBaddr2line\fR نشانی‌ها یا نماد+آفست را به نام فایل‌ها و شماره خط‌ها تبدیل می‌کند. با دریافت یک نشانی یا نماد+آفست در یک فایل اجرایی یا یک آفست در بخشی از یک شیء بازآرایی‌پذیر (relocatable object)، این دستور با استفاده از اطلاعات اشکال‌زدایی تشخیص می‌دهد که کدام نام فایل و شماره خط با آن مرتبط است. .PP فایل اجرایی یا شیء بازآرایی‌پذیر مورد استفاده با گزینهٔ \fB\-e\fR مشخص می‌شود. مقدار پیش‌فرض فایل \fIa.out\fR است. بخشی از شیء بازآرایی‌پذیر که باید استفاده شود با گزینهٔ \fB\-j\fR تعیین می‌شود. .PP دستور \&\fBaddr2line\fR دارای دو حالت کاری است. .PP در حالت نخست، نشانی‌های هگزادسیمال یا نماد+آفست در خط فرمان مشخص می‌شوند و \fBaddr2line\fR نام فایل و شماره خط مربوط به هر نشانی را نمایش می‌دهد. .PP در حالت دوم، \fBaddr2line\fR نشانی‌های هگزادسیمال یا نماد+آفست را از ورودی استاندارد می‌خواند و نام فایل و شماره خط مربوط به هر نشانی را در خروجی استاندارد چاپ می‌کند. در این حالت، می‌توان از \fBaddr2line\fR در یک لوله (pipe) برای تبدیل نشانی‌های پویا استفاده کرد. .PP قالب خروجی به صورت \fBFILENAME:LINENO\fR است. به طور پیش‌فرض هر نشانی ورودی یک خط در خروجی تولید می‌کند. .PP دو گزینه می‌توانند خطوط اضافی پیش از هر خط \&\fBFILENAME:LINENO\fR (به همان ترتیب) ایجاد کنند. .PP اگر از گزینهٔ \fB\-a\fR استفاده شود، خطی شامل نشانی ورودی نمایش داده می‌شود. .PP اگر از گزینهٔ \fB\-f\fR استفاده شود، خطی شامل \&\fBFUNCTIONNAME\fR نمایش داده می‌شود. این مقدار، نام تابعی است که نشانی را در بر دارد. .PP یک گزینه می‌تواند خطوط اضافی را پس از خط \&\fBFILENAME:LINENO\fR ایجاد کند. .PP اگر از گزینهٔ \fB\-i\fR استفاده شود و کد موجود در نشانی داده‌شده به دلیل درون‌ریزی (inlining) توسط کامپایلر در آنجا قرار گرفته باشد، خطوط اضافی در ادامه نمایش داده می‌شوند. برای هر تابع درون‌ریزی‌شده، یک یا دو خط اضافی (در صورت استفاده از گزینهٔ \&\fB\-f\fR) نمایش داده می‌شود. .PP در غیراین‌صورت، اگر از گزینهٔ \fB\-p\fR استفاده شود، هر نشانی ورودی یک خط خروجی منفرد و طولانی شامل نشانی، نام تابع، نام فایل و شماره خط تولید می‌کند. اگر گزینهٔ \&\fB\-i\fR نیز استفاده شده باشد، تمام توابع درون‌ریزی‌شده به همین شکل اما در خطوط جداگانه و با پیشوند متن \fB(inlined by)\fR نمایش داده می‌شوند. .PP اگر نام فایل یا نام تابع قابل تشخیص نباشد، \&\fBaddr2line\fR به جای آن‌ها دو علامت سؤال چاپ خواهد کرد. اگر شماره خط قابل تشخیص نباشد، \fBaddr2line\fR عدد 0 را چاپ می‌کند. .PP هنگامی که از نماد+آفست استفاده می‌شود، بخش +offset اختیاری است، مگر در حالتی که نماد با یک عدد هگزادسیمال مبهم باشد. نمادهای برطرف‌شده می‌توانند درهم‌ریخته (mangled) یا رمزگشایی‌شده (unmangled) باشند، به جز نمادهای رمزگشایی‌شده با + که مجاز نیستند. .SH "گزینه‌ها (OPTIONS)" .IX Header "OPTIONS" فرم‌های کوتاه و بلند گزینه‌ها که در اینجا به عنوان جایگزین نشان داده شده‌اند، معادل یکدیگرند. .IP \fB\-a\fR 4 .IX Item "-a" .PD 0 .IP \fB\-\-addresses\fR 4 .IX Item "--addresses" .PD نمایش نشانی پیش از نام تابع، نام فایل و اطلاعات شماره خط. نشانی با پیشوند \fB0x\fR چاپ می‌شود تا به سادگی قابل شناسایی باشد. .IP "\fB\-b\fR \fIbfdname\fR" 4 .IX Item "-b bfdname" .PD 0 .IP \fB\-\-target=\fR\fIbfdname\fR 4 .IX Item "--target=bfdname" .PD قالب کد شیء (object-code format) را برای فایل‌های شیء برابر با \&\fIbfdname\fR مشخص می‌کند. .IP \fB\-C\fR 4 .IX Item "-C" .PD 0 .IP \fB\-\-demangle[=\fR\fIstyle\fR\fB]\fR 4 .IX Item "--demangle[=style]" .PD رمزگشایی (\fIdemangle\fR) نام‌های نماد سطح پایین به نام‌های سطح کاربر. این گزینه علاوه بر حذف هرگونه زیرخط (underscore) ابتدایی اضافه‌شده توسط سیستم، نام توابع ++C را خوانا می‌کند. کامپایلرهای مختلف شیوه‌های درهم‌ریزی (mangling) گوناگونی دارند. آرگومان اختیاری شیوهٔ رمزگشایی می‌تواند برای انتخاب شیوهٔ مناسب برای کامپایلر شما استفاده شود. .IP "\fB\-e\fR \fIfilename\fR" 4 .IX Item "-e filename" .PD 0 .IP \fB\-\-exe=\fR\fIfilename\fR 4 .IX Item "--exe=filename" .PD نام فایل اجرایی که نشانی‌های آن باید ترجمه شوند را مشخص می‌کند. فایل پیش‌فرض \fIa.out\fR است. .IP \fB\-f\fR 4 .IX Item "-f" .PD 0 .IP \fB\-\-functions\fR 4 .IX Item "--functions" .PD نمایش نام توابع همراه با اطلاعات فایل و شماره خط. .IP \fB\-s\fR 4 .IX Item "-s" .PD 0 .IP \fB\-\-basenames\fR 4 .IX Item "--basenames" .PD تنها بخش پایه‌ای هر نام فایل (بدون مسیر دایرکتوری) را نمایش می‌دهد. .IP \fB\-i\fR 4 .IX Item "-i" .PD 0 .IP \fB\-\-inlines\fR 4 .IX Item "--inlines" .PD اگر نشانی متعلق به تابعی باشد که درون‌ریزی (inlined) شده است، اطلاعات مبدأ برای تمام دامنه‌های دربرگیرنده تا نخستین تابع غیردرون‌ریزی‌شده نیز چاپ می‌شود. برای مثال، اگر \f(CW\*(C`main\*(C'\fR تابع \&\f(CW\*(C`callee1\*(C'\fR و آن هم تابع \f(CW\*(C`callee2\*(C'\fR را درون‌ریزی کند و نشانی متعلق به \&\f(CW\*(C`callee2\*(C'\fR باشد، اطلاعات منبع برای \f(CW\*(C`callee1\*(C'\fR و \f(CW\*(C`main\*(C'\fR نیز چاپ خواهد شد. .IP \fB\-j\fR 4 .IX Item "-j" .PD 0 .IP \fB\-\-section\fR 4 .IX Item "--section" .PD خواندن آفست‌ها به صورت نسبی در مقایسه با بخش (section) مشخص‌شده به جای استفاده از نشانی‌های مطلق. .IP \fB\-p\fR 4 .IX Item "-p" .PD 0 .IP \fB\-\-pretty\-print\fR 4 .IX Item "--pretty-print" .PD خواناتر کردن خروجی برای انسان: هر موقعیت در یک خط جداگانه چاپ می‌شود. اگر گزینهٔ \fB\-i\fR تعیین شده باشد، خطوط مربوط به تمام دامنه‌های دربرگیرنده با پیشوند \fB(inlined by)\fR مشخص می‌شوند. .IP \fB\-r\fR 4 .IX Item "-r" .PD 0 .IP \fB\-R\fR 4 .IX Item "-R" .IP \fB\-\-recurse\-limit\fR 4 .IX Item "--recurse-limit" .IP \fB\-\-no\-recurse\-limit\fR 4 .IX Item "--no-recurse-limit" .IP \fB\-\-recursion\-limit\fR 4 .IX Item "--recursion-limit" .IP \fB\-\-no\-recursion\-limit\fR 4 .IX Item "--no-recursion-limit" .PD محدودیت میزان بازگشت (recursion) انجام‌شده هنگام رمزگشایی رشته‌ها را فعال یا غیرفعال می‌کند. از آنجا که قالب‌های درهم‌ریزی نام، امکان سطح نامحدودی از بازگشت را می‌دهند، ممکن است رشته‌هایی تولید شوند که رمزگشایی آن‌ها تمام فضای پشته (stack) موجود در ماشین میزبان را مصرف کرده و موجب خطای حافظه شود. این محدودیت با تحدید بازگشت به ۲۰۴۸ سطح تودرتو سعی می‌کند از رخ دادن این مسئله جلوگیری کند. .Sp حالت پیش‌فرض فعال بودن این محدودیت است، اما برای رمزگشایی نام‌های بسیار پیچیده ممکن است غیرفعال کردن آن ضروری باشد. توجه داشته باشید در صورتی که محدودیت بازگشت غیرفعال شود، احتمال سرریز پشته وجود دارد و هرگونه گزارش باگ مرتبط با چنین رویدادی رد خواهد شد. .Sp گزینهٔ \fB\-r\fR مترادفی برای گزینهٔ \&\fB\-\-no\-recurse\-limit\fR است. گزینهٔ \fB\-R\fR مترادفی برای گزینهٔ \fB\-\-recurse\-limit\fR است. .Sp توجه داشته باشید که این گزینه تنها در صورتی کارساز است که گزینهٔ \fB\-C\fR یا \&\fB\-\-demangle\fR فعال شده باشد. .IP \fB@\fR\fIfile\fR 4 .IX Item "@file" گزینه‌های خط فرمان را از \fIfile\fR می‌خواند. گزینه‌های خوانده‌شده به جای گزینهٔ اصلی @\fIfile\fR قرار می‌گیرند. اگر \fIfile\fR وجود نداشته باشد یا قابل خواندن نباشد، با گزینه به عنوان یک متن ساده رفتار شده و حذف نخواهد شد. .Sp گزینه‌ها در \fIfile\fR با نویسه‌های فاصله‌ساز (whitespace) از یکدیگر جدا می‌شوند. یک نویسهٔ فاصله می‌تواند با قرار دادن کل گزینه درون علامت نقل‌قول تکی یا دوتایی در گزینه گنجانده شود. هر نویسه‌ای (از جمله بک‌اسلش) می‌تواند با افزودن یک بک‌اسلش پیش از آن وارد شود. خود \fIfile\fR نیز می‌تواند حاوی گزینه‌های @\fIfile\fR دیگری باشد؛ با چنین گزینه‌هایی به صورت بازگشتی رفتار خواهد شد. .SH "همچنین ببینید (SEE ALSO)" .IX Header "SEE ALSO" مدخل‌های Info برای \fIbinutils\fR. .SH "کپی‌رایت و تکثیر (COPYRIGHT)" .IX Header "COPYRIGHT" حق نشر (c) ۱۹۹۱\-۲۰۲۵ Free Software Foundation, Inc. .PP اجازه‌نامه کپی، توزیع و/یا ویرایش این سند تحت شرایط «مجوز مستندات آزاد گنو» (GNU Free Documentation License)، نسخه ۱.۳ یا هر نسخهٔ بعدی منتشر شده توسط بنیاد نرم‌افزارهای آزاد صادر شده است؛ بدون بخش‌های تغییرناپذیر، بدون متون روی جلد و بدون متون پشت جلد. یک نسخه از این مجوز در بخش موسوم به «GNU Free Documentation License» گنجانده شده است.