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

    PVS-Studio检查虚幻项目空指针及逻辑问题 PVS-Studio安装须知安装pvs-studio,注册码:免...

  • Kotlin-空指针检查

    Kotlin搞空指针检查现象:java存在问题,大量的崩溃是空指针异常。原因:java的空指针异常是一种运行时异常...

  • 内存检测方法

    静态分析Analyze执行product -> Analyze 主要分析以下四种问题:1、逻辑错误:访问空指针或未...

  • Kotlin笔记 空指针检查

    Kotlin相较于java的一大优势就是可以减少空指针的出现,变量的type需要指定是否能为空,不带?的type不...

  • Kotlin-空指针检查

    1、空指针异常是一种不受编程语言检查的运行时异常,只能由程序员主动通过逻辑判断来避免。 1.1、调用参数的方法之前...

  • java异常处理

    1 RuntimeException非检查异常 NullPointerException 空指针异常 Arra...

  • SpringBoot 单元测试报空指针问题

    在Springboot 项目做单元测试时, 发现报空指针问题. 使用的注解:@SpringBootTest 后来加...

  • Spring Boot 分离打包踩坑-无法加载class(Cla

    正常打包项目正常,分离打包项目报空指针 我碰到的问题是因为项目中用到了 redis的 JdkSerializati...

  • dubbo空指针问题

    最近公司生产环境(SpringBoot + Dubbo)中,消费端在service中,部分使用@Reference...

  • Kotlin基础(8)-->空指针检查

    一、可空类型系统 Kotlin默认所有的参数和变量都不可为空。Int 表示不可为空的整型Int? 表示可为空的...

网友评论

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

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