跳到主要内容
版本:1.0.0

守护进程与崩溃恢复

ToolBank 内置双重守护机制,即使遇到意外崩溃也能帮您保全工程、找回现场,让工作更安心。

为什么需要守护进程?​

在长时间的可视化编辑、程序调试、产线运行中,我们都遇到过这些尴尬:

  • 😫 编辑了半小时的流程,软件突然无响应,工程没保存
  • 😫 产线正在运行的 ToolBank 因异常退出,现场人员不知道重启入口
  • 😫 出了 Bug,开发者也看不到现场数据,只能靠描述猜问题

ToolBank 的「守护进程 + 主程序内置校验」混合架构,正是为了解决这些问题而生。


混合架构:双重保障​

1️⃣ 守护进程(外层守护)​

  • 双击桌面上的 Tool Bank 图标启动,它是整个软件的入口
  • 负责拉起主程序(ToolBank.App.exe)并监控它的运行状态
  • 主程序异常退出时,守护进程会立即:
    • ✅ 自动保存当时的工程快照
    • ✅ 生成 minidump 转储文件 + 系统信息快照
    • ✅ 打包全部崩溃信息到本地文件夹(可一键发给开发者排查)

2️⃣ 主程序内置校验(内层兜底)​

为了防止绕过守护进程直接启动主程序、跳过 License 检查,ToolBank 同时在主程序内部内置了两套校验:

校验项作用
启动握手校验主程序启动时,必须先与守护进程完成握手。如果检测到是直接双击 ToolBank.App.exe 启动,会立即提示"请通过 Tool Bank.exe 启动"并安全退出。
License 校验主程序内置完整的 4 级 License 状态机,每秒自行刷新剩余时间与倒计时,不依赖守护进程转发。即使守护进程与主程序通信中断,License 检查也不会失效。

💡 总结:外层守护进程负责「崩溃捕获 + 工程保全」,内层主程序负责「License 检查 + 防绕过」,两者结合形成完整的防护体系。


崩溃时会保存什么?​

一旦主程序发生异常退出,守护进程会在您的用户目录下生成崩溃信息包:

C:\Users\您的用户名\AppData\Local\ToolBank\CrashReports\
└── 2026-08-02_15-30-42\ ← 崩溃发生时间
├── mini_20260802_153042.dmp ← 进程转储文件(开发者调试用)
├── system_info.txt ← 当时的 OS / CPU / 内存 / 显卡信息
├── log_snapshot\ ← 崩溃前的日志快照
├── project_backup\ ← 崩溃瞬间的工程文件备份(.tbcode / .tblayout)
└── report.json ← 崩溃描述(版本、时间、异常码等)

怎么把问题反馈给开发者?​

  1. 找到对应的时间戳文件夹,整个打包压缩(ZIP / 7z)
  2. 发送给技术支持 / 开发者邮箱 support@toolbank.com
  3. 简要描述您崩溃前操作了什么(如:刚添加了 YOLO 算子、运行到第 3 个步骤)

开发者可以直接打开 .dmp 文件还原崩溃现场,99% 的崩溃都可以通过这些信息快速定位。


「安全启动」机制​

ToolBank 守护进程与主程序之间通过双向心跳保持通信:

  • 守护进程 → 主程序:确认主程序未卡死
  • 主程序 → 守护进程:确认守护进程未退出

一旦其中一方连续 30 秒没有响应,另一方会立即:

  1. 通知用户"检测到异常,正在保存现场…"
  2. 自动保存当前工程快照
  3. 正常退出或重启

这意味着:

  • 🛡️ 不会出现**"后台主程序卡死,用户却不知道"**的情况
  • 🛡️ 不会出现**"守护进程挂了,License 检查失效"**的情况
  • 🛡️ 每次退出都会把现场保存好,下次启动可选择恢复上一次的工程

启动流程(您只需双击一次)​

💡 您只需要做一件事:永远双击桌面上的 Tool Bank 图标即可。不要直接双击安装目录里的 ToolBank.App.exe,否则会被启动握手校验拦截并自动退出。


常见问题​

为什么不能直接双击 ToolBank.App.exe 启动?

为了确保:

  1. License 检查绝不被绕过(主程序内置 + 守护进程双重校验)
  2. 每次崩溃都能被守护进程捕获并保全现场

如果直接启动 ToolBank.App.exe,主程序会检测到缺少守护进程握手信号,立即弹窗提示并在 15 秒内安全退出。请通过桌面上的 Tool Bank 图标启动。

崩溃后我的工程文件会丢吗?

不会。 ToolBank 有两层保全:

  1. 编辑时自动保存:每 3 分钟自动保存一次当前工程
  2. 崩溃时守护进程强制保存:即使主程序异常退出,守护进程也会把最后一刻的工程快照写入 CrashReports\project_backup\ 目录

下次启动时会自动询问"是否恢复上一次的工程?",一键回到崩溃前的状态。

崩溃日志会上传到云端吗?

不会。 所有崩溃信息(dmp、日志、系统信息)都只保存在您的本地硬盘上,绝对不会自动上传。 只有在您主动打包并发送给开发者时,这些信息才会被用于排错。您可以在打包前用文本编辑器打开 system_info.txt 和日志查看内容。

如果守护进程自己也崩溃了怎么办?

ToolBank 主程序内置心跳检测。如果连续 30 秒检测不到守护进程的心跳,主程序会:

  1. 弹窗提示"检测到守护进程异常"
  2. 立即自动保存当前工程
  3. 正常退出,确保现场完好

下次双击 Tool Bank 重新启动即可。

我是企业用户,崩溃信息可以由自己的 IT 部门统一收集吗?

可以。崩溃信息默认位于: %LOCALAPPDATA%\ToolBank\CrashReports\

企业用户可通过组策略 / 桌面管理工具将此目录加入自动收集清单,由您自己的 IT 团队统一排查,无需回传开发者。