.\" -*- 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-07-30 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)" arm-none-eabi-addr2line, 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 or 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 تعیین قالب کد شیء برای پرونده‌های شیء به عنوان \&\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) متفاوتی دارند. آرگومان اختیاری سبک رمزگشایی می‌تواند برای انتخاب شیوه مناسب برای کامپایلر شما استفاده شود. .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 نمایش تنها نام پایه (base) هر پرونده. .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 خواندن آفست‌ها به صورت نسبی نسبت به بخش تعیین‌شده به جای نشانی‌های مطلق. .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) هنگام رمزگشایی (demangling) رشته‌ها. از آنجا که قالب‌های تبدیل نام اجازه سطح نامحدودی از بازگشت را می‌دهند، ممکن است رشته‌هایی ایجاد شوند که رمزگشایی آن‌ها تمام فضای پشته (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 با نویسه‌های فاصله سفید جدا می‌شوند. نویسه فاصله سفید را می‌توان با قرار دادن کل گزینه در علامت نقل‌قول تکی یا دوتایی درون یک گزینه گنجاند. هر نویسه‌ای (از جمله بک‌اسلش) را می‌توان با افزودن بک‌اسلش قبل از آن درج کرد. پرونده \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» گنجانده شده است.