LLVM中, 如何使用LLVMDumpValue来获取推送到stderr中的字符串,也就是用LLVM-C来获取得到LLVM 参数的类型名称字符串
时间: 2024-01-29 15:02:24 浏览: 21
LLVM-C API提供了一个函数`LLVMDumpValue()`, 它将一个LLVM值作为输入,并将其打印到标准错误输出中。如果需要将这个字符串保存到一个变量中,可以使用`LLVMGetDiagMessage()`函数来获取标准错误输出中的字符串。
下面是一个使用LLVMDumpValue()和LLVMGetDiagMessage()函数的示例代码,用来获取LLVM参数的类型名称字符串:
```
#include <stdio.h>
#include "llvm-c/Core.h"
int main() {
LLVMValueRef val = ...; // get a pointer to the LLVM value you want to dump
LLVMDumpValue(val); // dump the value to stderr
char *error = LLVMGetDiagMessage();
printf("LLVM value type name: %s\n", error);
LLVMDisposeMessage(error); // free the error message buffer
return 0;
}
```
在这个例子中,我们首先获取一个指向要转储的LLVM值的指针,并将其传递给LLVMDumpValue()函数。然后,我们使用LLVMGetDiagMessage()函数来获取标准错误输出中的字符串,并将其打印到控制台上。最后,我们使用LLVMDisposeMessage()函数来释放存储错误消息的内存。
请注意,这个示例代码中的LLVMValueRef类型的变量val需要是有效的LLVM值。如果需要获取函数参数的类型名称字符串,可以使用LLVMGetParamTypes()函数来获取函数参数类型列表,并使用LLVMGetTypeByName()函数来获取每个参数的类型名称。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)