考虑:
int x[] = {1, 2, 3};
int main(){
return 0;
}
如果我们对数据部分进行 objdump,我们将得到变量 x,其起始地址和大小为(4*3)字节。有没有简单的方法来检索 x 是一个数组以及什么类型的信息?
我知道我们可以使用
dwarfdump -i a.out
来做到这一点,然后解析结果以实现相同的目的,但是有什么更简单的方法可以做到吗?我只需要检查它是否是一个数组以及什么类型?
您可以使用elfutils中的DWARF读取库来解析DWARF,找到变量,然后解码其类型。这很重要,但库确实有一点帮助。