目录
摘要
本文定义了一个最简单的pass插件,pass内容仅为打印一句函数名。同时使用最简单的编译方式:直接用llvm的命令进行编译pass。最后用命令行的方式加载自定义的pass插件。
本文目标:用最简单的方式运行自定义的pass插件,方便学习,测试语法!
环境:ubuntu20.04 + llvm11
其实使用的就是这篇文章里搭建的环境 - AFLGO教程 - 环境搭建 - 基于docker的aflgo源码编译
正文
主要内容分3部分
1、pass文件(CHLSimplePass.cpp)
2、要分析的程序 (hello.c)
3、编译以及运行的相关命令
pass文件
自己找个位置编写pass文件即可
#include "llvm/Pass.h"
#include "llvm/IR/Function.h"
#include "llvm/Support/raw_ostream.h"
using names