将赋值的左侧变量与右侧函数调用的返回值匹配

时间:2013-11-27 13:49:46

标签: gcc llvm elf dwarf

对于函数func()中的以下语句,我试图找出指向malloc内存区域的变量名称(在示例中为'dictionary')。

Void func() {
   uint64_t *   dictionary = (uint64_t *) malloc ( sizeof(uint64_t) * 128 );
}

已检测的malloc()可以记录分配的起始地址和大小。但是,不知道将被赋予的变量“字典”,编译器方面的任何功能都可以帮助解决这个问题,而无需修改编译器来设置这样的赋值语句?

我一直在想的一种方法是使用变量'dictionary'和函数'malloc'在一个源代码行上或彼此相邻的特性,矮人提供行信息。

1 个答案:

答案 0 :(得分:0)

使用Clang和LLVM可以做的一件事就是使用调试信息发出代码,然后查找malloc个调用。这些值将分配给LLVM值,这些值可以通过调试信息元数据跟踪(当没有使用优化编译时)到原始C / C ++源代码。