.\" -*- 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 نشانی‌ها یا ترکیب symbol+offset را به نام فایل‌ها و شماره خط‌ها ترجمه می‌کند. این ابزار با دریافت یک نشانی یا symbol+offset در یک فایل اجرایی، یا یک آفست (offset) در بخشی از یک شیء قابل بازنشانی (relocatable object)، از اطلاعات اشکال‌زدایی (debugging information) استفاده می‌کند تا مشخص نماید کدام نام فایل و شماره خط با آن مرتبط است. .PP فایل اجرایی یا شیء قابل بازنشانی با استفاده از گزینهٔ \fB\-e\fR مشخص می‌شود. پیش‌فرض، فایل \fIa.out\fR است. بخشی از شیء قابل بازنشانی که باید استفاده شود با گزینهٔ \fB\-j\fR تعیین می‌گردد. .PP دستور \&\fBaddr2line\fR دو حالت کاری دارد: .PP در حالت نخست، نشانی‌های هگزادسیمال یا symbol+offset در خط فرمان مشخص می‌شوند و \fBaddr2line\fR نام فایل و شماره خط را برای هر نشانی نمایش می‌دهد. .PP در حالت دوم، \fBaddr2line\fR نشانی‌های هگزادسیمال یا symbol+offset را از ورودی استاندارد می‌خواند و نام فایل و شماره خط را برای هر نشانی در خروجی استاندارد چاپ می‌کند. در این حالت، می‌توان از \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) باشند، با این استثنا که نمادهای ناهم‌ریخته همراه با + مجاز نیستند. .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++ را خوانا می‌سازد. کامپایلرهای مختلف سبک‌های درهم‌ریزی متفاوتی دارند. از آرگومان اختیاری سبک کدگشایی می‌توان برای انتخاب سبک متناسب با کامپایلر خود استفاده کرد. .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 با نویسه‌های فاصله از هم جدا می‌شوند. یک نویسهٔ فاصله می‌تواند با محصور کردن کل گزینه در علامت‌های نقل‌قول تکی یا دوگانه درون آن قرار گیرد. هر نویسه‌ای (از جمله بک‌اسلش) می‌تواند با قرار دادن یک پیشوند بک‌اسلش قبل از آن درج شود. فایل \fIfile\fR می‌تواند خود شامل گزینه‌های @\fIfile\fR دیگری باشد؛ چنین گزینه‌هایی به‌صورت بازگشتی پردازش خواهند شد. .SH "همچنین ببینید (SEE ALSO)" .IX Header "SEE ALSO" مدخل‌های Info برای \fIbinutils\fR. .SH "کپی‌رایت و تکثیر (COPYRIGHT)" .IX Header "COPYRIGHT" حق نشر (c) 1991\-2025 متعلق به بنیاد نرم‌افزارهای آزاد (Free Software Foundation, Inc.) است. .PP اجازه کپی، توزیع و/یا تغییر این سند تحت شرایط مجوز مستندات آزاد گنو (GNU Free Documentation License)، نسخهٔ ۱.۳ یا هر نسخهٔ متأخرتر منتشرشده توسط بنیاد نرم‌افزارهای آزاد داده می‌شود؛ بدون بخش‌های تغییرناپذیر، بدون متون روی جلد و بدون متون پشت جلد. نسخه‌ای از این مجوز در بخشی با عنوان «GNU Free Documentation License» گنجانده شده است.