CrashDetect 插件技术文档
本文档将详细介绍如何安装、使用 CrashDetect 插件,以及如何使用其 API。CrashDetect 是一款用于帮助调试运行时错误和服务器崩溃的工具,它能够在发生错误时提供详细的错误描述、堆栈跟踪和其他有用的信息,以便快速定位和解决问题。
1. 安装指南
1.1 下载二进制包
从 GitHub 的 Releases 页面下载二进制包,或者从源代码自行构建(见下面的“从源代码构建”)。
1.2 安装插件
- 解压下载的二进制包,将
crashdetect.so(Linux)或crashdetect.dll(Windows)复制到<服务器>/plugins/目录下。 - 在
server.cfg文件的plugins行中添加crashdetect(Windows)或crashdetect.so(Linux)。
二进制包中包含一个头文件 crashdetect.inc,其中包含一些可能非常有用的辅助函数。但请注意,您不需要包含它即可使用 CrashDetect。
2. 使用说明
除了安装插件外,您无需进行任何其他操作即可开始接收到错误报告。默认情况下,所有错误都会保存在 server_log.txt 文件中,但这可以通过配置进行更改(见下面的“配置”)。
为了获得更好的调试体验,请确保您的脚本在启用调试信息的情况下编译。这样做将使堆栈跟踪中显示更多信息,例如函数名、参数名和值、源文件名和行号。
请注意,使用此插件时,您的代码将运行得更慢,因为检测错误并提供准确错误信息的相关开销。通常这在开发过程中是可以接受的,但不建议在具有许多玩家的生产(实时)服务器上加载 CrashDetect。
3. 项目API使用文档
以下是 crashdetect.inc 中定义的一些函数,它们为访问插件信息提供了更友好的 API。
bool:IsCrashDetectPresent()- 检查 CrashDetect 插件是否已加载。SetCrashDetectLongCallTime(us_time)- 设置长时间函数调用的警告阈值。GetCrashDetectLongCallTime()- 获取长时间函数调用的警告阈值。DisableCrashDetectLongCall()- 禁用长时间函数调用警告。EnableCrashDetectLongCall()- 启用长时间函数调用警告。ResetCrashDetectLongCallTime()- 将长时间函数调用阈值重置为默认值(从server.cfg中获取)。RestartCrashDetectLongCall()- 重置长时间函数调用的计时器。bool:IsCrashDetectLongCallEnabled()- 检查长时间函数调用检测是否已启用。bool:HasCrashDetectLongCall()- 检查当前版本的 CrashDetect 是否支持此功能。GetCrashDetectDefaultTime()- 获取默认的长时间函数调用阈值。DisableCrashDetectAddr0()- 在此模式下禁用对地址零的写入检测。EnableCrashDetectAddr0()- 在此模式下启用对地址零的写入检测。bool:IsCrashDetectAddr0Enabled()- 检查错误是否已启用。bool:HasCrashDetectAddr0()- 检查当前版本的 CrashDetect 是否支持此功能。
4. 项目安装方式
4.1 从源代码构建
如果要从源代码构建 CrashDetect,例如修复错误并提交 pull request,只需按照以下步骤操作。您需要安装 C++ 编译器和 CMake。
Linux
安装 gcc 和 g++,make 和 cmake。在 Ubuntu 上,您可以使用以下命令:
sudo apt-get install gcc g++ make cmake
如果您在使用 64 位系统,您需要安装额外的包来编译 32 位程序:
sudo apt-get install gcc-multilib g++-multilib
对于 CentOS:
yum install gcc gcc-c++ cmake28 make
现在您可以构建 CrashDetect:
cd crashdetect
mkdir build && cd build
cmake ../ -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=OFF
make
Windows
您需要安装 CMake 和 Visual Studio(Express 版本即可)。之后,可以从命令行运行 cmake:
cd crashdetect
mkdir build && cd build
path/to/cmake.exe ../ -DBUILD_TESTING=OFF
或者从 cmake-gui 中执行相同的操作。这将在构建文件夹中生成一个 Visual Studio 项目。
要构建项目:
path/to/cmake.exe --build . --config Release
您也可以从 Visual Studio 中构建项目:打开 build/crashdetect.sln 并选择“构建”菜单中的“构建解决方案”(或直接按 F7)。
本文档在遵循 2-clause BSD 许可证的情况下提供。
atomcodeClaude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed. Get StartedRust0150- DDeepSeek-V4-ProDeepSeek-V4-Pro(总参数 1.6 万亿,激活 49B)面向复杂推理和高级编程任务,在代码竞赛、数学推理、Agent 工作流等场景表现优异,性能接近国际前沿闭源模型。Python00
LongCat-Video-Avatar-1.5最新开源LongCat-Video-Avatar 1.5 版本,这是一款经过升级的开源框架,专注于音频驱动人物视频生成的极致实证优化与生产级就绪能力。该版本在 LongCat-Video 基础模型之上构建,可生成高度稳定的商用级虚拟人视频,支持音频-文本转视频(AT2V)、音频-文本-图像转视频(ATI2V)以及视频续播等原生任务,并能无缝兼容单流与多流音频输入。00
auto-devAutoDev 是一个 AI 驱动的辅助编程插件。AutoDev 支持一键生成测试、代码、提交信息等,还能够与您的需求管理系统(例如Jira、Trello、Github Issue 等)直接对接。 在IDE 中,您只需简单点击,AutoDev 会根据您的需求自动为您生成代码。Kotlin03
Intern-S2-PreviewIntern-S2-Preview,这是一款高效的350亿参数科学多模态基础模型。除了常规的参数与数据规模扩展外,Intern-S2-Preview探索了任务扩展:通过提升科学任务的难度、多样性与覆盖范围,进一步释放模型能力。Python00
skillhubopenJiuwen 生态的 Skill 托管与分发开源方案,支持自建与可选 ClawHub 兼容。Python0111