.\" -*- 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) نام‌های نماد سطح پایین به نام‌های سطح کاربر. این کار علاوه بر حذف هرگونه زیرخط اولیه که توسط سیستم اضافه شده، نام توابع ++C را خوانا می‌کند. کامپایلرهای مختلف شیوه‌های درهم‌ریزی متفاوتی دارند. آرگومان اختیاری شیوهٔ رمزگشایی می‌تواند برای انتخاب سبک مناسب برای کامپایلر شما استفاده شود. .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" Copyright (c) 1991\-2025 Free Software Foundation, Inc. .PP مجوز کپی، توزیع و/یا تغییر این سند تحت شرایط مجوز مستندات آزاد گنو (GNU Free Documentation License)، نسخهٔ ۱.۳ یا هر نسخهٔ بالاتر منتشر شده توسط بنیاد نرم‌افزارهای آزاد (Free Software Foundation)؛ بدون بخش‌های تغییرناپذیر، بدون متون روی جلد، و بدون متون پشت جلد اعطا می‌شود. یک نسخه از این مجوز در بخشی با عنوان «GNU Free Documentation License» قرار دارد.