调试 C++ Mod
日志能解决的问题有限。有时需要设置断点,直接检查调用栈和变量。本指南介绍具体方法。
注意,本指南也完全适用于调试 UE4SS 本身。
先决条件
本指南假设你已了解如何使用调试器。如果尚不了解,请查看 IDE 的指南,例如:
操作流程
- 在要调试的文件顶部附近添加
#include <Helpers/Debug.hpp>。 - 在程序执行到断点之前的某个位置,调用
RC::await_debugger()。它会暂停当前线程的执行,直到调试器连接。 - 将调试器附加到游戏进程。具体步骤请参阅 IDE 指南,相关选项通常在
Run或Debug菜单下。要调试的可执行文件通常与游戏目录中的ue4ss文件夹位于同一位置。- 也可以将 IDE 调试器设置为在可执行文件启动时自动附加。
- 随后程序就会命中断点!
重要注意事项
- 不保证稳定性。Unreal 是多线程程序,如果游戏线程暂停过久,可能会出现问题。多数情况下,至少可以逐步执行需要调试的代码。设置 IDE 自动附加到游戏进程可以缓解或消除这些问题。
RC::await_debugger()被标记为 deprecated,因此使用时编译器会发出警告。这是有意为之:绝不能在 Mod 或 UE4SS 的正式/公开构建中调用它。它实际上并未弃用。
原文:docs/guides/debugging-a-c++-mod.md · 固定提交 560411f18512 · 来源与 MIT 许可