美文网首页UE4游戏探讨
PVS-Studio检查虚幻项目空指针及逻辑问题

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

作者: 狼图腾_094d | 来源:发表于2019-05-08 11:12 被阅读0次

    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检查虚幻项目空指针及逻辑问题

        本文链接:https://www.haomeiwen.com/subject/idqmoqtx.html