.\" -*- 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-03 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 در حالت نخست، آدرس‌های مبنای شانزده (hexadecimal) یا نماد+آفست در خط فرمان مشخص می‌شوند و \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 هنگام استفاده از symbol+offset، بخش +offset اختیاری است؛ مگر زمانی که نماد با یک عدد مبنای شانزده دچار ابهام باشد. نمادهای شناسایی‌شده می‌توانند به‌صورت mangled یا unmangled باشند، با این استثنا که نمادهای 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) نام نمادهای سطح پایین به نام‌های سطح کاربر. این قابلیت علاوه بر حذف هرگونه زیرخط ابتدایی اضافه‌شده توسط سیستم، نام توابع ++C را خوانا می‌کند. کامپایلرهای مختلف شیوه‌های متفاوتی برای mangling دارند. آرگومان اختیاری سبکِ بازگردانی (demangling style) می‌تواند برای انتخاب روش مناسب با کامپایلر شما به کار رود. .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) انجام‌شده هنگام demangle کردن رشته‌ها. از آنجا که قالب‌های mangling نام اجازهٔ سطوح نامحدود بازگشت را می‌دهند، ممکن است رشته‌هایی تولید شوند که رمزگشایی آن‌ها تمام فضای پشتهٔ (stack) موجود در ماشین میزبان را مصرف کند و منجر به خطای حافظه شود. این محدودیت تلاش می‌کند با محدود کردن بازگشت به ۲۰۴۸ سطح تو در تو، از بروز چنین مشکلی جلوگیری کند. .Sp حالت پیش‌فرض بر فعال بودن این محدودیت است، اما ممکن است غیرفعال کردن آن برای demangle کردن نام‌های واقعاً پیچیده ضروری باشد. با این حال توجه داشته باشید که در صورت غیرفعال بودن این محدودیت، احتمال سرریز و اتمام پشته وجود دارد و هرگونه گزارش باگ مربوط به چنین رخدادی رد خواهد شد. .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 با نویسه‌های فاصله خالی از هم جدا می‌شوند. برای گنجاندن یک نویسهٔ فاصله در یک گزینه، می‌توان کل گزینه را درون گیومهٔ تکی یا دوتایی قرار داد. هر نویسه‌ای (از جمله بک‌اسلش) می‌تواند با قرار دادن یک بک‌اسلش پیش از آن لحاظ شود. فایل \fIfile\fR خود می‌تواند شامل گزینه‌های @\fIfile\fR بیشتری باشد؛ تمامی این گزینه‌ها به‌صورت بازگشتی پردازش خواهند شد. .SH "همچنین ببینید (SEE ALSO)" .IX Header "SEE ALSO" مدخل‌های Info برای \fIbinutils\fR. .SH "کپی‌رایت و تکثیر (COPYRIGHT)" .IX Header "COPYRIGHT" Copyright (c) 1991\-2026 Free Software Foundation, Inc. .PP مجوز کپی، توزیع و/یا تغییر این سند تحت شرایط مجوز مستندات آزاد گنو (GNU Free Documentation License)، نسخهٔ ۱.۳ یا هر نسخهٔ متأخر دیگری که توسط بنیاد نرم‌افزارهای آزاد منتشر شده است، اعطا می‌شود؛ بدون بخش‌های تغییرناپذیر، بدون متون روی جلد، و بدون متون پشت جلد. نسخه‌ای از این مجوز در بخش تحت عنوان «GNU Free Documentation License» گنجانده شده است.