[英]Get entry point of llvm::module
我已经用llvm::parseBitcodeFile
解析了一个位码文件,并且得到了llvm::Module
,我可以迭代模块的功能:
std::unique_ptr<llvm::Module>& M = *parsed;
for(auto& func : M->functions())
{
// how to identify the entry point?
}
而且我想确定模块的入口点(以及应用程序的入口点 - 如果有多个模块,其中一个应该有一个入口点..),但我无法在func
中找到任何事情要做那,识别入口点的正确方法是什么? (在大多数情况下,它将是main
功能,因此查找名称似乎可行,但并非总是如此)。
更一般地说,我正在寻找一种方法来找到我得到的一个/许多位码文件的入口点(如果有的话 - 也许是main
)。
LLVM 模块中没有“入口点”。 入口点是应用程序的一项功能,并且可能因源语言等而有很大不同。此外,由于 LLVM 模块以某种方式代表翻译单元,因此可能根本没有“主要功能”。
如果您碰巧知道要查找的函数的名称,那么您当然可以使用Module::getFunction
调用来执行基于名称的查找。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.