PVS-Studio检查虚幻项目空指针及逻辑问题

PVS-Studio检查虚幻项目空指针及逻辑问题

  • PVS-Studio安装须知

    安装pvs-studio,注册码:

    免费使用注册码:

    Name:PVS-Studio Free

    SerialNumber:FREE-FREE-FREE-FREE

    注意:为了保证UE4能够识别,能够间接集成,最好将安装路径设置为C:\Program Files (x86)\PVS-Studio

  • PVS-Studio虚幻项目使用

    虚幻项目静态分析两种方法:

    1、使用命令行监控vs编译cl.exe进程或者是独立的分析工具standalone(这个有图形化的界面比较容易操作,建议采用这种方法,图形方式也比较方便).

    命令行方式:

    1.1 控制台运行 CLMonitor.exe monitor

    1.2 控制台运行 CLMonitor.exe analyze -l "D:\UE4.plog"

    1.3 在vs的pvs-studio插件中,找到open/save -> open analysis report...,打开之前的文件,就可以看到分析结果。

    图形方式:

    1.1 开始分析:Tools -> Analyze Your Files... ,选择start monitoring。

    1.2 停止分析:选择stop monitoring,等待分析结束,出现结果。

    2、间接集成到虚幻UBT编译工具中。

    在vs的cs项目右键点击,选择属性 -> 配置属性 -> NMake,添加-StaticAnalyzer=PVSStudio到项目的生成命令行和重新生成命令行(英文对应build和rebuild)。

    之后可以看到相应的错误信息。

    这里面可能遇到的一个问题是:编译的时候,提示是否有足够的权限访问,这个时候记得改C:\Program Files (x86)\MSBuild的文件夹权限,所有者改为当前用户, 这是虚幻编译存在的问题,另外就是不行就多编译几次也可以。

  • PVS-Studio检查误报排除

    目前发现的误报的问题:

1、IsValid(XXX)判断,不能正确检查,还是会报错,说没有判空就引用了,这个需要人工稍微看一眼排查一下。

2、不能准确识别异步回调里面写的没有判空的问题。因为我们大量使用CreateLambda创建异步回调的方法,这些和原来的方法都是写在一块,会被认为是同一个函数内容,所以如果上面判断了为空,回调里面没有判断,也不会报是否有问题。这个更多通过规范来避免。

注意一点:如果要想全面检查所有的错误,需要将项目全部重新生成一次。

你可能感兴趣的:(PVS-Studio检查虚幻项目空指针及逻辑问题)