否,您可以从任何所需位置启动可执行文件。只要满足技术要求,并且应用程序已编译并与正确的设置链接,即可开始使用。
否,Live++ 完全独立于 IDE。
是,Live++ 能够为代码补丁生成调试信息文件,因此支持常用调试器,如 Visual Studio、Rider 和 WinDbg。
是,从 14 版开始,Live++ 支持 MSVC 工具链和 Clang。
是,从 14 版开始,Live++ 支持 MSVC 工具链和 LLD。
是,Live++ 能够直接从相关二进制文件中重建热重载所需的信息。
是!
Live++ 已通过 FASTBuild、SN-DBS、IncrediBuild、各种专有内部(分布式)构建系统以及 Visual Studio 以外的 IDE 使用的构建系统进行测试。
否!只需要创建 Live++ Agent 并正确设置项目的构建选项。
API 以几个头文件的形式交付,这些头文件提供了用于创建代理、启用模块和安装钩子的宏和函数。每个钩子恰好需要一行代码。
Live++ 已经在几个不同大小的代码库和游戏引擎上进行了广泛测试。如果您已经遵循了在线文档中概述的所有必要步骤,并查看了常见问题中的常见错误和问题,但仍然无法让 Live++ 使用您的设置,请立即直接与我们联系。
此表格部分是基于在此记录的 Visual Studio“编辑并继续”功能行为构建的。
广泛支持 | 编辑并继续 | Live++ | 备注 |
---|---|---|---|
其他 IDE | 否 | 是 | Live++ 与 IDE 无关,不需要 Visual Studio。 |
其他编辑器和外部工具 | 否 | 是 | Live++ 无需调试器即可应用代码更改。 |
多个进程 | 否 | 是 | Live++ 支持本地进程和远程进程。 |
外部启动的应用程序 | 否 | 是 | Live++ 适用于任何目标应用程序,只要该应用程序或其任何模块加载了 Live++ Agent 即可。无需从 Visual Studio 启动应用程序。 |
支持的代码更改 | 编辑并继续 | Live++ | 备注 |
---|---|---|---|
添加新的全局或静态数据 | 否 | 是 | Live++ 支持这一功能,并且会相应调用构造函数/动态初始化器。 |
更改全局或静态数据 | 否 | 是 | Live++ 支持对所有全局和静态数据执行此操作。 |
更改静态库中的代码 | 否 | 是 | Live++ 支持共享库和静态库的任意组合,并且与项目设置无关。 |
更改次数不限 | 否 | 是 | Live++ 仅受限于应用程序中的可用地址空间。 |
支持的代码更改 | 编辑并继续 | Live++ | 备注 |
---|---|---|---|
优化构建 | 否 | 是 | Live++ 支持优化、内联等,甚至适用于未发送到调试信息文件中的数据符号。 |
多种 PDB 格式 | 否 | 是 | Live++ 不需要设置“用于编辑并继续的程序数据库 (/ZI)”,因此它支持需要使用 /Z7 格式的分布式构建系统,在这种格式中,大量的调试信息会被嵌入到目标文件中。 |
针对静态运行时库进行 链接(/MT 和 /MTd) |
否 | 是 | Live++ 支持针对静态和动态运行时库进行链接。 |
控制流保护 (/guard:cf)、 /ORDER、函数级 链接 (/Gy) |
否 | 是 | Live++ 完全支持这些编译器和链接器选项的任意组合,而“编辑并继续”需要设置函数级链接,且不支持其他选项。 |
需要增量 链接 (/INCREMENTAL) |
是 | 否 | Live++ 不需要增量链接,而是改用热修补。Live++ 也能利用增量链接 Thunks(如果可用)。 |
需要热修补 (/hotpatch) 和 /FUNCTIONPADMIN |
否 | 是 | Live++ 需要设置这些编译器和链接器选项才能完全可靠地运行。 |