UE4.27.2 调试 Standalone 游戏的方法
2025-05-20 22:58:09
从任务管理器发起调试
使用 Debug 或者 DebugGame 构建选项来打包游戏
应该会在如下目录出现对应配置的 exe 和 pdb,文件名类似 <Your Project Name>-Win64-Debug.exe
1 | <Your Project Root>\<Your Project Name>\Binaries\Win64\ |
把这个 exe 和 pdb 复制到如下目录
1 | <Your Package Game Root>\WindowsNoEditor\<Your Project Name>\Binaries\Win64\ |
然后启动 exe,在任务管理器右键游戏进程,调试,选 VS 作为调试器,然后把要调试的文件拖进 IDE,打断点,应该可以看到断点正常,没有显示“未加载符号,断点无法命中”的错
其他失败的尝试
如果复制到别的目录,比如直觉上是打包后的根目录
1 | <Your Package Game Root>\WindowsNoEditor\<Your Project Name>\ |
或者如果就是游戏工程里的目录放在那里不动
1 | <Your Project Root>\<Your Project Name>\Binaries\Win64\ |
则会出现 content 路径找不到的错误
1 | game files required to initialize the global shader library are missing from: |
题外话,不确定为什么,我把 pdb 复制到
1 | <Your Package Game Root>\WindowsNoEditor\<Your Project Name>\ |
调试时 VS 也无法加载 pdb,难道是因为我之前有编译过 shipping 导致的?
从任务管理器发起调试的问题:看不到变量的值
这样虽然可以调试
但是看不到变量的值
只能说,可以看到 log 还是有点用的
兼得查看变量值的方法:调试 Game Target
在 IDE 构建配置里面的 Target 配置里面选择 Game,开启调试
也会遇到 content 路径找不到的错误
于是先按照之前说的,把游戏工程里构建出来的 exe 和 pdb 复制到打包工程的路径 \Binaries\Win64,然后把 IDE(以 Rider 为例)调试设置里面的 exe 路径从
1 | $(LocalDebuggerCommand) |
改为
1 | <Your Package Game Root>\WindowsNoEditor\<Your Project Name>\Binaries\Win64\<Your Project Name>-Win64-Debug.exe |
这样调试就可以看到变量值了
具体原因不想思考了