0
我想对ll文件做一些检测。我想要实现的任务之一是以下几点。如何获取在llvm中由allocaInstr字面分配的地址?
每当遇到一个像AllocaInstr:
%1 = alloca i32
我要仪器的功能call __save_addr()
后如下:
%1 = alloca i32
call __save_addr(i32* %1)
有没有办法来实现这一目标?
我想对ll文件做一些检测。我想要实现的任务之一是以下几点。如何获取在llvm中由allocaInstr字面分配的地址?
每当遇到一个像AllocaInstr:
%1 = alloca i32
我要仪器的功能call __save_addr()
后如下:
%1 = alloca i32
call __save_addr(i32* %1)
有没有办法来实现这一目标?
check是否是AllocaInst
。如果是,
Create a new CallInst
调用您的函数*,并传递AllocaInst
实例作为第一个参数。
*如果您的功能已经在模块中,您可以通过Module::getFunction
找到它;如果它在另一个模块中,则必须为其创建一个声明。