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
2
3
game files required to initialize the global shader library are missing from:
<Your Project Root>\<Your Project Name>/Content/
Please make sure the game is installed correctly

题外话,不确定为什么,我把 pdb 复制到

1
<Your Package Game Root>\WindowsNoEditor\<Your Project Name>\

调试时 VS 也无法加载 pdb,难道是因为我之前有编译过 shipping 导致的?

从任务管理器发起调试的问题:看不到变量的值

这样虽然可以调试

但是看不到变量的值

alt text

只能说,可以看到 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

这样调试就可以看到变量值了

alt text

具体原因不想思考了