如何检索 LLVM 中函数调用期间传递的参数?

Posted

技术标签:

【中文标题】如何检索 LLVM 中函数调用期间传递的参数?【英文标题】:How to retrive the arguments passed during function call in LLVM? 【发布时间】:2021-05-24 06:45:57 【问题描述】:

我在 llvm 中有一个调用指令 'call void @calculate_output(i32 %14), !dbg !141'。 我想从中检索值对象 %14。 每当我尝试时,我都会得到形式参数而不是实际参数。

【问题讨论】:

【参考方案1】:

如果您获取形式参数,则表示您使用的是Function*,而不是CallInst*。你打电话给call->getFunction()了吗?

你需要的只是call->getArgOperand(0),见https://llvm.org/doxygen/classllvm_1_1CallBase.html#ab2caa29167597390ab2fc3cf30d70389

【讨论】:

以上是关于如何检索 LLVM 中函数调用期间传递的参数?的主要内容,如果未能解决你的问题,请参考以下文章

Postgresql 在另一个函数中调用一个函数,从主函数传递一个参数

函数参数的传递方式

Llvm C++ API 将指向函数的指针传递给另一个函数

React 组件上调用方法如何传递参数,除了匿名函数用更好的方法吗

delphi如何调用多个参数的函数

将模板参数传递给调用成员函数的函数