ConstantStruct或ConstantArray读取内存内容
ConstantStruct or ConstantArray read memory content
我正在写一些llvm(3.7)pass,我需要一些关于Constant类的信息。在我正在解析的llvm IR中,有"ConstantStruct"或"ConstantArray"实例,它们被用作全局变量的初始化器。例如:
%struct.S = type { i32, i32, i32, i32 }
@s = global [2 x %struct.S] [%struct.S { i32 6, i32 8, i32 -8, i32 -5 }, %struct.S { i32 0, i32 2, i32 -1, i32 2 }], align 4
如果我可以读取这些常量的内存,而不必递归地遍历所有元素(也可以是ConstantStructs或数组),我的工作会容易得多。
例如,我需要一个功能
llvm::ConstantStruct* initializer = globalVar->getInitializer();
void* memoryContent;
int sizeInBytes = initializer->getMemoryContent(&memoryContent);
到目前为止,我必须一个接一个地阅读元素,这是一个痛苦(而且容易出错)的过程。
任何提示都将不胜感激。
我只是知道这是不可能的,因为初始化操作数中可能存在ConstExpr。
然而,我设法获得了一个很好的递归实现,其中对valueId进行了大的切换。
相关文章:
- 我无法从内存中读取值
- 如何读取特定地址的进程内存?
- 使用 OpenSSL 从内存中读取原始 SSL/TLS 证书
- 如何在 WSL 2 中读取物理内存?
- 如何使用带有矢量的 winapi 读取进程内存从另一个进程读取缓冲区?
- 从只读内存中读取结构
- 当注入程序的内存空间时,如何读取从 0 到 0xFFFFFFFFF 的每个字节?我正在创建模式扫描仪
- 如何运行外部程序,向其传递内存地址以读取/写入?
- C++指针将内存读取为 0
- 读取进程内存多级指针(DLL 注入)
- 组织从内存读取的数据的最佳方法(用于调试)c++
- 使用ClgetDeviceInfo从内存读取访问违规
- C++ - 分叉进程无法从共享内存读取
- C# 简化多指针的内存读取
- Linkedlist内存读取错误
- 从原始内存读取值(符合MISRA)
- c++ DLL内存读取崩溃
- 在wwpal rabbit中从内存读取数据
- c++中什么是预内存读取?
- 优化内存读取和写入的长期运行