گزارش باگ

پیش از گزارش باگ چه چیزهایی را بررسی کنید، گزارش‌های برنامه و داده‌های تشخیصی را چگونه جمع‌آوری کنید و چه چیزهایی را در issue بنویسید.

یک گزارش باگ خوب به توسعه‌دهندگان کمک می‌کند علت را سریع پیدا کنند. این صفحه توضیح می‌دهد ابتدا چه چیزهایی را بررسی کنید، گزارش‌های برنامه را چگونه جمع‌آوری کنید و در issue چه بنویسید.

باگ‌ها را اینجا گزارش دهید:

برای پرسش دربارهٔ نحوهٔ استفاده از Throne دسکتاپ، به‌جای issue از دستهٔ Q&A در GitHub Discussions استفاده کنید.

پیش از گزارش

  1. با Tools → Check For Update یا از صفحهٔ دانلود به آخرین نسخه به‌روزرسانی کنید. بسیاری از باگ‌ها پیش‌تر برطرف شده‌اند.
  2. issueهای موجود، چه باز و چه بسته، را برای پیام خطای خود جست‌وجو کنید.
  3. پرسش‌های متداول و عیب‌یابی را بخوانید.
  4. یک پیکربندی تازه را امتحان کنید: از Throne خارج شوید، نام پوشهٔ config را تغییر دهید، Throne را اجرا کنید و فقط چیزهایی را تنظیم کنید که برای نشان دادن مشکل لازم است. در گزارش بنویسید که آیا مشکل در آنجا هم رخ می‌دهد یا نه. برای برگشتن، از Throne خارج شوید، پوشهٔ config جدید را حذف کنید و نام پوشهٔ قدیمی را به حالت قبل برگردانید.
  5. اگر Throne را از WinGet، Scoop، AUR یا Nix نصب کرده‌اید، بیلد رسمی را هم امتحان کنید. توسعه‌دهندگان از این بسته‌ها پشتیبانی نمی‌کنند.
  6. اگر فقط یک سرور کار نمی‌کند، آن را در برنامهٔ دیگری امتحان کنید. اگر آنجا هم کار نکرد، با ارائه‌دهندهٔ خود تماس بگیرید.

جمع‌آوری گزارش‌ها

دسکتاپ

Throne گزارش‌های خود را در زبانهٔ گزارش‌ها (Logs) در پایین پنجرهٔ اصلی نشان می‌دهد و همان خطوط را در فایل logs/throne.log در پوشهٔ پیکربندی می‌نویسد؛ این پوشه با تنظیمات (Settings) ← پوشه Config باز شود (Open Config Folder) باز می‌شود.

برای ثبت یک گزارش مفصل:

  1. تنظیمات (Settings) ← تنظیمات پایه (Basic Settings) ← Logging را باز کنید.
  2. Sing-box Log level را روی debug بگذارید. برای VLESS (Xray) و دیگر نمایه‌های Xray، Xray Log level را هم روی debug بگذارید.
  3. مقدار حداکثر خطوط فایل لاگ (Max log lines) را بیشتر کنید، برای مثال به 2000. Throne خطوط گزارش هسته را که از این تعداد در ثانیه بیشتر باشند دور می‌ریزد، و زبانهٔ گزارش‌ها فقط همین تعداد خط را نگه می‌دارد.
  4. روی تایید (OK) کلیک کنید، سپس Throne را با برنامه (Program) ← اجرا دوباره برنامه (Restart Program) دوباره راه‌اندازی کنید.
  5. مشکل را دوباره ایجاد کنید.
  6. فایل logs/throne.log را به issue پیوست کنید. همچنین می‌توانید در زبانهٔ گزارش‌ها کلیک کنید، Ctrl+A و سپس Ctrl+C را فشار دهید و متن را جای‌گذاری کنید.
  7. وقتی کارتان تمام شد، سطح گزارش sing-box را به info و سطح گزارش Xray را به warning برگردانید.

خوب است بدانید:

  • throne.log هر بار که Throne اجرا می‌شود از نو شروع می‌شود، بنابراین پیش از راه‌اندازی دوبارهٔ Throne از آن کپی بگیرید. وقتی حجم آن از 4 MB بیشتر شود، بخش‌های قدیمی‌تر به‌صورت throne.log.1 تا throne.log.3 نگه داشته می‌شوند.
  • خطوط اول throne.log نسخهٔ Throne، نسخهٔ Qt، سیستم‌عامل و معماری CPU شما را نشان می‌دهند.
  • پس از یک کرش، اجرای بعدی گزارش جلسه‌ای را که کرش کرده به‌صورت logs/crashed-<date>-<time>.log نگه می‌دارد و پیام «Throne did not shut down cleanly last time» (Throne دفعهٔ قبل به‌درستی بسته نشد) را در گزارش می‌نویسد. پنج گزارش کرش آخر نگه داشته می‌شوند.
  • Windows: وقتی Throne کرش می‌کند، پیام «Throne crashed» (Throne از کار افتاد) را نشان می‌دهد و گزارشی در پوشهٔ crashes ذخیره می‌کند: یک فایل .txt و یک فایل .dmp با نام Throne_<version>_<architecture>_<date>-<time>. فایل .txt را پیوست کنید و اگر می‌توانید، فایل .dmp را هم.

