在 VS 中调试时显示对象值
打开引擎路径:
1 | Engine\Extras\VisualStudioDebugging |
该路径下会有一个 UE4.natvis.zip 文件,将其拷贝到 VS 的下列路径中:
1 | C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\Packages\Debugger\Visualizers |
然后重启启动调试,就可以在调试窗口看到对象值了。
调试独立运行的 UE 项目
在 UE 的编辑器模式下以 Standalone
方式运行,在 VS 中是没办法及时 Attach to process
上的。
比如我们想要在 standalone 模式下调试引擎和项目,在 editor 下直接启动会创建一个新的进程,在 VS 中手动点 Attach to process
是很不方便的,也没有那么及时 (因为点完启动在等我们在 VS 中 attach 到进程上有可能引擎都已经启动完毕了)。
幸好 UE 提供了一个插件:UnrealVS,该插件的 VS 安装程序在引擎的 Engine\Extras\UnrealVS
目录下,根据你的 VS 版本选择安装。
安装完之后启动 VS,在 View->Toolbars->UnrealVS
启用,就会在 VS 的工具栏看到了。在这里选择你的项目:
后面的框是命令行框,填入的参数会在启动时传递给程序 (具体介绍看UnrealVS 里面的描述),所以我们可以在后面填参数使其以独立模式启动 (可以从Command-Line Arguments 查看支持的参数):
1 | "$(SolutionDir)$(ProjectName).uproject" -game -windowed -log -verbose |
这样就会在 VS 中使用 F5 启动项目时自动 attach 的到进程上的。
关闭代码优化
在调试时关闭 Target 或者指定模块的代码优化,能够更好的分析问题。ModuleRules
的 OptimizeCode
属性是用来控制当前模块是否要开启优化代码,在我们用 VS 调试时,有时候会看到“变量已被优化,因而不可用”,这就是因为被优化了。
可以使用它来关闭优化:
1 | // build.cs |
具体的分析见这篇内容:变量已被优化,因而不可用。