报告 Bug

报告 Bug 前需要检查什么、如何收集日志和诊断信息,以及 issue 中应包含哪些内容。

一份好的 Bug 报告能帮助开发者迅速找到原因。本页说明需要先检查什么、如何收集日志,以及在 issue 中写些什么。

在这里报告 Bug:

关于如何使用 Throne 桌面版的问题,请使用 GitHub Discussions 的 Q&A 分类,而不是提交 issue。

报告之前

  1. 通过 工具(Tools)→ 检查更新(Check For Update)或从下载页面更新到最新版本。许多 Bug 已经修复。
  2. 在现有 issue(包括未关闭和已关闭的)中搜索你的错误信息。
  3. 阅读常见问题和故障排除。
  4. 尝试全新配置:退出 Throne,重命名 config 文件夹,启动 Throne,然后只设置重现问题所需的内容。在报告中写明问题在全新配置下是否也会出现。要恢复原状,请退出 Throne,删除新的 config 文件夹,再把旧文件夹改回原名。
  5. 如果你是通过 WinGet、Scoop、AUR 或 Nix 安装的 Throne,也请测试官方版本。开发者不为这些软件包提供支持。
  6. 如果只有一个服务器无法使用,请在其他应用中测试它。如果在其他应用中也失败,请联系你的服务商。

收集日志

桌面版

Throne 会在主窗口底部的 日志(Logs)标签页中显示日志,并将相同的内容写入配置文件夹中的 logs/throne.log。配置文件夹可以通过 设置(Settings)→ 打开配置文件夹(Open Config Folder)打开。

要记录详细日志:

  1. 打开 设置 → 基本设置(Basic Settings)→ 日志(Logging)。
  2. 将 Sing-box 日志级别(Sing-box Log level)设为 debug。对于 VLESS (Xray) 及其他 Xray 配置档,还需将 Xray 日志级别(Xray Log level)设为 debug。
  3. 调高 最多日志行数(Max log lines),例如设为 2000。每秒超过此数量的核心日志行会被 Throne 丢弃,并且 日志 标签页只保留这么多行。
  4. 点击 确定(OK),然后通过 程序(Program)→ 重启程序(Restart Program)重启 Throne。
  5. 重现问题。
  6. 将 logs/throne.log 附加到 issue 中。你也可以点击 日志 标签页,按 Ctrl+A,再按 Ctrl+C,然后粘贴文本。
  7. 完成后,将 sing-box 日志级别改回 info,将 Xray 日志级别改回 warning。

需要了解的几点:

  • 每次启动 Throne 时,throne.log 都会重新开始记录,因此请在重启 Throne 之前复制它。当它超过 4 MB 时,较早的部分会保存为 throne.log.1 到 throne.log.3。
  • throne.log 的前几行会显示你的 Throne 版本、Qt 版本、操作系统和 CPU 架构。
  • 崩溃后,下次启动时会将崩溃会话的日志保存为 logs/crashed-<date>-<time>.log,并在日志中写入“上次 Throne 没有正常干净的关闭”(Throne did not shut down cleanly last time)。最近五次崩溃的日志会被保留。
  • 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 占用过高的问题,开发者可能会要求你提供诊断文件。它会记录核心在 30 秒内的运行情况。

  1. 让 Throne 进入出现问题的状态,例如启动配置档并等待它卡住。不要重启 Throne。
  2. 打开 设置 → 基本设置 → 诊断(Diagnostics)。
  3. 勾选开发者要求的选项:锁竞争(Lock contention)、执行追踪 (大文件)(Execution trace (larger file))或 包含 Throne 日志(Include Throne logs)。
  4. 点击 启动(Start),然后等待 30 秒。
  5. 点击 在文件夹中显示(Show in folder),附上 throne-profile-<date>-<time>.zip 文件。Throne 会将这些文件保存在 config 文件夹旁边的 diagnostics 文件夹中,而不是 config 文件夹内部;参见数据文件夹。

启动 只有在核心运行时才可用。录制内容不包含关于你的配置的信息,但会列出你的 Throne 版本、操作系统和少量设置,例如 TUN 模式是否开启,以及正在运行的配置档的类型。包含 Throne 日志 会加入你的日志,而日志中包含你访问过的域名和服务器地址。

应包含的内容

使用 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 软件源)。
模式 Tun 模式(Tun Mode)、系统代理(System Proxy)或两者都开启。如果使用 TUN 模式,还需提供 Tun 设置(Tun Settings)中的 Stack。
配置档类型 配置档列表中的 类型(Type)列,例如 VLESS (Xray)。不要提供链接。
重现步骤 从头开始展示问题的编号步骤。
预期结果与实际结果 你预期会发生什么,以及实际发生了什么。请以文本形式复制错误信息。
日志 调试日志、崩溃文件或诊断文件,如上文所述。

对于路由问题,请选择 Routing Issue 模板。它会要求你提供路由配置档:打开 设置 → 路由设置(Routing Settings)→ 路由(Route),选中该配置档并点击 导出(Export)。这会复制一条 throne://route/… 链接。发布之前,请检查其中是否包含私有域名或地址。

如果开发者要求提供你的配置,请右键点击该配置档 → 分享(Share)→ 导出 Sing-box 配置(Export Sing-box config)。发布之前,请将密码、UUID、密钥和服务器地址替换为 xxxx。