如何在llvm中获取全局变量的实际值

R.O*_*mar 5 llvm clang llvm-clang

例如:

int x=0;
int y=0;
Run Code Online (Sandbox Code Playgroud)

其中x和y是全局变量,在main()函数中,我们执行以下操作:

x++;
y++;
Run Code Online (Sandbox Code Playgroud)

如何在llvm中获取全局变量x和y的最新值。

当我尝试执行此操作时,errs()<<g;它们给出的初始值为,@BB0 = global i32 但我需要x=1使用llvm 获得实际值,如。

Oak*_*Oak 3

全局基本上是一个指针。您可以通过主机程序获取地址ExecutionEngine::getGlobalValueAddress,然后可以取消引用该地址以获取存储的值。