Clang Static Analyzer-使用手册-编写Checker框架
Clang Static Analyzer-使用手册-编写Checker
Checker是这个工具的灵魂
有了checker才可以检查你的代码
相当于就是CSA通过checker定义的检查方法去检查代码
添加Checker的办法
这里针对3.7.1的老版本,比较新的如llvm10以上的版本没法使用
1 在checkers清单里面添加checker
首先在/clang/lib/StaticAnalyzer/Checkers下的Checkers.td中添加一个申明

这里的let ParentPackage = xxx in{}
意思就是你想把这个checker放到什么checker类里面,这里根据自己的选择,随意选择位置添加,然后再通过一下格式添加
def xxxChecker : Checker<"xxx">,
HelpText<"yyyyyy">,
DescFile<"xxxxChecker.cpp">;
解释一下这里的HelpText是当你用到这个checker时的一个帮助提示,DescFile是实现cpp文件
2 添加checker代码到CMakeList里面
把checker的实现代码文件添加到CMakeList.txt里面为了下一次编译生成的时候重建到clang里面

在这个全是cpp这里,直接添加对应的文件就好了
3 编写实现代码.cpp
编写 lib/StaticAnalyzer/Checkers/xxxxx.cpp
在这个里面实现具体的代码逻辑
然后重新编译就好了,就可以使用对应的checker了
Clang Static Analyzer-使用手册-编写Checker框架的更多相关文章
- 深入研究Clang(十) Clang Static Analyzer简介
Clang Static Analyzer 官网地址:http://clang-analyzer.llvm.org/ Clang Static Analyer是一个源码分析工具,它可以发现C.C++和 ...
- Ubuntu-搭建Clang Static Analyzer环境
其实也就是一个开源的漏洞扫描器 专门扫描C/C++ 0BJECT-C++这种,实不相瞒我搭建了5天这个环境,最后我发现了一种超级方便的办法 前面怎么走的坑还是不分享了吧,由于没有看到前面很多人的办法或 ...
- 求好用的在线手册编写工具,能编写像bootstrap在线Doc那种的,想为OpenCenter写个在线手册
原文地址:http://www.oschina.net/question/1014458_225711 各位OSCer的开源项目的在线说明文档都是用什么写的呢? 类似 http://v3.bootcs ...
- (转)在编写Spring框架的配置文件时,标签无提示符的解决办法
http://blog.csdn.net/yerenyuan_pku/article/details/52831618 问题描述 初学者在学习Spring框架的过程中,大概会碰到这样一个问题:在编写S ...
- python web开发 编写web框架
参考链接:https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/00143233900 ...
- Magicodes.IE编写多框架版本支持和执行单元测试
背景 很多情况下,我们编写了一些工具库之后,往往在某些框架版本中会出现一些问题,比如本人最近写的一个导入导出的工具库Magicodes.IE(GitHub:https://github.com/xin ...
- 一个C#开发编写Java框架的心路历程
前言 这一篇絮絮叨叨,逻辑不太清晰的编写Java框架的的一个过程,主要描述我作为一个java初学者,在编写Java框架时的一些心得感悟. 因为我是C#的开发者,所以,在编写Java框架时,或多或少会带 ...
- 自己动手编写IOC框架(一)
博客创建了2年多了,一直没敢写点东西,怕技术不够误导了别人.2年多后的今天我已经很有信心能够为需要帮助的人做点微薄的贡献了.这是我第一次写博客,先自我介绍一下.本人网名泪滴,一个非常伤心的名字,生活中 ...
- ALSA声卡08_从零编写之框架_学习笔记
1.整体框架 (1)图示((DAI(全称Digital Audio Interface)接口)) 在嵌入式系统里面,声卡驱动是ASOC,是在ALSA驱动上封装的一层,包括以下三大块 (2)程序框架 m ...
随机推荐
- js 裁剪图片
js 裁剪图片 https://gugeji.com/search?q=js剪切图片
- redux & connect
redux & connect import React, { Component, // useState, // useEffect, } from 'react'; import { b ...
- VAST维萨币二月发行,高倍币重现江湖!
市场长期的历史经验表明,经营盈利能力最好的企业,经常是那些现在的经营方式与5年前甚至10年前几乎完全相同的企业.这个经营模式放到币圈也是一样的,2020年的挖矿是最火的,这个模式现在在市场也同样受用. ...
- 人物传记Kyle Tedford:数据环境生变,银行大数据风控怎么办?
数据是金融业务的基石,监管集中清查大数据公司,很多东西在发生根本性改变,资金方做"甩手掌柜"的好日子不会重现.那些缺乏自主风控能力的金融机构,在未来的行业竞争中,恐无以立足了.近日 ...
- AtCoder Beginner Contest 192 F - Potion
题目链接 点我跳转 题目大意 给定 \(N\) 个物品和一个 \(X\) ,第 \(i\) 个物品的重量为 \(ai\),你可以从中选择任意个物品(不能不选) 假定选择了 \(S\) 个物品,物品的总 ...
- 小记一下递归通过id寻找一条链路的数据
Array.prototype.remove = function(val) { var index = this.indexOf(val); if (index > -1) { this.sp ...
- 最实用JS 留着学习
1.A标签删除 function input(){ var b = window.confirm("确认要删除本条信息!"); if(b==true){ ret ...
- Python处理不平衡数据
参考文献 所谓的不平衡数据集指的是数据集各个类别的样本量极不均衡.以二分类问题为例,假设正类的样本数量远大于负类的样本数量,通常情况下通常情况下把多数类样本的比例接近100:1这种情况下的数据称为不平 ...
- python进阶(9)多线程
什么是线程? 线程也叫轻量级进程,是操作系统能够进行运算调度的最小单位,它被包涵在进程之中,是进程中的实际运作单位.线程自己不拥有系统资源,只拥有一点儿在运行中必不可少的资源,但它可与同属一个进程的其 ...
- Mac忘记密码
1.启动电脑的时候,按住 Command+R,直到苹果的图标出现,松开,等待进入... 2.直接点击菜单栏上有个功能里面有 "终端" 功能,点击打开. 3.在终端页面里输入---& ...