报告 Bug
报告 Bug 前需要检查什么、如何收集日志和诊断信息,以及 issue 中应包含哪些内容。
一份好的 Bug 报告能帮助开发者迅速找到原因。本页说明需要先检查什么、如何收集日志,以及在 issue 中写些什么。
在这里报告 Bug:
- Throne 桌面版:github.com/throneproj/Throne/issues
- Throne for Android:github.com/throneproj/ThroneForAndroid/issues
关于如何使用 Throne 桌面版的问题,请使用 GitHub Discussions 的 Q&A 分类,而不是提交 issue。
报告之前
- 通过
工具(Tools)→检查更新(Check For Update)或从下载页面更新到最新版本。许多 Bug 已经修复。 - 在现有 issue(包括未关闭和已关闭的)中搜索你的错误信息。
- 阅读常见问题和故障排除。
- 尝试全新配置:退出 Throne,重命名
config文件夹,启动 Throne,然后只设置重现问题所需的内容。在报告中写明问题在全新配置下是否也会出现。要恢复原状,请退出 Throne,删除新的config文件夹,再把旧文件夹改回原名。 - 如果你是通过 WinGet、Scoop、AUR 或 Nix 安装的 Throne,也请测试官方版本。开发者不为这些软件包提供支持。
- 如果只有一个服务器无法使用,请在其他应用中测试它。如果在其他应用中也失败,请联系你的服务商。
收集日志
桌面版
Throne 会在主窗口底部的 日志(Logs)标签页中显示日志,并将相同的内容写入配置文件夹中的 logs/throne.log。配置文件夹可以通过 设置(Settings)→ 打开配置文件夹(Open Config Folder)打开。
要记录详细日志:
- 打开
设置→基本设置(Basic Settings)→日志(Logging)。 - 将
Sing-box 日志级别(Sing-box Log level)设为debug。对于VLESS (Xray)及其他 Xray 配置档,还需将Xray 日志级别(Xray Log level)设为debug。 - 调高
最多日志行数(Max log lines),例如设为2000。每秒超过此数量的核心日志行会被 Throne 丢弃,并且日志标签页只保留这么多行。 - 点击
确定(OK),然后通过程序(Program)→重启程序(Restart Program)重启 Throne。 - 重现问题。
- 将
logs/throne.log附加到 issue 中。你也可以点击日志标签页,按Ctrl+A,再按Ctrl+C,然后粘贴文本。 - 完成后,将 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
- 打开侧边菜单,点按
日志(Logs)。 - 保持
Hide sensitive data开启。它默认开启,会隐藏 URL、凭据、UUID、密钥、公网 IP 地址和 Wi-Fi 名称。开启Hide destinations可以同时隐藏你访问过的域名。 - 点按
Share logs或Save logs…,然后将文件附加到 issue 中。
崩溃后,应用会提供一份经过清理的日志。参见 Android 故障排除。
诊断
对于卡死、无响应和 CPU 占用过高的问题,开发者可能会要求你提供诊断文件。它会记录核心在 30 秒内的运行情况。
- 让 Throne 进入出现问题的状态,例如启动配置档并等待它卡住。不要重启 Throne。
- 打开
设置→基本设置→诊断(Diagnostics)。 - 勾选开发者要求的选项:
锁竞争(Lock contention)、执行追踪 (大文件)(Execution trace (larger file))或包含 Throne 日志(Include Throne logs)。 - 点击
启动(Start),然后等待 30 秒。 - 点击
在文件夹中显示(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。