.\" Automatically generated by Pandoc 3.2 .\" .TH "rofi\-debugging" "5" "" "rofi" "راهنمای قالب‌های فایل" .SH "نام (NAME)" rofi\-debugging \- راهنمای اشکال‌زدایی و عیب‌یابی rofi .PP هنگام گزارش مشکلی مانند فروپاشی یا رفتار نادرست در rofi، انجام چند آزمایش کوچک برای مشخص کردن دقیق ریشه مشکل سودمند خواهد بود. .PP نخست پیکربندی سفارشی خود را غیرفعال کنید: \f[B]\-no\-config\f[R] .PP این گزینه پردازش فایل‌های پیکربندی را غیرفعال می‌کند و rofi را در حالت پایه (\f[I]stock\f[R]) اجرا می‌نماید. .PP اگر از افزونه‌های سفارشی به زبان C استفاده می‌کنید، می‌توانید آن‌ها را با این گزینه غیرفعال کنید: \f[B]\-no\-plugins\f[R] .SH "دریافت اطلاعات مربوط به مشکل (Get the relevant information for an issue)" لطفاً خروجی دستورات زیر را در یک سرویس pastebin قرار دهید: .IP .EX rofi \-help rofi \-dump\-config rofi \-dump\-theme .EE .TP دستور \f[B]rofi \-help\f[R] اطلاعاتی شامل فایل‌های پیکربندی پردازش‌شده، نسخه دقیق، چیدمان مانیتور و اطلاعات مفید دیگری را فراهم می‌کند. خروجی دستورات \f[B]rofi \-dump\-config\f[R] و \f[B]rofi \-dump\-theme\f[R] تفسیر \f[B]rofi\f[R] از پیکربندی و پوسته شما را نمایش می‌دهد. .RS .PP لطفاً خروجی را برای اطلاعات شناسایی شخصی بررسی کرده و در صورت وجود آن‌ها را حذف کنید. .RE .SH "ردیابی زمان‌بندی (Timing traces)" برای دریافت ردیابی زمان‌بندی، دامنه اشکال‌زدایی \f[B]Timings\f[R] را فعال کنید. .IP .EX G_MESSAGES_DEBUG=Timings rofi \-show drun .EE .PP این دستور ردپایی از اطلاعات زمان‌بندی (مفید) را در نقاط مربوطه حین اجرا نمایش می‌دهد. این اطلاعات هنگام اشکال‌زدایی کندی در راه‌اندازی rofi بسیار کمک‌کننده است. .PP نمونه ردپای زمان‌بندی: .IP .EX (process:14942): Timings\-DEBUG: 13:47:39.335: 0.000000 (0.000000): Started (process:14942): Timings\-DEBUG: 13:47:39.335: 0.000126 (0.000126): ../source/rofi.c:main:786 (process:14942): Timings\-DEBUG: 13:47:39.335: 0.000163 (0.000037): ../source/rofi.c:main:819 (process:14942): Timings\-DEBUG: 13:47:39.336: 0.000219 (0.000056): ../source/rofi.c:main:826 Setup Locale (process:14942): Timings\-DEBUG: 13:47:39.337: 0.001235 (0.001016): ../source/rofi.c:main:828 Collect MODI (process:14942): Timings\-DEBUG: 13:47:39.337: 0.001264 (0.000029): ../source/rofi.c:main:830 Setup MODI (process:14942): Timings\-DEBUG: 13:47:39.337: 0.001283 (0.000019): ../source/rofi.c:main:834 Setup mainloop (process:14942): Timings\-DEBUG: 13:47:39.337: 0.001369 (0.000086): ../source/rofi.c:main:837 NK Bindings (process:14942): Timings\-DEBUG: 13:47:39.337: 0.001512 (0.000143): ../source/xcb.c:display_setup:1177 Open Display (process:14942): Timings\-DEBUG: 13:47:39.337: 0.001829 (0.000317): ../source/xcb.c:display_setup:1192 Setup XCB (process:14942): Timings\-DEBUG: 13:47:39.346: 0.010650 (0.008821): ../source/rofi.c:main:844 Setup Display (process:14942): Timings\-DEBUG: 13:47:39.346: 0.010715 (0.000065): ../source/rofi.c:main:848 Setup abe (process:14942): Timings\-DEBUG: 13:47:39.350: 0.015101 (0.004386): ../source/rofi.c:main:883 Load cmd config (process:14942): Timings\-DEBUG: 13:47:39.351: 0.015275 (0.000174): ../source/rofi.c:main:907 Setup Modi (process:14942): Timings\-DEBUG: 13:47:39.351: 0.015291 (0.000016): ../source/view.c:rofi_view_workers_initialize:1922 Setup Threadpool, start (process:14942): Timings\-DEBUG: 13:47:39.351: 0.015349 (0.000058): ../source/view.c:rofi_view_workers_initialize:1945 Setup Threadpool, done (process:14942): Timings\-DEBUG: 13:47:39.367: 0.032018 (0.016669): ../source/rofi.c:main:1000 Setup late Display (process:14942): Timings\-DEBUG: 13:47:39.367: 0.032080 (0.000062): ../source/rofi.c:main:1003 Theme setup (process:14942): Timings\-DEBUG: 13:47:39.367: 0.032109 (0.000029): ../source/rofi.c:startup:668 Startup (process:14942): Timings\-DEBUG: 13:47:39.367: 0.032121 (0.000012): ../source/rofi.c:startup:677 Grab keyboard (process:14942): Timings\-DEBUG: 13:47:39.368: 0.032214 (0.000093): ../source/view.c:__create_window:701 xcb create window (process:14942): Timings\-DEBUG: 13:47:39.368: 0.032235 (0.000021): ../source/view.c:__create_window:705 xcb create gc (process:14942): Timings\-DEBUG: 13:47:39.368: 0.033136 (0.000901): ../source/view.c:__create_window:714 create cairo surface (process:14942): Timings\-DEBUG: 13:47:39.369: 0.033286 (0.000150): ../source/view.c:__create_window:723 pango cairo font setup (process:14942): Timings\-DEBUG: 13:47:39.369: 0.033351 (0.000065): ../source/view.c:__create_window:761 configure font (process:14942): Timings\-DEBUG: 13:47:39.381: 0.045896 (0.012545): ../source/view.c:__create_window:769 textbox setup (process:14942): Timings\-DEBUG: 13:47:39.381: 0.045944 (0.000048): ../source/view.c:__create_window:781 setup window attributes (process:14942): Timings\-DEBUG: 13:47:39.381: 0.045955 (0.000011): ../source/view.c:__create_window:791 setup window fullscreen (process:14942): Timings\-DEBUG: 13:47:39.381: 0.045966 (0.000011): ../source/view.c:__create_window:797 setup window name and class (process:14942): Timings\-DEBUG: 13:47:39.381: 0.045974 (0.000008): ../source/view.c:__create_window:808 setup startup notification (process:14942): Timings\-DEBUG: 13:47:39.381: 0.045981 (0.000007): ../source/view.c:__create_window:810 done (process:14942): Timings\-DEBUG: 13:47:39.381: 0.045992 (0.000011): ../source/rofi.c:startup:679 Create Window (process:14942): Timings\-DEBUG: 13:47:39.381: 0.045999 (0.000007): ../source/rofi.c:startup:681 Parse ABE (process:14942): Timings\-DEBUG: 13:47:39.381: 0.046113 (0.000114): ../source/rofi.c:startup:684 Config sanity check (process:14942): Timings\-DEBUG: 13:47:39.384: 0.048229 (0.002116): ../source/dialogs/run.c:get_apps:216 start (process:14942): Timings\-DEBUG: 13:47:39.390: 0.054626 (0.006397): ../source/dialogs/run.c:get_apps:336 stop (process:14942): Timings\-DEBUG: 13:47:39.390: 0.054781 (0.000155): ../source/dialogs/drun.c:get_apps:634 Get Desktop apps (start) (process:14942): Timings\-DEBUG: 13:47:39.391: 0.055264 (0.000483): ../source/dialogs/drun.c:get_apps:641 Get Desktop apps (user dir) (process:14942): Timings\-DEBUG: 13:47:39.418: 0.082884 (0.027620): ../source/dialogs/drun.c:get_apps:659 Get Desktop apps (system dirs) (process:14942): Timings\-DEBUG: 13:47:39.418: 0.082944 (0.000060): ../source/dialogs/drun.c:get_apps_history:597 Start drun history (process:14942): Timings\-DEBUG: 13:47:39.418: 0.082977 (0.000033): ../source/dialogs/drun.c:get_apps_history:617 Stop drun history (process:14942): Timings\-DEBUG: 13:47:39.419: 0.083638 (0.000661): ../source/dialogs/drun.c:get_apps:664 Sorting done. (process:14942): Timings\-DEBUG: 13:47:39.419: 0.083685 (0.000047): ../source/view.c:rofi_view_create:1759 (process:14942): Timings\-DEBUG: 13:47:39.419: 0.083700 (0.000015): ../source/view.c:rofi_view_create:1783 Startup notification (process:14942): Timings\-DEBUG: 13:47:39.419: 0.083711 (0.000011): ../source/view.c:rofi_view_create:1786 Get active monitor (process:14942): Timings\-DEBUG: 13:47:39.420: 0.084693 (0.000982): ../source/view.c:rofi_view_refilter:1028 Filter start (process:14942): Timings\-DEBUG: 13:47:39.421: 0.085992 (0.001299): ../source/view.c:rofi_view_refilter:1132 Filter done (process:14942): Timings\-DEBUG: 13:47:39.421: 0.086090 (0.000098): ../source/view.c:rofi_view_update:982 (process:14942): Timings\-DEBUG: 13:47:39.421: 0.086123 (0.000033): ../source/view.c:rofi_view_update:1002 Background (process:14942): Timings\-DEBUG: 13:47:39.428: 0.092864 (0.006741): ../source/view.c:rofi_view_update:1008 widgets .EE .SH "دامنه‌های اشکال‌زدایی (Debug domains)" برای اشکال‌زدایی بیشتر افزونه، می‌توانید ردیابی با اطلاعات اشکال‌زدایی (فراوان) دریافت کنید. این خروجی اشکال‌زدایی می‌تواند برای بخش‌های مختلفی در rofi با استفاده از چارچوب اشکال‌زدایی glib فعال شود. دامنه‌های اشکال‌زدایی با تنظیم متغیر محیطی G_MESSAGES_DEBUG فعال می‌گردند. در زمان نگارش این صفحه، دامنه‌های اشکال‌زدایی زیر وجود دارند: .IP \[bu] 2 all: نمایش اطلاعات اشکال‌زدایی از تمام دامنه‌ها. .IP \[bu] 2 X11Helper: توابع کمکی X11. .IP \[bu] 2 View: توابع نمای پنجره اصلی. .IP \[bu] 2 Widgets.Box: ویجت جعبه (Box). .IP \[bu] 2 Modes.DMenu: حالت dmenu. .IP \[bu] 2 Modes.Run: حالت run. .IP \[bu] 2 Modes.DRun: حالت اجرای فایل‌های دسکتاپ (desktop file). .IP \[bu] 2 Modes.Window: حالت پنجره (window). .IP \[bu] 2 Modes.Script: حالت اسکریپت. .IP \[bu] 2 Modes.Combi: حالت ترکیبی (combi). .IP \[bu] 2 Modes.Ssh: حالت ssh. .IP \[bu] 2 Rofi: برنامه اصلی. .IP \[bu] 2 Timings: دریافت خروجی زمان‌بندی. .IP \[bu] 2 Theme: خروجی اشکال‌زدایی موتور پوسته (هشدار: حجم خروجی بالا است). .IP \[bu] 2 Widgets.Icon: ویجت آیکون. .IP \[bu] 2 Widgets.Box: ویجت جعبه. .IP \[bu] 2 Widgets.Container: ویجت دربرگیرنده (Container). .IP \[bu] 2 Widgets.Window: ویجت پنجره. .IP \[bu] 2 Helpers.IconFetcher: اطلاعات مربوط به یافتن و واکشی آیکون‌ها. .PP برای فهرست کامل \f[B]man rofi\f[R] را ببینید. .PP مثال: \f[B]G_MESSAGES_DEBUG=Dialogs.DRun rofi \-show drun\f[R] برای دریافت خروجی اختصاصی از کادر گفتگوی اجرای فایل دسکتاپ. .PP برای تغییر مسیر خروجی اشکال‌زدایی به یک فایل (\f[B]\[ti]/rofi.log\f[R]) اضافه کنید: .IP .EX rofi \-show drun \-log \[ti]/rofi.log .EE .PP مشخص کردن فایل گزارش به طور خودکار تمام دامنه‌های لاگ را فعال می‌کند. این مورد هنگام راه‌اندازی rofi از یک مدیر پنجره می‌تواند سودمند باشد. .SH "ایجاد ردگیری به عقب (Creating a backtrace)" ابتدا اطمینان حاصل کنید که \f[B]rofi\f[R] را با نمادهای اشکال‌زدایی کامپایل کرده‌اید: .IP .EX make CFLAGS=\[dq]\-O0 \-g3\[dq] clean rofi .EE .PP دریافت ردگیری به عقب (backtrace) با استفاده از GDB چندان راحت نیست، زیرا اگر rofi گیر کند، صفحه‌کلید و ماوس را به انحصار خود درمی‌آورد. بنابراین اگر درون GDB فروپاشد، کنترل سیستم قفل می‌شود. بهترین راهکار فعال‌سازی فایل گزارش هسته (core file) است. (دستور ulimit \-c unlimited در bash) و سپس ایجاد شرایط فروپاشی rofi. پس از آن می‌توانید فایل هسته (core) را در GDB بارگذاری نمایید: .IP .EX gdb rofi core .EE .PP سپس درون gdb تایپ کنید: .IP .EX thread apply all bt .EE .PP خروجی ردگیری هنگام گزارش فروپاشی‌ها بسیار کارآمد است. .PP برخی توزیع‌ها دارای \f[B]systemd\-coredump\f[R] هستند؛ از این طریق می‌توانید به آسانی از طریق \f[B]coredumpctl\f[R] یک backtrace دریافت کنید. .SH "همچنین ببینید (SEE ALSO)" rofi\-sensible\-terminal(1), dmenu(1), rofi\-theme(5), rofi\-script(5), rofi\-keys(5), rofi\-theme\-selector(1) .SH "نویسنده (AUTHOR)" .IP \[bu] 2 Qball Cow \c .MT qball@blame.services .ME \c