FIND-DEBUGINFO(1) دستورهای کاربری FIND-DEBUGINFO(1)

find-debuginfo - استخراج اطلاعات دیباگ از فایلهای باینری ELF

find-debuginfo [گزینهها] [پوشه_ساخت]

استخراج اطلاعات دیباگ از فایلهای اجرایی ELF و کتابخانهها به فایلهای .debug مجزا.

[--strict-build-id] [-g] [-r] [-m] [-i] [-n]
[--keep-section SECTION] [--remove-section SECTION]
[--g-libs]
[-j N] [--jobs N]
[-o debugfiles.list]
[-S debugsourcefiles.list]
[--run-dwz] [--dwz-low-mem-die-limit N]
[--dwz-max-die-limit N]
[--dwz-single-file-mode]
[--build-id-seed SEED]
[--unique-debug-suffix SUFFIX]
[--unique-debug-src-base BASE]
[[-l filelist]... [-p 'pattern'] -o debuginfo.list]
[پوشه_ساخت]

فلگ -g مشخص می‌کند که به جای حذف کامل نمادها (full strip)، از strip -g روی اشیاء اشتراکی پویا (DSOs) یا فایلهای اجرایی (EXEs) استفاده شود. فلگ --g-libs مشخص می‌کند که strip -g به جای حذف کامل، تنها روی اشیاء اشتراکی پویا (DSOs) اعمال شود. گزینه‌های -g و --g-libs ناسازگار با یکدیگر هستند.

فلگ -r مشخص می‌کند که از eu-strip --reloc-debug-sections استفاده شود.

از --keep-section SECTION یا --remove-section SECTION برای نگه‌داشتن صریح یک بخش (تخصیص‌نیافته) در فایل اجرایی اصلی یا حذف صریح آن و انتقال به فایل .debug استفاده کنید. SECTION یک الگوی تطبیق با نویسه‌های عمومی گسترده (wildcard) است. هر دو گزینه می‌توانند بیش از یک بار مشخص شوند.

فلگ --strict-build-id مشخص می‌کند که اگر هر باینری ELF پردازش‌شده فاقد یادداشت build-id باشد، برنامه با وضعیت شکست (خطا) خارج شود.

فلگ -m مشخص می‌کند که بخش .gnu_debugdata در فایل باینری اصلی گنجانده شود.

فلگ -i مشخص می‌کند که بخش .gdb_index در فایل .debug گنجانده شود.

فلگ -n مشخص می‌کند که شناسه ساخت (build-id) دوباره محاسبه نشود.

گزینه -j، --jobs N تعداد N پردازش موازی را برای انجام همزمان استخراج اطلاعات دیباگ اجرا می‌کند.

یک سوییچ -o منفرد پیش از هرگونه سوییچ -l یا -p تنها نام فایل خروجی اصلی را از debugfiles.list به نام دیگری تغییر می‌دهد. یک سوییچ -o که پس از یک سوییچ -p یا چند سوییچ -l بیاید، یک فایل خروجی اضافی شامل اطلاعات دیباگ برای فایلهای فهرست‌شده در فایل -l filelist یا فایلهایی که نام آن‌ها با الگوی -p تطبیق دارد، تولید می‌کند. آرگومان -p یک عبارت باقاعده (regex) به سبک grep -E برای تطبیق نام فایل است و نباید شامل لنگرها (^ یا $) باشد.

فلگ --run-dwz به find-debuginfo دستور می‌دهد که در صورت در دسترس بودن، ابزار dwz را اجرا کند؛ و گزینه‌های --dwz-low-mem-die-limit و --dwz-max-die-limit محدودیت‌های تفصیلی را تعیین می‌کنند. برای جزئیات بیشتر به گزینه‌های -l و -L در dwz(1) مراجعه کنید. برای غیرفعال کردن حالت چندفایلی از --dwz-single-file-mode استفاده کنید؛ برای اطلاعات بیشتر dwz(1) گزینه -m را ببینید.

اگر --build-id-seed SEED مشخص شود، ابزار debugedit فراخوانی می‌شود تا شناسه‌های ساخت (build-ids) یافته‌شده را به‌روز کند و از SEED به عنوان بذر (seed) برای محاسبه مجدد هش شناسه ساخت استفاده نماید. این کار تضمین می‌کند که شناسه‌های ساخت در فایلهای ELF بین نگارش‌ها و انتشار‌های مختلف یک بسته یکتا باشند. (از --build-id-seed %{VERSION}-%{RELEASE} استفاده کنید).

اگر --unique-debug-suffix SUFFIX مشخص شود، فایلهای دیباگ ایجادشده برای <FILE> به نام <FILE>-<SUFFIX>.debug خوانده خواهند شد. این کار تضمین می‌کند که فایلهای .debug بین نسخه بسته، انتشار و معماری یکتا باشند. (از --unique-debug-suffix -%{VERSION}-%{RELEASE}.%{_arch} استفاده کنید).

اگر --unique-debug-src-base BASE مشخص شود، پوشه منبع (source directory) به نام /usr/debug/src/<BASE> نامیده خواهد شد. این کار تضمین می‌کند که پوشه‌های سورس دیباگ بین نسخه بسته، انتشار و معماری یکتا باشند (از --unique-debug-src-base %{name}-%{VERSION}-%{RELEASE}.%{_arch} استفاده کنید).

تمامی نام‌های فایل در سوییچ‌ها نسبت به پوشه_ساخت (در صورت مشخص نشدن، '.') در نظر گرفته می‌شوند.

debugedit(1), dwz(1), strip(1), eu-strip(1), elf(5)

سپتامبر ۲۰۲۲ debugedit