EU-STACKPROF(1) General Commands Manual EU-STACKPROF(1)

eu-stackprof - پروفایلینگ پشته پشتهای و ردیابی ردپای اجرای برنامهها

eu-stackprof [-v|-vv|...] [--gmon] [-o DEST] [OPTION]... [-- CMD...]

eu-stackprof داده‌های پروفایلینگ پشته را از perf_events لینوکس جمع‌آوری می‌کند، چه در سراسر سیستم در میان تمامی فرایندها یا به‌صورت هدفمند برای یک فرایند خاص (یک PID موجود از طریق -p یا فرایند تازه‌راه‌اندازی‌شده از طریق آرگومان‌های خط فرمان ارائه‌شده) و تمام فرایندهای فرزندی که از آن مشتق می‌شوند. برای دسترسی به رابط perf_events، چه به‌صورت سراسری و چه برای یک فرایند هدفمند خاص، مجوزهای مناسب مورد نیاز است؛ برای خلاصه‌ای از نیازمندی‌های مجوز به بخش «Arguments» در perf_event_open(2) مراجعه کنید.

هنگامی که از گزینه --gmon استفاده می‌شود، نتایج در قالب پرونده‌های gmon.out با فرمت gprof(1) ذخیره می‌شوند. این پرونده‌ها برای جمع‌آوری آمار با profiledb کاربرد دارند.

هنگامی که از گزینه --gmon استفاده نمی‌شود، eu-stackprof آمار پایه درباره داده‌های پروفایلینگ را جمع‌آوری کرده و در خطای استاندارد چاپ می‌کند.

پیکربندی نمونه‌برداری perf_events بر اساس مشخصات رویداد libpfm ارائه‌شده (برای نمونه perf::CPU-CLOCK:freq=1000).
فهرست کردن رویدادهای موجود libpfm و خروج.
اگر پوشه خروجی برای --gmon از قبل حاوی پرونده‌هایی باشد که با build-idهای مشاهده‌شده شناسایی می‌شوند، آن‌ها را با داده‌های تازه جمع‌آوری‌شده بازنویسی می‌کند.
خروجی دادن هیستوگرام‌های شمارنده برنامه و نمودارهای فراخوانی برای هر شیء اجرایی باینری مشاهده‌شده در طول پروفایلینگ در قالب gmon.out متعلق به gprof(1).
تعیین روش مورد استفاده برای تقسیم فضای آدرس به هیستوگرام‌ها برای خروجی --gmon. مقدار METHOD باید یکی از موارد زیر باشد:
تقسیم نکردن: نوشتن یک هیستوگرام که کل محدوده آدرس را پوشش می‌دهد.
تقسیم فضای آدرس به هیستوگرام‌هایی با اندازه برابر جهت برآورده کردن بررسی سازگاری مقیاس در gprof(1).
تقسیم فضای آدرس به هیستوگرام‌هایی با اندازه متغیر برای به حداقل رساندن نیازهای ذخیره‌سازی؛ نتیجه به احتمال زیاد توسط ابزار gprof(1) که نیازمند مقیاس یکدست برای تمام هیستوگرام‌ها است رد خواهد شد، اما همچنان برای profiledb مناسب خواهد بود.
-?, --help
چاپ فهرست کوتاهی از گزینه‌ها.
حد بالایی بر روی تعداد فریم‌هایی که برای هر نمونه پشته ردگیری و بازگشایی می‌شوند. در صورت فعال بودن --gmon مقدار پیشفرض 1 است، زیرا فریم‌های بیشتر فراتر از فریم نخست برای تولید هیستوگرام gprof و داده‌های یال نمودار فراخوانی نیاز نیستند؛ در غیر این صورت مقدار پیشفرض 256 است.
پوشه‌ای که هنگام فعال بودن خروجی --gmon نتایج در آن نوشته می‌شوند. پیشفرض، دایرکتوری جاری است.
محدود کردن پروفایلینگ به فرایند PID و فرزندان آتی آن.
خروجی دادن اطلاعات بیشتر. می‌تواند یک یا چند بار برای افزایش سطح جزئیات مشخص شود، با ثبت هر باینری جدید، هر نمونه پشته، یا هر فریم.
چاپ نسخه برنامه.

هنگامی که خروجی --gmon فعال باشد، eu-stackprof پرونده‌های زیر را برای هر شیء اجرایی مشاهده‌شده در میان فرایندهای پروفایل‌شده، که با build-id شناسایی می‌شوند، تولید می‌کند:

پیوند نمادین (symlink) به شیء اجرایی مشاهده‌شده توسط ابزار پروفایلینگ.

شامل یک هیستوگرام از شمارنده‌های برنامه و یک جدول از یال‌های نمودار فراخوانی (مشاهده‌شده از ۲ فریم بالایی ردگیری پشته). با همان قالبی که توسط زیرساخت gprof تولید شده و توسط gprof(1) خوانده می‌شود.

متاداده در قالب JSON، شامل مسیر شیء اجرایی و اطلاعات رویداد libpfm.

پروفایلینگ در سراسر سیستم؛ نوشتن پرونده‌های gmon.out در پوشه جاری:

sudo eu-stackprof --gmon

پروفایلینگ PID 1211 و فرزندان منشعب‌شده از آن؛ ثبت یک خط به ازای هر نمونه پشته؛ نوشتن پرونده‌های gmon.out در پوشه results/ و جایگزینی پرونده‌های موجود با همان build-id:

sudo eu-stackprof -vv --gmon -o results/ -p 1211 --force

به همین ترتیب، اجرای vim و پروفایلینگ آن:

sudo eu-stackprof --gmon -o results/ --force -- vim test.txt

پروفایلینگ در سراسر سیستم؛ ثبت یک خط به ازای هر فریم پشته:

sudo eu-stackprof -vvv

گزارش اشکالات به <elfutils-devel@sourceware.org> یا https://sourceware.org/bugzilla.

gprof(1), perf_event_open(2)

2026-Apr-10 elfutils