pvs-stdio ue4

This article focuses on the specifics of checking Unreal Engine projects with the PVS-Studio static analyser on the Windows operating system: how to install the analyser, check a project, where and how to view an error report.
本文重点介绍在Windows操作系统上使用PVS-Studio静态分析器检查Unreal Engine项目的细节:如何安装分析器,检查项目,在何处以及如何查看错误报告。
An integral part of the series of our articles are topics related to the gaming industry. Check an actual engine used in AAA-games — you're welcome, come up with top errors in the gaming industry — go ahead, find bugs in one of the most popular game engines Unreal Engine (UE) — easy enough. In game development, as well as with any other application, the quality of the code does matter. Errors are best found as early as possible and the best option is to do it automatically — this is where static code analysers come to the aid of programmers.
我们的系列文章中不可或缺的部分是与游戏行业相关的主题。 检查AAA游戏中使用的实际引擎-不用客气 ,提出游戏行业中的主要错误- 继续进行 ,查找最流行的游戏引擎之一,虚幻引擎(虚幻引擎)中的错误- 很容易 。 在游戏开发以及任何其他应用程序中,代码的质量确实很重要。 最好尽早发现错误,最好的选择是自动执行错误-这是在静态代码分析器帮助程序员的地方。
In this article, I'll try to briefly talk about how you can use the PVS-Studio static analyser to check projects created in UE. PVS-Studio can help you make your project's code better by finding bugs in it, thereby allowing you to reduce the time you spend on code review.
在本文中,我将尝试简要讨论如何使用PVS-Studio静态分析器检查在UE中创建的项目。 PVS-Studio可以通过发现项目中的错误来帮助您改善项目的代码,从而使您减少花在代码审查上的时间。
Please note that this article is an addition to existing documentation on UE projects analysis and doesn't serve the purpose of replacing it, largely borrowing the contents of the documentation.
请注意,本文是关于UE项目分析的现有文档的补充,并且不能替代它,而是在很大程度上借鉴了文档的内容。
PVS-Studio安装 (PVS-Studio Installation)
The easiest way to install the PVS-Studio analyser is to download its installation file. In order to be able to analyse projects created in UE, you need to select the following components when installing PVS-Studio: «C and C++ Compiler Monitoring» and «Integration with Microsoft Visual Studio (Visual C++/C#)». The last point is responsible for integrating the PVS-Studio plugin into the Visual Studio IDE, through which it is convenient to work with the error log and with the general settings of the analyser itself.
安装PVS-Studio分析仪最简单的方法是下载其安装文件 。 为了能够分析在UE中创建的项目,在安装PVS-Studio时需要选择以下组件:《 C和C ++编译器监视》和《与Microsoft Visual Studio集成(Visual C ++ / C#)》。 最后一点是将PVS-Studio插件集成到Visual Studio IDE中,通过它可以方便地处理错误日志和分析仪本身的常规设置。
To work fully with PVS-Studio, you need to enter a license. You can do this by opening Visual Studio (VS) IDE and entering the license in the 'PVS-Studio|Options...|Registration'. In VS 2019, the PVS-Studio menu has been moved to the 'Extensions' menu, the path to the license entry window looks like this: 'Extensions'|'PVS-Studio|Options...|Registration'. The license is available on our website.
要与PVS-Studio完全配合使用,您需要输入许可证。 您可以通过打开Visual Studio(VS)IDE并在“ PVS-Studio |选项... |注册”中输入许可证来执行此操作。 在VS 2019中,PVS-Studio菜单已移至“扩展”菜单,许可证输入窗口的路径如下所示:“扩展” |“ PVS-Studio |选项... |注册”。 该许可证可在我们的网站上找到 。
To build UE projects a custom UnrealBuildTool (UBT) program from Epic Games is used, not a standard build system, used in VS (MSBuild). In this regard, the PVS-Studio plugin isn't able to implement a usual scenario of checking C++/C# projects, created in VS: «PVS-Studio -> Check -> Current Project». There are several solutions to avoid this limitation.
为了构建UE项目,使用了Epic Games的自定义UnrealBuildTool(UBT)程序,而不是VS(MSBuild)中使用的标准构建系统。 在这方面,PVS-Studio插件无法实现在VS中创建的检查C ++ / C#项目的常规方案:“ PVS-Studio->检查->当前项目”。 有几种解决方案可以避免这种限制。
使用编译监控系统执行分析 (Performing Analysis with Compilation Monitoring System)
The first and the easiest way to check a UE project is to use the program C and C++ Compiler Monitoring (named Standalone.exe), located in the PVS-Studio installation directory. The principle of its work is that it monitors compiler processes that correspond to the target compiler (in this case, cl.exe) and gathers all needed information for preprocessing and further analysis of source files. After you have opened C and C++ Compiler Monitoring, use the menu «Tools» and choose the option «Analyze Your Files (C and C++)...». Press «Start Monitoring» and you'll see the window in the bottom left corner telling you that compiler calls monitoring is in process:
检查UE项目的第一种也是最简单的方法是使用位于PVS-Studio安装目录中的程序C和C ++编译器监视(名为Standalone.exe)。 它的工作原理是,它监视与目标编译器相对应的编译器进程(在本例中为cl.exe),并收集所有必需的信息以进行预处理和源文件的进一步分析。 打开C和C ++编译器监视后,使用菜单“工具”,然后选择选项“分析文件(C和C ++)...”。 按《开始监视》,您将在左下角看到一个窗口,告诉您编译器正在监视监视:

Next, build your UE project and press «Stop Monitoring».
接下来,建立您的UE项目并按《停止监视》。
After that, the analysis of compiled source files will start. The report of the warnings found will be shown in the window «Analyzer Output» of the program C and C++ Compiler Monitoring.
之后,将开始分析已编译的源文件。 找到的警告报告将显示在程序C和C ++编译器监视的“分析器输出”窗口中。
Similar compiler calls monitoring and subsequent analysis of detected files can be made using the CLMonitor.exe console program, located in the same folder, where PVS-Studio was installed. CLMonitor.exe has two operating modes: a server mode when launches of processes (corresponding to the target compiler) are monitored and a client mode (when source files, detected at the monitoring stage, are analysed, followed by a report of analysis results). In order to run CLMonitor.exe in the server mode, perform the following command:
可以使用CLMonitor.exe控制台程序进行类似的编译器调用监视和检测到的文件的后续分析,该程序位于安装PVS-Studio的同一文件夹中。 CLMonitor.exe有两种操作模式:监视进程启动(对应于目标编译器)的服务器模式和客户端模式(分析在监视阶段检测到的源文件,然后报告分析结果)的服务器模式。 。 为了在服务器模式下运行CLMonitor.exe,请执行以下命令:
CLMonitor.exe monitor
After that, build your UE project and perform the command below:
之后,构建您的UE项目并执行以下命令:
CLMonitor.exe analyze -l "c:\ptest.plog"
The «analyze» command runs CLMonitor.exe in the client mode and closes the running instance of this program, working in the server mode. After performing this command, CLMonitor.exe will start executing files analysis. A parameter for the "- l" option is a path to the file, in which the analyser's results will be written.
«analyze»命令在客户端模式下运行CLMonitor.exe,并以服务器模式关闭该程序的运行实例。 执行此命令后,CLMonitor.exe将开始执行文件分析。 “-l”选项的参数是文件的路径,将在其中写入分析器的结果。
使用键-StaticAnalyzer = PVSStudio执行分析 (Performing Analysis with the Key -StaticAnalyzer=PVSStudio)
A different and more convenient approach to analysing UE projects is a direct integration with the UBT built system. To do this, open the property window of your UE project in VS and choose «NMake» in the list «Configuration Properties». Add the -StaticAnalyzer=PVSStudio in text field of the property «Build Command Line». As an example, the value of the field «Build Command Line» might look as follows:
分析UE项目的一种不同且更方便的方法是与UBT内置系统直接集成。 为此,请在VS中打开UE项目的属性窗口,然后在“配置属性”列表中选择“ NMake”。 在属性“ Build Command Line”的文本字段中添加-StaticAnalyzer = PVSStudio。 例如,“ Build Command Line”字段的值可能如下所示:
C:\Program Files\Epic Games\UE_4.22\Engine\Build\BatchFiles\Build.bat"MyProject Win64 DebugGame-Project="$(SolutionDir)$(ProjectName).uproject"-WaitMutex -FromMsBuild -StaticAnalyzer=PVSStudio
It should be taken into account that when performing a project build, it will only be analysed, not built. The scenario in which a project is both built and analysed will be described below. It also should be noted that only those source files that have been changed since the last project build will be analysed. Changing of any included .h file is not a reason to perform the analysis during the next build. In order to perform full analysis, you need to add the same flag in the text field of the property «Rebuild All Command Line». Now when rebuilding the project, you'll get the result of analyzing the entire project.
应该考虑到,在执行项目构建时,只会进行分析,而不会进行构建。 下面将描述构建和分析项目的场景。 还应注意,将仅分析自上次项目构建以来已更改的那些源文件。 更改任何包含的.h文件不是在下一个构建过程中执行分析的原因。 为了执行完整的分析,您需要在«Rebuild All Command Line»属性的文本字段中添加相同的标志。 现在,在重建项目时,您将获得分析整个项目的结果。
通过修改包文件执行分析 (Performing the Analysis via Modification of Package files)
Now let's consider another scenario of the PVS-Studio analyser integrating into the UBT build system. While doing it, the analysis starts right after performing a project build/rebuild. In other words, you get both a built project and a file with analysis results. You might have noted that the field Build Command Line contains the path to the batch file Build.bat, which, in turns, contains instructions to run UBT with needed arguments. Build.bat runs in the very beginning of the build.
现在让我们考虑将PVS-Studio分析仪集成到UBT构建系统中的另一种情况。 这样做时,分析将在执行项目构建/重建后立即开始。 换句话说,您将同时获得一个已建项目和一个包含分析结果的文件。 您可能已经注意到,“构建命令行”字段包含批处理文件Build.bat的路径,而该文件又包含使用所需参数运行UBT的指令。 Build.bat在构建的最开始运行。
The point is to change the batch file so that it could first run UBT with standard build arguments and then, if a build successfully completes, run the same UBT, but already with an additional flag -StaticAnalyzer=PVSStudio. To implement the above scenario, you can change the batch file Build.bat. It's even better to create its copy named, for example, BuildAndAnalyze.bat. Here's what you need to do to implement the described scenario. Right after the popd command, insert the following instructions:
关键是更改批处理文件,以便它可以首先使用标准的构建参数运行UBT,然后,如果构建成功完成,则运行相同的UBT,但已经具有附加标志-StaticAnalyzer = PVSStudio。 要实现上述方案,您可以更改批处理文件Build.bat。 最好创建其副本,例如BuildAndAnalyze.bat。 这是实现上述方案所需的操作。 在popd命令之后,立即插入以下说明:
SET "UBT_ERR_LEVEL=!ERRORLEVEL!"
SET "NEED_TO_PERFORM_ANALYSIS"IF "!UBT_ERR_LEVEL!"=="0" (SET "NEED_TO_PERFORM_ANALYSIS=TRUE"
)IF "!UBT_ERR_LEVEL!"=="2" (SET "NEED_TO_PERFORM_ANALYSIS=TRUE"
)IF DEFINED NEED_TO_PERFORM_ANALYSIS (pushd "%~dp0\..\..\Source"ECHO Running static analysis ..\..\Engine\Binaries\DotNET\UnrealBuildTool.exe %*-StaticAnalyzer=PVSStudio -DEPLOY popdSET "UBT_ERR_LEVEL=!ERRORLEVEL!"
)
If the flag -StaticAnalyzer=PVSStudio was previously installed in the Build Command Line field in the project 'Properties|Configuration Properties|NMake' settings, it has to be removed.
如果先前在项目“属性|配置属性| NMake”设置的“构建命令行”字段中安装了-StaticAnalyzer = PVSStudio标志,则必须将其删除。
The problem with this approach is that only files that were compiled during build will be analyzed. That is, you won't receive a report file with a full check of your project. In addition, any changes made to included .h files will also not be taken into account. Therefore, we cannot call this analysis incremental, as changes in the header files won't trigger the analysis during the next build. In this case, you can rebuild the project, getting the result of the analysis for the entire project. However, full build can take a long time, so you can follow this scenario: make a build, delete the cache file ActionHistory.bin, run the build with the flag -StaticAnalyzer=PVSStudio, restore the cache file. The ActionHistory.bin file contains information needed to perform incremental build as well as the history of running the analyzer for checked files.
这种方法的问题在于,将仅分析在构建过程中编译的文件。 也就是说,您将不会收到包含项目完整检查的报告文件。 此外,也不会考虑对包含的.h文件所做的任何更改。 因此,我们不能将此分析称为增量分析,因为头文件中的更改不会在下一个构建期间触发分析。 在这种情况下,您可以重建项目,以获取整个项目的分析结果。 但是,完全构建可能需要很长时间,因此您可以遵循以下方案:进行构建,删除缓存文件ActionHistory.bin,使用标志-StaticAnalyzer = PVSStudio运行该构建,还原缓存文件。 ActionHistory.bin文件包含执行增量构建所需的信息以及运行分析器以检查文件的历史记录。
At a first glance, this scenario may not seem the easiest, so we'll provide a complete set of instructions on how you can change the original Build.bat file. It is worth noting that such changes are only relevant to Unreal Engine version 4.21 and later. After the setlocal enabledelayedexpansion command, declare the following variables:
乍一看,这种情况似乎并不是最简单的,所以我们将提供有关如何更改原始Build.bat文件的完整说明。 值得注意的是,此类更改仅与Unreal Engine 4.21及更高版本有关。 在setlocal enabledelayedexpansion命令之后,声明以下变量:
SET PROJECT_NAME=%1%
SET PLATFORM=%2%
SET UPROJECT_FILE=%~5SET ACTIONHISTORY_FOLDER=%UPROJECT_FILE%\..\Intermediate\Build\%PLATFORM%\%PROJECT_NAME%
SET ACTION_HISTORY=ActionHistory.bin
SET ACTION_HISTORY_BAC=%ACTION_HISTORY%.bac
SET ACTIONHISTORY_PATH="%ACTIONHISTORY_FOLDER%\%ACTION_HISTORY%"
SET ACTIONHISTORY_BAC_PATH="%ACTIONHISTORY_FOLDER%\%ACTION_HISTORY_BAC%"
Right after the popd instruction, insert these commands:
在popd指令之后,插入以下命令:
SET "UBT_ERR_LEVEL=!ERRORLEVEL!"
SET "NEED_TO_PERFORM_ANALYSIS="IF "!UBT_ERR_LEVEL!"=="0" (SET "NEED_TO_PERFORM_ANALYSIS=TRUE"
)IF "!UBT_ERR_LEVEL!"=="2" (SET "NEED_TO_PERFORM_ANALYSIS=TRUE"
)
IF DEFINED NEED_TO_PERFORM_ANALYSIS (pushd "%~dp0\..\..\Source"ECHO Running static analysisIF EXIST %ACTIONHISTORY_PATH% (ECHO Copying %ACTION_HISTORY% to %ACTION_HISTORY_BAC%COPY %ACTIONHISTORY_PATH% %ACTIONHISTORY_BAC_PATH%ECHO Removing %ACTION_HISTORY%: %ACTIONHISTORY_PATH%DEL %ACTIONHISTORY_PATH%)..\..\Engine\Binaries\DotNET\UnrealBuildTool.exe %* -StaticAnalyzer=PVSStudio -DEPLOY popdSET "UBT_ERR_LEVEL=!ERRORLEVEL!"IF EXIST %ACTIONHISTORY_BAC_PATH% (ECHO Recovering %ACTION_HISTORY%COPY %ACTIONHISTORY_BAC_PATH% %ACTIONHISTORY_PATH%ECHO Removing %ACTION_HISTORY_BAC%: %ACTIONHISTORY_BAC_PATH%DEL %ACTIONHISTORY_BAC_PATH%)
)
Note, that variables PROJECT_NAME, PLATFORM and UPROJECT_FILE, needed for correct determination of the path to the cache file, get their values from the arguments of the Build.bat's command line. If you have a different order of these arguments, you have to appropriately change initialization of the three variables, described above.
请注意,正确确定缓存文件路径所需的变量PROJECT_NAME,PLATFORM和UPROJECT_FILE是从Build.bat命令行的参数中获取其值的。 如果这些参数的顺序不同,则必须适当地更改上述三个变量的初始化。
通过UBT修改进行增量项目分析 (Incremental Project Analysis via UBT Modification)
PVS-Studio is able to work in the incremental analysis mode. Incremental analysis is meant to check only those files that have been changed since the last build. In the incremental analysis mode, PVS-Studio is automatically run on a developer's computer in the background mode right after code compilation and analyzes all modified files. You can find a more detailed guide on using PVS-Studio in the incremental analysis mode in our documentation.
PVS-Studio可以在增量分析模式下工作。 增量分析旨在仅检查自上次构建以来已更改的那些文件。 在增量分析模式下,PVS-Studio在代码编译后立即在后台模式下自动在开发人员的计算机上运行,并分析所有修改的文件。 您可以在我们的文档中找到有关在增量分析模式下使用PVS-Studio的更详细的指南。
With the implementation of the incremental analysis mode for UE projects, everything is again a bit more complicated than in a standard scenario. In this case, to be able to perform the incremental analysis (taking into account changes in included .h files), you'll have to introduce edits in the build UBT system yourself. To do this, get access to the UE repository on github.com and clone it to your machine. To further customize the cloned repository, you'll need to complete the steps, listed in the section «Getting up and running », subsection «Windows». You can find this section on the front page of the official UE repository. Once you've set up your repository, you can start making changes in UBT. To do this, follow this path to the cloned repository: \UnrealEngine\Engine\Source\Programs\UnrealBuildTool. Open solution UnrealBuildTool.sln and find the file PVSToolChain.cs in Solution Explorer. In this file, add the following lines of code in the class PVSApplicationSettings:
通过为UE项目实施增量分析模式,一切都比标准方案中的要复杂得多。 在这种情况下,为了能够执行增量分析(考虑到包含的.h文件中的更改),您必须自己在构建UBT系统中引入编辑。 为此,请访问 github.com上的UE存储库并将其克隆到您的机器上。 要进一步自定义克隆的存储库,您需要完成“启动和运行”部分的“ Windows”小节中列出的步骤。 您可以在官方UE信息库的首页上找到此部分。 设置存储库后,即可开始在UBT中进行更改。 为此,请遵循以下路径进入克隆的存储库:\ UnrealEngine \ Engine \ Source \ Programs \ UnrealBuildTool。 打开解决方案UnrealBuildTool.sln,然后在解决方案资源管理器中找到文件PVSToolChain.cs。 在此文件中,将以下代码行添加到类PVSApplicationSettings中:
/// <summary>
/// Whether need incremental analysis or not
/// </summary>
public bool IncrementalAnalysis;
This line of code enables the IncrementalAnalysis option to be deserialized from the PVS-Studio settings files. Don't forget to enable the PVS-Studio incremental analysis mode itself. To do this, in VS open «Extensions» in the main menu, submenu «PVS-Studio», «Analysis after Build (Modified Files Only)», «Enabled». Now add the following lines of code right after declaration of the variable BaseFileName:
此行代码允许从PVS-Studio设置文件反序列化IncrementalAnalysis选项。 不要忘记启用PVS-Studio增量分析模式本身。 为此,在VS中,打开主菜单中的“扩展”,子菜单“ PVS-Studio”,“构建后分析(仅修改文件)”,“启用”。 现在,在声明变量BaseFileName之后立即添加以下代码行:
// Get pvslog file
FileReference OutputFileLocation = FileReference.
Combine(OutputDir, BaseFileName + ".pvslog");
FileItem OutputFileItem = FileItem.GetItemByFileReference(OutputFileLocation);
if (ApplicationSettings.IncrementalAnalysis && OutputFileItem.Exists)
{// Get object fileFileReference ObjectFileLocation = FileReference.Combine(OutputDir, BaseFileName + ".obj");FileItem ObjectFileItem = FileItem.GetItemByFileReference(ObjectFileLocation);if (ObjectFileItem.Exists && (ObjectFileItem.LastWriteTimeUtc < OutputFileItem.LastWriteTimeUtc)){continue;}
}
Then remove previous declarations of variables OutputFileLocation and OutputFileItem below.
然后在下面删除变量OutputFileLocation和OutputFileItem的先前声明。
While building the UE project, an object .obj file is generated for each source .cpp file. This incremental analysis is all about checking only those source .cpp files for which the date of creation/modification of their object file is later than the one of the .pvslog report file. A separate .pvslog file is generated for each source file, in the future all .pvslog files will be merged in one final .pvslog). Once you've made the above changes, build UBT and copy the newly built binary file to the location of the original UBT.
在构建UE项目时,将为每个源.cpp文件生成一个对象.obj文件。 此增量分析仅涉及检查源.cpp文件,这些源.cpp文件的对象文件的创建/修改日期晚于.pvslog报告文件之一。 每个源文件都会生成一个单独的.pvslog文件,以后所有的.pvslog文件都将合并到一个最终的.pvslog文件中。 完成上述更改后,构建UBT,然后将新建的二进制文件复制到原始UBT的位置。
Now it's all ready, you'll be receiving a report log when performing the build of your UE project, containing analyzer's results only for compiled source files. Keep in mind that such modification of UBT makes sense only if you have modified the Build.bat file in such a way that it performed removing of the cache file ActionHistory.bin (detailed description of this scenario was given above). To disable the incremental analysis mode, just install the option «Analysis after Build (Modified Files Only)» described above in the mode «Disabled».
现在已经准备就绪,在执行UE项目的构建时,您将收到报告日志,其中仅包含分析器针对已编译源文件的结果。 请记住,仅当您以以下方式修改Build.bat文件以执行删除高速缓存文件ActionHistory.bin时,对UBT的这种修改才有意义(上面已给出了此方案的详细说明)。 要禁用增量分析模式,只需在“禁用”模式下安装上述“构建后分析(仅修改文件)”选项即可。
Let me remind you once again: if you installed the flag -StaticAnalyzer=PVSStudio in the field Build Command Line in the settings of the project 'Properties|Configuration Properties|NMake', it has to be removed in this scenario.
让我再次提醒您:如果在项目“属性|配置属性| NMake”的设置中的“构建命令行”字段中安装了-StaticAnalyzer = PVSStudio标志,则在这种情况下必须将其删除。
打开分析器报告文件并将其自动加载到Visual Studio中 (Opening the Analyzer Report File and its Automatic Loading into Visual Studio)
By default when performing the UE project analysis, a report file won't be shown in the PVS-Studio window in VS. It's just stored relatively to the project folder by the following path: \YouProject\Saved\PVS-Studio\. To open this file in VS, you need to use the following command: 'PVS-Studio|Open/Save|Open Analysis Report' and select the 'Unparsed output' file type. You can also open the file report in the program C and C++ Compiler Monitoring, by using the following command: 'File|Open PVS-Studio Log' and also choose the file type 'Unparsed output'.
默认情况下,执行UE项目分析时,VS中的PVS-Studio窗口中不会显示报告文件。 它只是通过以下路径相对于项目文件夹存储:\ YouProject \ Saved \ PVS-Studio \。 要在VS中打开此文件,您需要使用以下命令:“ PVS-Studio |打开/保存|打开分析报告”,然后选择“未分析的输出”文件类型。 您还可以使用以下命令在程序C和C ++编译器监视中打开文件报告:'File | Open PVS-Studio Log',还选择文件类型'Unparsed output'。
There's another more convenient option to open the analysis report log, which is its automatic loading in VS. In order for it to automatically load into the PVS-Studio window in VS after the analysis is complete, you need to enable the appropriate option: 'PVS-Studio|Options|Specific Analyzer Settings|Save/Load (analyzer report)|AutoloadUnrealEngineLog'.
还有一个更方便的选项来打开分析报告日志,这是它在VS中的自动加载。 为了使它在分析完成后自动加载到VS中的PVS-Studio窗口中,您需要启用适当的选项:“ PVS-Studio |选项|特定分析仪设置|保存/加载(分析仪报告)| AutoloadUnrealEngineLog” 。
下载并尝试PVS-Studio (Download and Try PVS-Studio)
As the author of this article, as well as one of those people who is directly working on the implementation and support of PVS-Studio's functionality related to the analysis of projects, built on the basis of the UE engine, I am ready to help readers. If you're having trouble using PVS-Studio with your UE project or have any questions after reading this article, I'd be happy to chat with you. Write to our support, I'll get mails on UE and related issues. Thank you for your attention.
作为本文的作者,以及直接基于UE引擎构建与项目分析相关的PVS-Studio功能的实现和支持的人员之一,我随时准备帮助读者。 如果您在UE项目中使用PVS-Studio时遇到问题,或者在阅读本文后有任何疑问,我们将很高兴与您聊天。 写信给我们的支持,我将收到有关UE和相关问题的邮件。 感谢您的关注。
附加链接 (Additional Links)
Andrey Karpov. A Long-Awaited Check of Unreal Engine 4. (April 14, 2014)
安德烈·卡波夫(Andrey Karpov)。 期待已久的虚幻引擎检查4 。 (2014年4月14日)
Paul Eremeev, Svyatoslav Razmyslov. How the PVS-Studio Team Improved Unreal Engine's Code. (June 20, 2015)
保罗·埃雷梅耶夫(Paul Eremeev),斯维亚托斯拉夫·拉兹米洛夫(Svyatoslav Razmyslov) PVS-Studio团队如何改进虚幻引擎的代码 。 (2015年6月20日)
Andrey Karpov. Static analysis as part of the development process in Unreal Engine. (June 27, 2017)
安德烈·卡波夫(Andrey Karpov)。 静态分析是虚幻引擎开发过程的一部分 。 (2017年6月27日)
翻译自: https://habr.com/en/company/pvs-studio/blog/466477/
pvs-stdio ue4