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 许可证的情况下提供。
鸿蒙开发工具大赶集
本仓将收集和展示鸿蒙开发工具,欢迎大家踊跃投稿。通过pr附上您的工具介绍和使用指南,并加上工具对应的链接,通过的工具将会成功上架到我们社区。012hertz
Go 微服务 HTTP 框架,具有高易用性、高性能、高扩展性等特点。Go01每日精选项目
🔥🔥 每日精选已经升级为:【行业动态】,快去首页看看吧,后续都在【首页 - 行业动态】内更新,多条更新哦~🔥🔥 每日推荐行业内最新、增长最快的项目,快速了解行业最新热门项目动态~~029kitex
Go 微服务 RPC 框架,具有高性能、强可扩展的特点。Go00Cangjie-Examples
本仓将收集和展示高质量的仓颉示例代码,欢迎大家投稿,让全世界看到您的妙趣设计,也让更多人通过您的编码理解和喜爱仓颉语言。Cangjie058毕方Talon工具
本工具是一个端到端的工具,用于项目的生成IR并自动进行缺陷检测。Python040PDFMathTranslate
PDF scientific paper translation with preserved formats - 基于 AI 完整保留排版的 PDF 文档全文双语翻译,支持 Google/DeepL/Ollama/OpenAI 等服务,提供 CLI/GUI/DockerPython06mybatis-plus
mybatis 增强工具包,简化 CRUD 操作。 文档 http://baomidou.com 低代码组件库 http://aizuda.comJava03国产编程语言蓝皮书
《国产编程语言蓝皮书》-编委会工作区018- DDeepSeek-R1探索新一代推理模型,DeepSeek-R1系列以大规模强化学习为基础,实现自主推理,表现卓越,推理行为强大且独特。开源共享,助力研究社区深入探索LLM推理能力,推动行业发展。【此简介由AI生成】Python00
热门内容推荐
最新内容推荐
项目优选








