UE4如何调试BuildCookRun

了解UAT

UAT是UnrealAutomationTool,最重要的一个作用就是BuildCookRun,也就是编译、烘焙、运行测试一条龙。下面是一则示例:

{你的工程}/Engine/Build/BatchFiles/RunUAT.bat -ScriptsForProject={你的工程}.uproject BuildCookRun -nop4 -project={你的工程}.uproject -cook -stage -archive -archivedirectory={你的工程所在的目录} -package -ue4exe={你的工程}/Engine/Binaries/Win64/UE4Editor-Cmd.exe -compressed -pak -prereqs -nodebuginfo -manifests -targetplatform=Win64  -clientconfig=Development -utf8output -NoCompile

在UAT的脚本(EngineSource\Engine\Build\BatchFiles\RunUAT.bat)中 ↑,最重要的是 47 - 51 行,这说明,UAT对应的工具是 AutomationToolLauncher.exe。

调试UAT

一、首先编译好Programs重的AutomationTool.cs和 AutomationToolLauncher.cs 两个工具;

二、在Rider的右上角调试器中,选择AutomationToolLauncher,并在More Actions中配置参数如下,

Program arguments:

-ScriptsForProject={你的工程}.uproject BuildCookRun -nop4 -project={你的工程}.uproject -cook -stage -archive -archivedirectory={你的工程目录} -package -ue4exe={你的工程}\EngineSource/Engine/Binaries/Win64/UE4Editor-Cmd.exe -compressed -pak -prereqs -nodebuginfo -manifests -targetplatform=Win64 -build -target={你的工程名} -clientconfig=Development -utf8output -compile

备忘一下:原本填写的是 $(LocalDebuggerCommandArguments),其实就是指这些configuration参数。当调试结束后,记得把这个值更改回来。

三、加断点,并点击Debug,开始调试

举个例子,加到这里:

四、顺利完成

这些是关键日志:

Copying NonUFSFiles to staging directory: G:\St\MyProject\Saved\StagedBuilds\WindowsNoEditor
********** STAGE COMMAND COMPLETED **********
********** PACKAGE COMMAND STARTED **********
********** PACKAGE COMMAND COMPLETED **********
********** ARCHIVE COMMAND STARTED **********
Archiving to G:\St\MyProject
********** ARCHIVE COMMAND COMPLETED **********
BUILD SUCCESSFUL
AutomationTool exiting with ExitCode=0 (Success)

以上介绍的是调试UAT cs代码的过程,接下来讲如何调试CPP的代码。

调试Cook过程中的CPP代码

方式1:

首先是拉起Cook过程,例如流水线拉起,也可以是上面的UAT调试时点击三角形“Run”而非虫子“Debug”。

然后在调试器中选择 “你的项目” 而不是选择 “UnrealBuildTool”、“AutomationTool”等,意味着你要调试的是项目工程的代码,而非UBT。

然后选择Attach to Process(上图1),键入Editor,选择UE4Editor-Cmd(上图2),而非选择 AutomationToolLauncher。双击它。就可以调试CPP的代码了。

方式2:

当你打开Cook的日志,你会看到其中的一句日志是:

Running: G:\项目\EngineSource\Engine\Binaries\Win64\UE4Editor-Cmd.exe G:\项目\项目\项目.uproject -run=Cook -fullcrashdump -TargetPlatform=Android_ASTCClient -buildmachine -fileopenlog -FastCook -manifests -iterate -iterateshash -skipeditorcontent -IgnoreIniSettingsOutOfDate -DisableUnsolicitedPackages -DontSearchRelativePackages -abslog=G:\项目\EngineSource\Engine\Programs\AutomationTool\Saved\Cook-2024.10.29-22.14.30.txt -stdout -CrashForUAT -unattended -NoLogTimes -buildmachine

这意味着,可以调试“项目”,来用Rider直接拉起Cook的过程。

将下面箭头处改为上述日志里所罗列出来的参数,然后点击Debug,这样就可以调试了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值