0

对于 function 中的以下语句func(),我试图找出指向 malloc 内存区域的变量名称(在示例中为“字典”)。

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

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

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

4

1 回答 1

0

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

于 2013-11-28T22:47:49.907 回答