'\" t .\" Title: TRACE-CMD.DAT.v6 .\" Author: [بخش "نویسنده" را ببینید] .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 03/09/2026 .\" Manual: libtracefs Manual .\" Source: libtracefs .\" Language: Persian .\" .TH "TRACE\-CMD\&.DAT\&.V" "5" "03/09/2026" "libtracefs" "راهنمای libtracefs" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" http://bugs.debian.org/507673 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) .ad l .\" ----------------------------------------------------------------- .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH "نام (NAME)" trace-cmd.dat.v6 \- قالب فایل نسخه ۶ ابزار trace\-cmd .SH "خلاصه دستور (SYNOPSIS)" .sp \fBtrace\-cmd\&.dat\fR ignore .SH "توضیحات (DESCRIPTION)" .sp ابزار trace\-cmd(1) یک فایل «trace\&.dat» تولید می‌کند\&. این فایل بسته به اینکه کاربر نام خروجی متفاوتی را مشخص کند می‌تواند هر نام دیگری نیز داشته باشد، اما باید دارای قالب باینری مشخصی باشد\&. این فایل توسط trace\-cmd برای ذخیره ردگیری‌های هسته در آن و امکان استخراج ردگیری در زمانی دیگر مورد استفاده قرار می‌گیرد (نگاه کنید به \fBtrace\-cmd\-report(1)\fR)\&. .SH "قالب اولیه (INITIAL FORMAT)" .sp .if n \{\ .RS 4 .\} .nf سه بایت نخست شامل مقدار جادویی زیر هستند: .fi .if n \{\ .RE .\} .sp .if n \{\ .RS 4 .\} .nf 0x17 0x08 0x44 .fi .if n \{\ .RE .\} .sp .if n \{\ .RS 4 .\} .nf ۷ بایت بعدی شامل نویسه‌های زیر هستند: .fi .if n \{\ .RE .\} .sp .if n \{\ .RS 4 .\} .nf "tracing" .fi .if n \{\ .RE .\} .sp .if n \{\ .RS 4 .\} .nf مجموعه بعدی نویسه‌ها شامل یک رشته پایان‌یافته با تهی (\*(Aq\e0\*(Aq) است که نسخه فایل را در بر دارد: .fi .if n \{\ .RE .\} .sp .if n \{\ .RS 4 .\} .nf "6\e0" .fi .if n \{\ .RE .\} .sp .if n \{\ .RS 4 .\} .nf ۱ بایت بعدی شامل پرچم‌های ترتیب بایت (endianness) فایل است: .fi .if n \{\ .RE .\} .sp .if n \{\ .RS 4 .\} .nf 0 = little endian 1 = big endian .fi .if n \{\ .RE .\} .sp .if n \{\ .RS 4 .\} .nf بایت بعدی شامل تعداد بایت‌ها برای هر مقدار "long" است: .fi .if n \{\ .RE .\} .sp .if n \{\ .RS 4 .\} .nf 4 \- 32\-bit long values 8 \- 64\-bit long values .fi .if n \{\ .RE .\} .sp .if n \{\ .RS 4 .\} .nf نکته: این اندازه نوع long در فضای کاربری سیستم هدف است، نه اندازه در فضای هسته\&. .fi .if n \{\ .RE .\} .sp .if n \{\ .RS 4 .\} .nf [ اکنون تمام اعداد بر اساس ترتیب بایت تعریف‌شده در فایل نوشته می‌شوند\&. ] .fi .if n \{\ .RE .\} .sp .if n \{\ .RS 4 .\} .nf ۴ بایت بعدی یک کلمه ۳۲ بیتی هستند که اندازه صفحه حافظه ماشین هدف ردیابی‌شده را تعیین می‌کنند\&. .fi .if n \{\ .RE .\} .SH "قالب اطلاعات سرآیند (HEADER INFO FORMAT)" .sp .if n \{\ .RS 4 .\} .nf بلافاصله پس از قالب اولیه، اطلاعات مربوط به سرآیندهای ردگیری ثبت‌شده از سیستم هدف قرار می‌گیرد\&. .fi .if n \{\ .RE .\} .sp .if n \{\ .RS 4 .\} .nf ۱۲ بایت بعدی شامل رشته زیر است: .fi .if n \{\ .RE .\} .sp .if n \{\ .RS 4 .\} .nf "header_page\e0" .fi .if n \{\ .RE .\} .sp .if n \{\ .RS 4 .\} .nf ۸ بایت بعدی یک کلمه ۶۴ بیتی شامل اندازه اطلاعات سرآیند صفحه است که در ادامه ذخیره شده است\&. .fi .if n \{\ .RE .\} .sp .if n \{\ .RS 4 .\} .nf مجموعه داده بعدی به اندازه خوانده‌شده از ۸ بایت قبلی است و شامل داده‌های بازیابی‌شده از debugfs/tracing/events/header_page می‌باشد\&. .fi .if n \{\ .RE .\} .sp .if n \{\ .RS 4 .\} .nf نکته: اندازه فیلد دوم \efBcommit\efR شامل اندازه نوع long در هسته هدف است\&. به عنوان مثال: .fi .if n \{\ .RE .\} .sp .if n \{\ .RS 4 .\} .nf field: local_t commit; offset:8; \efBsize:8;\efR signed:1; .fi .if n \{\ .RE .\} .sp .if n \{\ .RS 4 .\} .nf نشان می‌دهد که هسته دارای مقادیر ۶۴ بیتی برای long است\&. .fi .if n \{\ .RE .\} .sp .if n \{\ .RS 4 .\} .nf ۱۳ بایت بعدی شامل رشته زیر است: .fi .if n \{\ .RE .\} .sp .if n \{\ .RS 4 .\} .nf "header_event\e0" .fi .if n \{\ .RE .\} .sp .if n \{\ .RS 4 .\} .nf ۸ بایت بعدی یک کلمه ۶۴ بیتی شامل اندازه اطلاعات سرآیند رویداد است که در ادامه ذخیره شده است\&. .fi .if n \{\ .RE .\} .sp .if n \{\ .RS 4 .\} .nf مجموعه داده بعدی به اندازه خوانده‌شده از ۸ بایت قبلی است و شامل داده‌های بازیابی‌شده از debugfs/tracing/events/header_event می‌باشد\&. .fi .if n \{\ .RE .\} .sp .if n \{\ .RS 4 .\} .nf این داده‌ها به ابزار trace\-cmd امکان می‌دهند تشخیص دهد آیا قالب بافر حلقه‌ای (ring buffer) هسته تغییری کرده است یا خیر\&. .fi .if n \{\ .RE .\} .SH "قالب‌های رویداد اف‌تریس (FTRACE EVENT FORMATS)" .sp .if n \{\ .RS 4 .\} .nf بلافاصله پس از اطلاعات سرآیند، اطلاعات مربوط به رویدادهای خاص Ftrace قرار می‌گیرد\&. این‌ها رویدادهایی هستند که توسط پلاگین‌های Ftrace استفاده می‌شوند و از طریق ردیابی رویداد فعال نمی‌گردند\&. .fi .if n \{\ .RE .\} .sp .if n \{\ .RS 4 .\} .nf ۴ بایت بعدی شامل یک کلمه ۳۲ بیتی از تعداد فایل‌های قالب رویداد Ftrace است که در فایل ذخیره شده‌اند\&. .fi .if n \{\ .RE .\} .sp .if n \{\ .RS 4 .\} .nf به تعداد دفعاتی که توسط ۴ بایت قبلی تعیین شده، موارد زیر تکرار می‌شود: .fi .if n \{\ .RE .\} .sp .if n \{\ .RS 4 .\} .nf ۸ بایت برای اندازه فایل قالب رویداد Ftrace\&. .fi .if n \{\ .RE .\} .sp .if n \{\ .RS 4 .\} .nf فایل قالب رویداد Ftrace کپی‌شده از ماشین هدف: debugfs/tracing/events/ftrace//format .fi .if n \{\ .RE .\} .SH "قالب‌های رویداد (EVENT FORMATS)" .sp .if n \{\ .RS 4 .\} .nf بلافاصله پس از قالب‌های Ftrace، اطلاعات مربوط به چیدمان رویداد قرار می‌گیرد\&. .fi .if n \{\ .RE .\} .sp .if n \{\ .RS 4 .\} .nf ۴ بایت بعدی یک کلمه ۳۲ بیتی شامل تعداد سیستم‌های رویدادی (event systems) است که در فایل ذخیره شده‌اند\&. این‌ها دایرکتوری‌های موجود در debugfs/tracing/events به استثنای دایرکتوری \efBftrace\efR هستند\&. .fi .if n \{\ .RE .\} .sp .if n \{\ .RS 4 .\} .nf به تعداد دفعاتی که توسط ۴ بایت قبلی مشخص شده است، موارد زیر وجود دارد: .fi .if n \{\ .RE .\} .sp .if n \{\ .RS 4 .\} .nf یک رشته پایان‌یافته با null شامل نام سیستم\&. .fi .if n \{\ .RE .\} .sp .if n \{\ .RS 4 .\} .nf ۴ بایت شامل یک کلمه ۳۲ بیتی که تعداد رویدادهای موجود درون آن سیستم را مشخص می‌کند\&. .fi .if n \{\ .RE .\} .sp .if n \{\ .RS 4 .\} .nf به تعداد دفعاتی که در ۴ بایت قبلی تعیین شده است، موارد زیر وجود دارد: .fi .if n \{\ .RE .\} .sp .if n \{\ .RS 4 .\} .nf ۸ بایت برای اندازه فایل قالب رویداد\&. .fi .if n \{\ .RE .\} .sp .if n \{\ .RS 4 .\} .nf فایل قالب رویداد کپی‌شده از ماشین هدف: debugfs/tracing/events///format .fi .if n \{\ .RE .\} .SH "اطلاعات نمادهای هسته (KALLSYMS INFORMATION)" .sp .if n \{\ .RS 4 .\} .nf بلافاصله پس از قالب‌های رویداد، اطلاعات نگاشت آدرس‌های توابع به نام توابع قرار می‌گیرد\&. .fi .if n \{\ .RE .\} .sp .if n \{\ .RS 4 .\} .nf ۴ بایت بعدی یک کلمه ۳۲ بیتی شامل اندازه داده‌های حاوی نگاشت توابع است\&. .fi .if n \{\ .RE .\} .sp .if n \{\ .RS 4 .\} .nf مجموعه داده بعدی به اندازه مشخص‌شده توسط ۴ بایت قبلی است و شامل اطلاعات حاصل از فایل زیر در ماشین هدف می‌باشد: /proc/kallsyms .fi .if n \{\ .RE .\} .SH "اطلاعات TRACE_PRINTK (TRACE_PRINTK INFORMATION)" .sp .if n \{\ .RS 4 .\} .nf اگر توسعه‌دهنده‌ای از ()trace_printk در هسته استفاده کرده باشد، ممکن است رشته قالب در خارج از بافر حلقه‌ای ذخیره شود\&. این اطلاعات را می‌توان در این مسیر یافت: debugfs/tracing/printk_formats .fi .if n \{\ .RE .\} .sp .if n \{\ .RS 4 .\} .nf ۴ بایت بعدی یک کلمه ۳۲ بیتی شامل اندازه داده‌های حاوی قالب‌های printk است\&. .fi .if n \{\ .RE .\} .sp .if n \{\ .RS 4 .\} .nf مجموعه داده بعدی به اندازه مشخص‌شده توسط ۴ بایت قبلی است و شامل اطلاعات استخراج‌شده از debugfs/tracing/printk_formats می‌باشد\&. .fi .if n \{\ .RE .\} .SH "اطلاعات فرآیند (PROCESS INFORMATION)" .sp .if n \{\ .RS 4 .\} .nf بلافاصله پس از قالب‌های trace_printk، اطلاعات نگاشت شناسه فرآیند (PID) به نام فرآیند قرار می‌گیرد\&. .fi .if n \{\ .RE .\} .sp .if n \{\ .RS 4 .\} .nf ۸ بایت بعدی شامل یک کلمه ۶۴ بیتی است که اندازه داده‌های نگاشت PID به نام فرآیند را در خود نگه می‌دارد\&. .fi .if n \{\ .RE .\} .sp .if n \{\ .RS 4 .\} .nf مجموعه داده بعدی به اندازه مشخص‌شده توسط ۸ بایت قبلی است و شامل اطلاعات استخراج‌شده از debugfs/tracing/saved_cmdlines می‌باشد\&. .fi .if n \{\ .RE .\} .SH "باقی‌مانده سرآیند TRACE\-CMD (REST OF TRACE\-CMD HEADER)" .sp .if n \{\ .RS 4 .\} .nf بلافاصله پس از اطلاعات فرآیند، بخش پایانی سرآیند فایل trace\&.dat قرار می‌گیرد\&. .fi .if n \{\ .RE .\} .sp .if n \{\ .RS 4 .\} .nf ۴ بایت بعدی یک کلمه ۳۲ بیتی است که تعداد پردازنده‌های (CPU) شناسایی‌شده روی ماشین هدف را مشخص می‌کند (و دارای داده‌های ردگیری منطبق برای آن است)\&. .fi .if n \{\ .RE .\} .sp .if n \{\ .RS 4 .\} .nf ۱۰ بایت بعدی یکی از موارد زیر است: .fi .if n \{\ .RE .\} .sp .if n \{\ .RS 4 .\} .nf "options \e0" .fi .if n \{\ .RE .\} .sp .if n \{\ .RS 4 .\} .nf "latency \e0" .fi .if n \{\ .RE .\} .sp .if n \{\ .RS 4 .\} .nf "flyrecord\e0" .fi .if n \{\ .RE .\} .sp .if n \{\ .RS 4 .\} .nf اگر مقدار آن "options \e0" باشد، آنگاه: .fi .if n \{\ .RE .\} .sp .if n \{\ .RS 4 .\} .nf ۲ بایت بعدی یک کلمه ۱۶ بیتی است که گزینه فعلی را تعیین می‌کند\&. اگر این مقدار صفر باشد، دیگر گزینه‌ای وجود ندارد\&. .fi .if n \{\ .RE .\} .sp .if n \{\ .RS 4 .\} .nf در غیر این صورت، ۴ بایت بعدی شامل یک کلمه ۳۲ بیتی است که اندازه گزینه را مشخص می‌کند\&. اگر برنامه خواننده نداند چگونه با این گزینه کار کند، می‌تواند به سادگی از آن رد شود\&. در حال حاضر هیچ گزینه‌ای تعریف نشده است، اما این بخش برای گسترش داده‌ها در اینجا قرار دارد\&. .fi .if n \{\ .RE .\} .sp .if n \{\ .RS 4 .\} .nf گزینه بعدی بلافاصله پس از گزینه قبلی خواهد بود، و گزینه‌ها با مقدار صفر در فیلد نوع گزینه به پایان می‌رسند\&. .fi .if n \{\ .RE .\} .sp .if n \{\ .RS 4 .\} .nf ۱۰ بایت بعدی پس از گزینه‌ها، یکی از موارد زیر است: .fi .if n \{\ .RE .\} .sp .if n \{\ .RS 4 .\} .nf "latency \e0" .fi .if n \{\ .RE .\} .sp .if n \{\ .RS 4 .\} .nf "flyrecord\e0" .fi .if n \{\ .RE .\} .sp .if n \{\ .RS 4 .\} .nf که دقیقاً مانند وضعیتی ادامه می‌یابد که انگار گزینه‌ای وجود نداشته است\&. .fi .if n \{\ .RE .\} .sp .if n \{\ .RS 4 .\} .nf اگر مقدار "latency \e0" باشد، آنگاه بقیه فایل صرفاً متنی اسکی (ASCII) است که از این مسیر ماشین هدف گرفته شده است: debugfs/tracing/trace .fi .if n \{\ .RE .\} .sp .if n \{\ .RS 4 .\} .nf اگر مقدار "flyrecord\e0" باشد، موارد زیر وجود دارند: .fi .if n \{\ .RE .\} .sp .if n \{\ .RS 4 .\} .nf به تعداد پردازنده‌هایی که پیش‌تر خوانده شده‌اند، موارد زیر وجود دارد: .fi .if n \{\ .RE .\} .sp .if n \{\ .RS 4 .\} .nf ۸ بایت که یک کلمه ۶۴ بیتی هستند و آفست (offset) درون فایل را که داده‌های مربوط به آن CPU را نگه می‌دارد، مشخص می‌کنند\&. .fi .if n \{\ .RE .\} .sp .if n \{\ .RS 4 .\} .nf ۸ بایت که یک کلمه ۶۴ بیتی هستند و اندازه داده‌های CPU را در آن آفست مشخص می‌کنند\&. .fi .if n \{\ .RE .\} .SH "داده‌های پردازنده (CPU DATA)" .sp .if n \{\ .RS 4 .\} .nf داده‌های پردازنده (CPU) در بخشی از فایل قرار دارند که در انتهای سرآیند مشخص شده است\&. لایه فاصله‌گذاری (padding) بین سرآیند و داده‌های CPU قرار داده می‌شود تا داده‌های CPU در موقعیتی هم‌تراز با صفحه (صفحه هدف) در فایل قرار گیرند\&. .fi .if n \{\ .RE .\} .sp .if n \{\ .RS 4 .\} .nf این داده‌ها مستقیماً از بافر حلقه‌ای Ftrace کپی می‌شوند و دارای همان قالبی هستند که توسط فایل‌های سرآیند رویداد بارگذاری‌شده در فایل قالب سرآیند تعیین شده است\&. .fi .if n \{\ .RE .\} .sp .if n \{\ .RS 4 .\} .nf ابزار trace\-cmd در صورت امکان تلاش خواهد کرد داده‌ها را صفحه به صفحه با اندازه صفحه هدف \efBmmap(2)\efR کند\&. در صورت عدم موفقیت در نگاشت حافظه (mmap)، به جای آن داده‌ها را به صورت معمولی خواهد خواند\&. .fi .if n \{\ .RE .\} .SH "همچنین ببینید (SEE ALSO)" .sp trace\-cmd(1), trace\-cmd\-record(1), trace\-cmd\-report(1), trace\-cmd\-start(1), trace\-cmd\-stop(1), trace\-cmd\-extract(1), trace\-cmd\-reset(1), trace\-cmd\-split(1), trace\-cmd\-list(1), trace\-cmd\-listen(1), trace\-cmd\&.dat(5) .SH "نویسنده (AUTHOR)" .sp نوشته‌شده توسط Steven Rostedt، <\m[blue]\fBrostedt@goodmis\&.org\fR\m[]\&\s-2\u[1]\d\s+2> .SH "منابع (RESOURCES)" .sp \m[blue]\fBhttps://git\&.kernel\&.org/pub/scm/utils/trace\-cmd/trace\-cmd\&.git\fR\m[] .SH "کپی‌رایت و تکثیر (COPYING)" .sp حق نشر (C) 2010 شرکت Red Hat, Inc\&. استفاده آزاد از این نرم‌افزار تحت شرایط پروانه عمومی همگانی گنو (GPL) مجاز است\&. .SH "نکات (NOTES)" .IP " 1." 4 rostedt@goodmis.org .RS 4 \%mailto:rostedt@goodmis.org .RE