Android

  1. منوی کناری را باز کنید و روی آمار و اطلاعات (Logs) بزنید.
  2. Hide sensitive data را روشن نگه دارید. این گزینه به‌طور پیش‌فرض روشن است و نشانی‌ها (URL)، اطلاعات ورود، UUIDها، کلیدها، نشانی‌های IP عمومی و نام شبکه‌های Wi-Fi را پنهان می‌کند. برای اینکه دامنه‌هایی که بازدید کرده‌اید هم پنهان شوند، Hide destinations را روشن کنید.
  3. روی Share logs یا Save logs… بزنید و فایل را به issue پیوست کنید.

پس از کرش، برنامه یک گزارش پاک‌سازی‌شده پیشنهاد می‌کند. عیب‌یابی Android را ببینید.

داده‌های تشخیصی

برای قفل شدن برنامه، هنگ کردن و مصرف بالای CPU، توسعه‌دهندگان ممکن است یک فایل Diagnostics از شما بخواهند. این فایل کارهایی را که هسته در طول 30 ثانیه انجام می‌دهد ثبت می‌کند.

  1. Throne را به وضعیتی برسانید که مشکل در آن رخ می‌دهد؛ برای مثال نمایه را اجرا کنید و صبر کنید تا هنگ کند. Throne را دوباره راه‌اندازی نکنید.
  2. تنظیمات (Settings) ← تنظیمات پایه (Basic Settings) ← Diagnostics را باز کنید.
  3. گزینه‌هایی را که توسعه‌دهنده خواسته است تیک بزنید: Lock contention، Execution trace (larger file) یا Include Throne logs.
  4. روی Start کلیک کنید و 30 ثانیه صبر کنید.
  5. روی Show in folder کلیک کنید و فایل throne-profile-<date>-<time>.zip را پیوست کنید. Throne این فایل‌ها را در پوشهٔ diagnostics در کنار پوشهٔ config ذخیره می‌کند، نه داخل آن؛ پوشهٔ داده‌ها را ببینید.

Start فقط وقتی هسته در حال اجراست کار می‌کند. این ضبط هیچ اطلاعاتی دربارهٔ پیکربندی‌های شما ندارد، اما نسخهٔ Throne، سیستم‌عامل و چند تنظیم را فهرست می‌کند، مانند اینکه حالت TUN روشن است یا نه و نوع نمایهٔ در حال اجرا چیست. Include Throne logs گزارش‌های شما را هم اضافه می‌کند که شامل دامنه‌های بازدیدشده و نشانی سرورها هستند.

چه چیزهایی را بنویسید

از الگوی issue استفاده کنید و همهٔ فیلدها را پر کنید:

مورد کجا پیدا کنید
نسخهٔ Throne دسکتاپ: عنوان پنجره، برای مثال Throne 1.3.1، یا خطوط اول throne.log. Android: درباره برنامه (About).
سیستم‌عامل و نسخهٔ آن برای مثال Windows 11 24H2، Ubuntu 24.04، macOS 15 یا Android 14.
نوع نصب ZIP، نصب‌کنندهٔ Windows، .deb، .rpm، اسکریپت نصب Linux، یا یک مدیر بسته (WinGet، Scoop، AUR، Nix، مخزن RPM).
حالت حالتvpn (Tun Mode)، پروکسی سیستمی (System Proxy) یا هر دو. برای حالت TUN، مقدار Stack در تنظیمات vpn (Tun Settings) را هم بنویسید.
نوع نمایه ستون نوع (Type) در فهرست نمایه‌ها، برای مثال VLESS (Xray). نه خود لینک.
مراحل بازتولید مراحل شماره‌گذاری‌شده‌ای که مشکل را از ابتدا نشان می‌دهند.
نتیجهٔ مورد انتظار و نتیجهٔ واقعی چه انتظاری داشتید و به‌جای آن چه اتفاقی افتاد. پیام‌های خطا را به‌صورت متن کپی کنید.
گزارش‌ها یک گزارش debug، فایل‌های کرش یا یک فایل Diagnostics، همان‌طور که در بالا توضیح داده شد.

برای مشکلات مسیریابی، الگوی Routing Issue را انتخاب کنید. این الگو نمایهٔ مسیریابی شما را می‌خواهد: تنظیمات (Settings) ← تنظیمات مسیریابی (Routing Settings) ← مسیر (Route) را باز کنید، نمایه را انتخاب کنید و روی استخراج (Export) کلیک کنید. با این کار یک لینک throne://route/… کپی می‌شود. پیش از انتشار، آن را از نظر دامنه‌ها یا نشانی‌های خصوصی بررسی کنید.

اگر توسعه‌دهنده‌ای پیکربندی شما را خواست، روی نمایه راست‌کلیک کنید ← اشتراک گذاری (Share) ← Export Sing-box config. پیش از انتشار، گذرواژه‌ها، UUIDها، کلیدها و نشانی سرورها را با xxxx جایگزین کنید.