.\" .de CO \dB\\$1\fP \fI\\$2\fP .. .TH CRASH 8 .SH "نام (NAME)" crash \- تحلیل داده‌های خرابی (crash dump) یا یک سیستم زنده در لینوکس .SH "خلاصه دستور (SYNOPSIS)" .B crash [\fIگزینه\fR]... \fINAMELIST MEMORY-IMAGE[@ADDRESS] (حالت فایل دامپ)\fR .br .B crash [\fIگزینه\fR]... \fI[NAMELIST] (حالت سیستم زنده)\fR .SH "توضیحات (DESCRIPTION)" ابزار .B Crash یک ابزار برای تحلیل تعاملی وضعیت سیستم لینوکس در حین اجرا، یا پس از رخ دادن خرابی هسته (kernel crash) و ایجاد دامپ هسته (core dump) توسط امکانات .I netdump، .I diskdump، .I LKCD، .I kdump، .I xendump، .I kvmdump یا .I VMware است. این ابزار بر اساس دستور crash در SVR4 UNIX توسعه یافته است، اما با ادغام کامل آن با دیباگر .B gdb(1) به‌طور قابل توجهی بهبود یافته است. ترکیب این دو، ماهیت اختصاصی هسته در ابزار سنتی crash یونیکس را با قابلیت‌های دیباگ در سطح کد منبع .B gdb(1) به‌طور مؤثری پیوند داده است. در .I حالت فایل دامپ، هر دو آرگومان NAMELIST و MEMORY-IMAGE باید وارد شوند. در .I حالت سیستم زنده، اگر فایل .I vmlinux هسته در مکانی شناخته‌شده مانند شاخه .I /usr/lib/debug/lib/modules/ قرار نداشته باشد، آرگومان NAMELIST باید وارد شود. ابزار .B crash همچنین برای پشتیبانی از تحلیل فایل‌های دامپ ایجادشده ناشی از خرابی هایپروایزر Xen توسعه یافته است. در این حالت، آرگومان NAMELIST باید باینری .I xen-syms باشد. تحلیل سیستم زنده برای هایپروایزر Xen پشتیبانی نمی‌شود. مجموعه دستورات ابزار .B crash شامل ابزارهای رایج تحلیل حافظه هسته مانند ردگیری پشته هسته (backtrace) برای تمام فرآیندها، دیزاسمبل کد منبع، نمایش ساختارها و متغیرهای هسته با فرمت مناسب، داده‌های حافظه مجازی، دامپ لیست‌های پیوندی و غیره به همراه چندین دستور برای بررسی عمیق‌تر زیرسیستم‌های خاص هسته است. دستورات مناسب .B gdb را نیز می‌توان وارد کرد که برای اجرا به ماژول .B gdb ارسال می‌شوند. در صورت تمایل، دستورات را می‌توان در فایل .I $HOME/.crashrc و/یا در یک فایل .I .crashrc در شاخه جاری قرار داد. هنگام راه‌اندازی، دستورات موجود در .I $HOME/.crashrc ابتدا اجرا می‌شوند و سپس دستورات فایل .I ./.crashrc اجرا می‌گردند. ابزار .B crash به گونه‌ای طراحی شده است که مستقل از وابستگی‌های نسخه لینوکس باشد. هنگامی که تغییرات کد منبع جدید هسته بر عملکرد صحیح .B crash و مجموعه دستورات آن تأثیر بگذارد، این ابزار به‌روزرسانی می‌شود تا تغییرات جدید کد هسته را شناسایی کند و در عین حال سازگاری با نسخه‌های قبلی را حفظ نماید. .SH "گزینه‌ها (OPTIONS)" .de BS \fB\\$1\fP\ \fR\\$2\fP .. .TP .BI NAMELIST مسیر یک ایمیج فشرده‌نشده هسته (یک فایل .IR vmlinux ) یا یک ایمیج هایپروایزر Xen (یک فایل .IR xen-syms ) است که با گزینه «\-g» کامپایل شده باشد. در صورت استفاده از .I حالت فایل دامپ، یک فایل .I vmlinux می‌تواند در قالب‌های gzip یا bzip2 فشرده شده باشد. .TP .BI MEMORY-IMAGE[@ADDRESS] یک فایل core dump هسته که توسط امکانات .I netdump، .I diskdump، .I LKCD، .I kdump، .I xendump، .I kvmdump یا .I VMware ایجاد شده است. اگر آرگومان MEMORY-IMAGE وارد نشود، نشست روی سیستم زنده اجرا خواهد شد که معمولاً به دلیل فایل دستگاه مورد استفاده برای دسترسی به RAM سیستم، به دسترسی ریشه (root) نیاز دارد. به‌طور پیش‌فرض، در صورت وجود .I /dev/crash از آن استفاده خواهد شد. اگر وجود نداشته باشد، .I /dev/mem استفاده می‌شود؛ اما اگر هسته با .B CONFIG_STRICT_DEVMEM پیکربندی شده باشد، .I /proc/kcore به کار خواهد رفت. وارد کردن صریح .I /dev/crash، .I /dev/mem یا .I /proc/kcore مجاز است. اگر فایل دامپ یک فایل دامپ خام RAM باشد که اطلاعات هدر برای توصیف محتویات فایل را ندارد، باید مقدار @ADDRESS به انتهای MEMORY-IMAGE پیوست شود. می‌توان چندین جفت مرتب MEMORY-IMAGE@ADDRESS وارد کرد که در آن هر فایل دامپ شامل یک بلوک پیوسته از RAM است و مقدار ADDRESS آدرس فیزیکی شروع بلوک در مبنای شانزده‌شانزدهی (هگزادسیمال) است. مقدار(های) آدرس فیزیکی برای ایجاد یک هدر ELF موقت در /var/tmp استفاده خواهد شد که فقط در طول نشست crash وجود خواهد داشت. اگر یک فایل دامپ خام RAM نشان‌دهنده یک منبع حافظه زنده باشد (مانند آنچه توسط آرگومان mem-path شیء memory-backend-file در QEMU مشخص می‌شود)، باید «:live» به ابتدای نام MEMORY-IMAGE اضافه شود. به عنوان امکان VMware، ابزار .B crash قادر است دامپ حافظه ماشین مجازی VMware ناشی از تعلیق (suspend) ماشین مجازی یا core dump مهمان را پردازش کند. در این حالت، فایل .vmss یا .guest باید به عنوان MEMORY-IMAGE استفاده شود و فایل .vmem نیز باید در همان پوشه قرار داشته باشد. .TP .BI mapfile اگر فایل NAMELIST مربوط به همان هسته‌ای نباشد که در حال اجرا است (حالت سیستم زنده)، یا هسته‌ای که هنگام خرابی سیستم در حال اجرا بوده است (حالت فایل دامپ)، باید فایل .I System.map هسته اصلی در خط فرمان وارد شود. .P .BI \-h \ [گزینه] .br .BI \--help \ [گزینه] .RS بدون آرگومان .I گزینه، پیام راهنمای استفاده از .B crash را نمایش می‌دهد. اگر آرگومان .I گزینه نام یکی از دستورات .B crash باشد، صفحه راهنمای آن دستور نمایش داده می‌شود. اگر رشته "input" باشد، صفحه‌ای شامل توضیحات گزینه‌های مختلف ورودی خط فرمان .B crash نمایش داده می‌شود. اگر رشته "output" باشد، صفحه‌ای حاوی توضیحات گزینه‌های خروجی خط فرمان نمایش داده می‌شود. اگر رشته "all" باشد، تمام پیام‌های راهنمای ممکن نمایش داده می‌شوند. پس از نمایش پیام راهنما، .B crash خارج می‌شود. .RE .TP .B \-s بدون نمایش هیچ‌گونه اطلاعات نسخه، GPL یا داده‌های مقداردهی اولیه .B crash در زمان شروع، مستقیماً و در سکوت به خط اعلان « irq_eframe_link= irq_stack_gap= max_physmem_bits= kernel_image_size= vm=orig (محدوده‌های آدرس حافظه مجازی قبل از 2.6.11) vm=2.6.11 (محدوده‌های آدرس حافظه مجازی 2.6.11 و بعد از آن) vm=xen (محدوده‌های آدرس حافظه مجازی هسته Xen) vm=xen-rhel4 (محدوده‌های آدرس مجازی هسته Xen در RHEL4) vm=5level (جداول صفحه‌ای ۵ سطحی) page_offset= PPC64: vm=orig vm=2.6.14 (جداول صفحه‌ای ۴ سطحی) IA64: phys_start= init_stack_size= vm=4l (جداول صفحه‌ای ۴ سطحی) ARM: phys_base= ARM64: phys_offset= kimage_voffset= max_physmem_bits= vabits_actual= X86: page_offset= .fi .RE .TP .B \-x ماژول‌های افزونه (extension modules) را به‌طور خودکار از یک شاخه خاص بارگذاری می‌کند. اگر شاخه‌ای در متغیر محیطی .B CRASH_EXTENSIONS تعیین شده باشد، از آن شاخه استفاده خواهد شد. در غیر این صورت از .I /usr/lib64/crash/extensions (معماری‌های ۶۴ بیتی) یا .I /usr/lib/crash/extensions (معماری‌های ۳۲ بیتی) استفاده می‌شود؛ اگر وجود نداشته باشند، شاخه .I ./extensions به کار خواهد رفت. .TP .BI \--active فقط تسک‌های فعال در هر CPU را ردگیری می‌کند. .TP .BI \--buildinfo تاریخ ساخت باینری crash، شناسه کاربری (UID) سازنده، نام میزبان ماشینی که ساخت روی آن انجام شده، معماری هدف، شماره نسخه و نسخه کامپایلر را نمایش می‌دهد. .TP .BI \--memory_module \ modname از .I modname به عنوان یک ماژول جایگزین هسته برای ماژول .I crash.ko که دستگاه .I /dev/crash را می‌سازد، استفاده می‌کند. .TP .BI \--memory_device \ device از .I device به عنوان یک دستگاه جایگزین برای دستگاه‌های .I /dev/crash، /dev/mem یا .I /proc/kcore استفاده می‌کند. .TP .BI \--log \ dumpfile محتویات بافر لاگ هسته را دامپ می‌کند. آرگومان namelist هسته الزامی نیست، اما فایل دامپ باید حاوی داده‌های VMCOREINFO برگرفته از هدر اصلی /proc/vmcore ELF باشد. نکته: این گزینه منسوخ شده است و برای هسته‌های نسخه ۵.۱۰ به بعد کار نخواهد کرد. .TP .B \--no_kallsyms از اطلاعات نمادهای ایجادشده توسط kallsyms موجود در فایل‌های شیء ماژول‌های هسته استفاده نمی‌کند. .TP .B \--no_modules به هیچ اطلاعاتی مربوط به ماژول‌های هسته دسترسی پیدا نکرده و آنها را نمایش نمی‌دهد. .TP .B \--no_ikconf تلاشی برای خواندن داده‌های پیکربندی که در هسته‌های دارای .B CONFIG_IKCONFIG تعبیه شده‌اند، انجام نمی‌دهد. .TP .B \--no_data_debug صحت تمام آفست‌های اعضای ساختارها و اندازه‌های ساختارهایی را که استفاده می‌کند، اعتبارسنجی نمی‌کند. .TP .B \--no_kmem_cache زیرساخت کش اسلب (slab cache) هسته را مقداردهی اولیه نمی‌کند و دستوراتی که از داده‌های مرتبط با kmem_cache استفاده می‌کنند، کار نخواهند کرد. .TP .B \--no_elf_notes برای ردگیری پشته (backtrace)، از ثبات‌های (registers) یادداشت‌های ELF NT_PRSTATUS ذخیره‌شده در هدر فشرده kdump استفاده نمی‌کند. .TP .B \--kmem_cache_delay مقداردهی اولیه زیرساخت کش اسلب هسته را تا زمانی که توسط یک دستور زمان اجرا مورد نیاز باشد، به تعویق می‌اندازد. .TP .B \--readnow این پرچم را به ماژول تعبیه‌شده .B gdb ارسال می‌کند که راهبرد دومرحله‌ای آن را برای خواندن جداول نمادها از NAMELIST نادیده می‌گیرد. .TP .B \--smp مشخص می‌کند که سیستم در حال تحلیل دارای یک هسته SMP است. .P .B \-v .br .B \--version .RS نسخه ابزار .B crash، نسخه ماژول تعبیه‌شده .B gdb، اطلاعات مجوز GPL و اعلان‌های حق نشر را نمایش می‌دهد. .RE .TP .BI \--cpus \ number تعداد CPUها ( .IR number ) در سیستم SMP در حال تحلیل را مشخص می‌کند. .TP .BI \--osrelease \ dumpfile رشته OSRELEASE vmcoreinfo را از هدر .I dumpfile مربوط به kdump نمایش می‌دهد. .TP .BI \--build-id \ dumpfile رشته BUILD-ID vmcoreinfo را از هدر .I dumpfile مربوط به kdump نمایش می‌دهد. نکته: این گزینه فقط برای هسته نسخه ۵.۹ به بعد کار می‌کند؛ در غیر این صورت "unknown" را چاپ کرده و با وضعیت غیرصفر خارج می‌شود. .TP .BI \--hyper نشست را مجبور می‌کند که به عنوان هایپروایزر Xen اجرا شود. .TP .BI \--p2m_mfn \ pfn هنگامی که هایپروایزر Xen یا هسته dom0 آن دچار خرابی می‌شود، فایل دامپ معمولاً با هایپروایزر Xen یا هسته dom0 تحلیل می‌شود. همچنین امکان تحلیل هر یک از هسته‌های مهمان domU نیز وجود دارد، به شرطی که مقدار .I pfn در pfn_to_mfn_list_list هسته مهمان همراه با NAMELIST و فایل دامپ آن در خط فرمان وارد شود. .TP .BI \--xen_phys_start \ physical-address آدرس فیزیکی پایه برای بخش کد (text) و داده‌های ایستا در هایپروایزر Xen را برای فایل‌های دامپ xendump قدیمی‌تر که این اطلاعات را در هدر فایل دامپ ارسال نکرده‌اند، فراهم می‌کند. .TP .B \--zero_excluded اگر ابزار makedumpfile(8) یک فایل دامپ فشرده kdump را فیلتر کرده باشد تا انواع مختلف صفحات غیرضروری را حذف کند، یا یک فایل دامپ فشرده یا ELF kdump را به دلیل خطای ENOSPC یا خطاهای دیگر در حین ایجاد ناقص علامت‌گذاری کرده باشد، هر تلاشی برای خواندن صفحات مفقود با شکست مواجه می‌شود. با این پرچم، خواندن از هر یک از این صفحات حافظه پر از صفر را بازمی‌گرداند. .TP .B \--no_panic تلاشی برای یافتن تسکی که هنگام خرابی هسته در حال اجرا بوده است، انجام نمی‌دهد. زمینه اولیه را روی تسک "swapper" در پردازنده ۰ تنظیم می‌کند. .TP .B \--more از .I /bin/more به عنوان ابزار پیمایش خروجی دستورات استفاده می‌کند و مقدار پیش‌فرض .I /usr/bin/less و هر تنظیمی در .I ./.crashrc یا .I $HOME/.crashrc را لغو می‌کند. .TP .B \--less از .I /usr/bin/less به عنوان ابزار پیمایش خروجی دستورات استفاده می‌کند و هر تنظیمی در .I ./.crashrc یا .I $HOME/.crashrc را نادیده می‌گیرد. .TP .B \--hex مبنای پیش‌فرض خروجی دستورات را روی ۱۶ (هگزادسیمال) تنظیم می‌کند و مبنای پیش‌فرض ۱۰ و هر تنظیم مبنایی در .I ./.crashrc یا .I $HOME/.crashrc را لغو می‌کند. .TP .B \--dec مبنای پیش‌فرض خروجی دستورات را روی ۱۰ (ده‌دهی) تنظیم می‌کند و هر تنظیم مبنایی در .I ./.crashrc یا .I $HOME/.crashrc را لغو می‌کند. این حالت پیش‌فرض است. .TP .B \--CRASHPAGER از دستور صفحه‌بندی خروجی تعریف‌شده در متغیر محیطی .B CRASHPAGER استفاده می‌کند و هر تنظیمی در .I ./.crashrc یا .I $HOME/.crashrc را نادیده می‌گیرد. .TP .B \--no_scroll خروجی دستورات زمان اجرا را به هیچ دستور پیمایشی ارسال نمی‌کند. .TP .B \--no_strip نام نمادهای کپی‌شده (cloned) از بخش کدهای هسته را حذف نمی‌کند. .TP .B \--no_crashrc دستورات موجود در .I $HOME/.crashrc یا .I ./.crashrc را اجرا نمی‌کند. .TP .BI \--mod \ directory هنگام بارگذاری داده‌های debuginfo ماژول‌های هسته با دستور .IR "mod -S" ، فایل‌های شیء آن‌ها را به جای مکان استاندارد در .I directory جستجو می‌کند. .TP .BI \--src \ directory کد منبع هسته را به جای مکان استانداردی که در داده‌های debuginfo کامپایل شده، در شاخه مشخص‌شده جستجو می‌کند. .TP .BI \--kaslr \ offset | auto اگر یک هسته x86، x86_64، s390x یا loongarch64 با .B CONFIG_RANDOMIZE_BASE پیکربندی شده باشد، مقدار offset برابر با تفاوت بین مقادیر نمادهای کامپایل‌شده در فایل vmlinux و مقادیر جابه‌جاشده (relocated) تحت KASLR آنها خواهد بود. در صورت تنظیم روی auto، مقدار آفست KASLR به‌طور خودکار محاسبه می‌شود. .TP .BI \--reloc \ size هنگام تحلیل هسته‌های زنده x86 که با مقدار .B CONFIG_PHYSICAL_START بزرگ‌تر از مقدار .B CONFIG_PHYSICAL_ALIGN پیکربندی شده‌اند، لازم است اندازه جابه‌جایی (relocation size) برابر با تفاوت بین این دو مقدار وارد شود. .TP .BI \--hash \ count تعداد سرهای صف جدول درهم‌سازی (hash queue heads) داخلی را که برای جمع‌آوری و اعتبارسنجی لیست‌ها استفاده می‌شوند، تعیین می‌کند. مقدار پیش‌فرض ۳۲۷۶۸ است. .TP .BI \--max-malloc-bufs \ size مقدار \fBMAX_MALLOC_BUFS\fP را روی \fIsize\fP تنظیم می‌کند. حداقل مقدار مجاز ۳۰۷۲ است. .TP .B \--minimal نشستی را ایجاد می‌کند که فقط به دستورات .IR "log، dis، rd، sym، eval، set" و .I exit محدود است. این گزینه ممکن است راهکاری برای استخراج برخی اطلاعات حداقلی/سریع از یک فایل دامپ خراب یا ناقص، یا در شرایطی باشد که یکی از چندین روال مقداردهی اولیه زیرسیستم‌های هسته باعث متوقف شدن نشست .B crash می‌شود. .TP .BI \--kvmhost \ [32|64] هنگام بررسی فایل دامپ مهمان KVM در معماری x86، این گزینه مشخص می‌کند که میزبان KVM ایجادکننده فایل دامپ یک ماشین x86 (۳۲ بیتی) یا x86_64 (۶۴ بیتی) بوده است و مقدار به‌دست‌آمده خودکار را نادیده می‌گیرد. .TP .BI \--kvmio \ اندازه حفره I/O مهمان KVM که به‌طور خودکار محاسبه شده است را بازنویسی می‌کند. .TP .BI \--offline \ [show|hide] خروجی دستورات مربوط به CPUهای آفلاین را نمایش می‌دهد یا مخفی می‌کند. حالت پیش‌فرض show است. .SH "دستورات (COMMANDS)" هر دستور .B crash به‌طور کلی در یکی از دسته‌بندی‌های زیر قرار می‌گیرد: .TP .I نمایش نمادین (Symbolic display) نمایش متن/داده‌های هسته که با استفاده کامل از قدرت .B gdb ساختارهای داده را به‌صورت نمادین قالب‌بندی و نمایش می‌دهد. .TP .I وضعیت سیستم (System state) اکثر دستورات .B crash شامل مجموعه‌ای از دستورات «آگاه از هسته» هستند که زیرسیستم‌های مختلف هسته را در سطح کل سیستم یا به ازای هر تسک بررسی می‌کنند. .TP .I توابع کاربردی (Utility functions) مجموعه‌ای از دستورات کمکی مفید برای اهداف مختلف، برخی ساده و برخی بسیار قدرتمند. .TP .I کنترل نشست (Session control) دستوراتی که خود نشست .B crash را کنترل می‌کنند. .PP فهرست الفبایی زیر شامل یک نمای کلی بسیار ساده از هر دستور .B crash است. با این حال، از آنجا که دستورات جداگانه اغلب گزینه‌های متعددی دارند که منجر به خروجی‌های بسیار متفاوتی می‌شود، پیشنهاد می‌شود توضیحات کامل هر دستور را با اجرای .I crash\ -h\ \fI\fP یا در طول یک نشست .B crash با وارد کردن ساده .B \fIhelp command\fP مشاهده کنید. .TP .I * «اشاره‌گر به» (pointer to) نام اختصاری برای دستورات .I struct یا .I union است. این دستور محتویات یک ساختار یا یونیون هسته را نمایش می‌دهد. .TP .I alias یک نام مستعار تک‌کلمه‌ای برای یک دستور ایجاد می‌کند. .TP .I ascii یک جدول اسکی را نمایش می‌دهد یا یک مقدار عددی را به اجزای اسکی آن ترجمه می‌کند. .TP .I bpf اطلاعات مربوط به برنامه‌ها و نقشه‌های eBPF بارگذاری‌شده فعلی را ارائه می‌دهد. .TP .I bt ردگیری پشته هسته (backtrace) یک تسک را نمایش می‌دهد. اگر گزینه .I \-a به آن داده شود، ردگیری پشته تسک‌های فعال در تمام CPUها را نمایش می‌دهد. اغلب با دستور .I foreach برای نمایش ردگیری پشته تمام تسک‌ها با یک دستور استفاده می‌شود. .TP .I btop یک مقدار بایتی (آفست فیزیکی) را به شماره صفحه آن ترجمه می‌کند. .TP .I dev داده‌های مربوط به تخصیص دستگاه‌های نویسه‌ای و بلوکی، استفاده از درگاه I/O، استفاده از حافظه I/O و داده‌های دستگاه PCI را نمایش می‌دهد. .TP .I dis حافظه را دیزاسمبل می‌کند؛ خواه کل توابع هسته باشد، خواه از یک مکان برای تعداد مشخصی دستورالعمل، یا از ابتدای یک تابع تا یک مکان حافظه مشخص. .TP .I eval یک عبارت یا نوع عددی را ارزیابی کرده و نتیجه را در مبناهای هگزادسیمال، ده‌دهی، هشت‌هشتی و دودویی نمایش می‌دهد. .TP .I exit باعث خروج از .B crash می‌شود. .TP .I extend ماژول‌های افزونه شیء اشتراکی (shared object) را در .B crash به‌صورت پویا بارگذاری یا تخلیه می‌کند. .TP .I files اطلاعات مربوط به فایل‌های باز را در یک زمینه (context) نمایش می‌دهد. .TP .I foreach یک دستور مشخص را برای تسک‌های مشخص‌شده (یا همه تسک‌ها) در سیستم تکرار می‌کند. .TP .I fuser تسک‌هایی را که از فایل یا سوکت مشخص‌شده استفاده می‌کنند، نمایش می‌دهد. .TP .I gdb آرگومان خود را به ماژول تعبیه‌شده .B gdb ارسال می‌کند. این دستور برای اجرای دستورات .B gdb که همنام با دستورات .B crash هستند مفید است. .TP .I help به تنهایی منوی دستورات را نمایش می‌دهد؛ اگر پس از آن نام یک دستور بیاید، توضیحات کامل آن دستور، گزینه‌ها و مثال‌های آن نمایش داده می‌شود. خروجی آن بسیار کامل‌تر و مفیدتر از این صفحه راهنما است. .TP .I ipcs داده‌های مربوط به امکانات IPC در System V را نمایش می‌دهد. .TP .I irq داده‌های مربوط به شماره‌های درخواست وقفه (IRQ) و مدیریت نیمه پایینی (bottom-half) وقفه را نمایش می‌دهد. .TP .I kmem اطلاعات مربوط به استفاده از حافظه هسته را نمایش می‌دهد. .TP .I list محتویات یک لیست پیوندی را نمایش می‌دهد. .TP .I log محتویات log_buf هسته را به ترتیب زمانی نمایش می‌دهد. .TP .I mach داده‌های مختص نوع ماشین را نمایش می‌دهد. .TP .I mod اطلاعات مربوط به ماژول‌های هسته نصب‌شده فعلی را نمایش می‌دهد، یا اطلاعات نمادین یا دیباگ را در مورد ماژول‌های مشخص‌شده هسته اضافه یا حذف می‌کند. .TP .I mount اطلاعات مربوط به سیستم‌فایل‌های سوارشده (mounted) فعلی را نمایش می‌دهد. .TP .I net داده‌های مختلف مربوط به شبکه را نمایش می‌دهد. .TP .I p آرگومان‌های خود را برای ارزیابی و نمایش به دستور "print" در .B gdb ارسال می‌کند. .TP .I ps وضعیت فرآیند را برای فرآیندهای مشخص‌شده، یا تمام فرآیندهای موجود در سیستم نمایش می‌دهد. .TP .I pte محتوای هگزادسیمال یک مدخل جدول صفحه (PTE) را به آدرس صفحه فیزیکی و تنظیمات بیت‌های صفحه ترجمه می‌کند. .TP .I ptob شماره فریم صفحه را به مقدار بایتی آن ترجمه می‌کند. .TP .I ptov یک آدرس فیزیکی هگزادسیمال را به یک آدرس مجازی هسته ترجمه می‌کند. .TP .I q نام مستعاری برای دستور "exit" است. .TP .I rd محتویات حافظه را نمایش می‌دهد، در حالی که خروجی به چندین شیوه مختلف قالب‌بندی شده است. .TP .I repeat یک دستور را به‌طور نامحدود تکرار می‌کند و در صورت تمایل، چند ثانیه مشخص بین هر بار اجرای دستور تأخیر ایجاد می‌کند. .TP .I runq تسک‌های موجود در صف اجرا (run queue) را نمایش می‌دهد. .TP .I sbitmapq محتویات ساختار sbitmap_queue و بیت‌های استفاده‌شده در بیت‌مپ را دامپ می‌کند. همچنین دامپ آرایه‌ای از ساختارهای مرتبط با sbitmap_queue را نمایش می‌دهد. .TP .I search محدوده‌ای از فضای حافظه کاربر یا هسته را برای یک مقدار مشخص جستجو می‌کند. .TP .I set یک زمینه جدید تنظیم می‌کند، یا زمینه فعلی را برای نمایش دریافت می‌کند. .TP .I sig داده‌های مدیریت سیگنال یک یا چند تسک را نمایش می‌دهد. .TP .I struct یک تعریف ساختار یا محتویات یک ساختار هسته در یک آدرس مشخص را نمایش می‌دهد. .TP .I swap اطلاعات مربوط به هر دستگاه حافظه تعویض (swap) پیکربندی‌شده را نمایش می‌دهد. .TP .I sym یک نماد را به آدرس مجازی آن، یا یک آدرس مجازی ایستای هسته را به نماد آن (یا در صورت مناسب بودن، به مقدار نماد به‌علاوه آفست) ترجمه می‌کند. .TP .I sys داده‌های مختص سیستم را نمایش می‌دهد. .TP .I task محتویات یک task_struct را نمایش می‌دهد. .TP .I tree محتویات یک درخت سرخ-سیاه (red-black tree) یا درخت رادیکس (radix tree) را نمایش می‌دهد. .TP .I timer مدخل‌های صف تایمر، اعم از سبک قدیمی و جدید را به ترتیب زمانی نمایش می‌دهد. .TP .I union مشابه دستور .I struct است، با این تفاوت که روی یونیون‌های هسته کار می‌کند. .TP .I vm اطلاعات اولیه حافظه مجازی یک زمینه را نمایش می‌دهد. .TP .I vtop یک آدرس مجازی کاربر یا هسته را به آدرس فیزیکی آن ترجمه می‌کند. .TP .I waitq لیست صف انتظار را پیمایش کرده و تسک‌هایی را که در صف انتظار مشخص‌شده مسدود شده‌اند نمایش می‌دهد. .TP .I whatis تعریف ساختارها، یونیون‌ها، typedefها یا نمادهای متنی/داده‌ای را نمایش می‌دهد. .TP .I wr محتویات حافظه را در یک سیستم زنده تغییر می‌دهد. این دستور فقط در صورتی قابل استفاده است که .I /dev/mem فایل دستگاه مورد استفاده برای دسترسی به RAM سیستم باشد و بدیهی است که باید با احتیاط فراوان استفاده شود. .PP هنگامی که .B crash با یک فایل باینری هایپروایزر Xen به عنوان NAMELIST فراخوانی می‌شود، مجموعه دستورات کمی تغییر می‌کند. دستورات .IR "*، alias، ascii، bt، dis، eval، exit، extend" ، .IR "gdb، help، list، log، p، pte، rd، repeat" ، .IR "search، set، struct، sym، sys، union" ، .I whatis، wr و .I q همانند بالا هستند. دستورات زیر مختص هایپروایزر Xen می‌باشند: .TP .I domain محتویات ساختار دامنه‌ها را برای دامنه‌های انتخاب‌شده یا همه دامنه‌ها نمایش می‌دهد. .TP .I doms وضعیت دامنه‌ها را برای دامنه‌های انتخاب‌شده یا همه دامنه‌ها نمایش می‌دهد. .TP .I dumpinfo اطلاعات دامپ Xen را برای CPUهای انتخاب‌شده یا همه CPUها نمایش می‌دهد. .TP .I pcpus اطلاعات CPU فیزیکی را برای CPUهای انتخاب‌شده یا همه CPUها نمایش می‌دهد. .TP .I vcpus وضعیت vcpu را برای vcpuهای انتخاب‌شده یا همه vcpuها نمایش می‌دهد. .SH "فایل‌ها (FILES)" .TP .I .crashrc دستورات مقداردهی اولیه. این فایل می‌تواند در شاخه .B HOME کاربر و/یا شاخه جاری قرار داشته باشد. دستورات موجود در فایل .I .crashrc در شاخه .B HOME قبل از دستورات موجود در فایل .I .crashrc شاخه جاری اجرا می‌شوند. .SH "محیط (ENVIRONMENT)" .TP .B EDITOR ورودی دستورات با استفاده از .BR readline(3) خوانده می‌شود. اگر .B EDITOR روی .I emacs یا .I vi تنظیم شده باشد، از کلیدهای میانبر مناسب استفاده می‌شود. اگر .B EDITOR تنظیم نشده باشد، از .I vi استفاده می‌شود. این تنظیم را می‌توان با دستورات .B set vi یا .B set emacs موجود در یک فایل .IR .crashrc ، یا با وارد کردن .B -e emacs در خط فرمان .B crash لغو کرد. .TP .B CRASHPAGER اگر .B CRASHPAGER تنظیم شده باشد، مقدار آن به عنوان نام برنامه‌ای که خروجی دستورات به آن ارسال می‌شود، استفاده خواهد شد. در غیر این صورت، خروجی دستورات به‌طور پیش‌فرض به .B /usr/bin/less -E -X ارسال می‌شود. .TP .B CRASH_MODULE_PATH یک درخت شاخه جایگزین را برای جستجوی فایل‌های شیء ماژول‌های هسته مشخص می‌کند. .TP .B CRASH_EXTENSIONS شاخه‌ای حاوی ماژول‌های افزونه را مشخص می‌کند که در صورت استفاده از گزینه خط فرمان .B -x به‌طور خودکار بارگذاری می‌شوند. .SH "نکات (NOTES)" .PP اگر .B crash کار نمی‌کند، به دنبال نسخه جدیدتر باشید: تکامل مداوم هسته مکرراً به‌روزرسانی‌های .B crash را ضروری می‌سازد. .PP دستور .B set scroll off باعث می‌شود خروجی به جای عبور از یک برنامه صفحه‌بندی، مستقیماً به ترمینال ارسال شود. این گزینه به عنوان مثال زمانی مفید است که .B crash را در یک پنجره از .B emacs اجرا می‌کنید. .SH "نویسنده (AUTHOR)" دیو اندرسون (Dave Anderson ) ابزار .B crash را نوشت. .TP جی فنلیسون (Jay Fenlason ) و دیو اندرسون (Dave Anderson ) این صفحه راهنما را نوشتند. .SH "همچنین ببینید (SEE ALSO)" .PP دستور .I help درون .B crash مستندات کامل‌تر و دقیق‌تری نسبت به این صفحه راهنما ارائه می‌دهد. .PP .I https://github.com/crash-utility \- صفحه اصلی ابزار .BR crash . .PP .BR netdump (8), .BR gdb (1), .BR makedumpfile (8)