.\" -*- 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-08-26 binutils-2.47 "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 نشانی‌ها یا نماد+آفست (symbol+offset) را به نام فایل‌ها و شماره خط‌ها تبدیل می‌کند. با دریافت یک نشانی یا نماد+آفست در یک فایل اجرایی یا یک آفست در بخشی از یک شیء بازتخصیص‌پذیر (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) برای فایل‌های شیء، \&\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) موجود در ماشین میزبان را مصرف کند و خطای حافظه (memory fault) رخ دهد. این محدودیت سعی می‌کند با محدود کردن بازگشت به ۲۰۴۸ سطح تودرتو، از وقوع این مشکل جلوگیری کند. .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" کپی‌رایت \(co 1991\-2026 Free Software Foundation, Inc. .PP اجازهٔ کپی، توزیع و/یا تغییر این سند تحت شرایط مجوز مستندات آزاد گنو (GNU Free Documentation License)، نسخهٔ 1.3 یا هر نسخهٔ متأخرتر منتشرشده توسط بنیاد نرم‌افزارهای آزاد اعطا می‌شود؛ بدون بخش‌های تغییرناپذیر، بدون متون روی جلد، و بدون متون پشت جلد. نسخه‌ای از این مجوز در بخشی با عنوان «GNU Free Documentation License» قرار داده شده است.