对于函数func()
中的以下语句,我试图找出指向malloc内存区域的变量名称(在示例中为'dictionary')。
Void func() {
uint64_t * dictionary = (uint64_t *) malloc ( sizeof(uint64_t) * 128 );
}
已检测的malloc()
可以记录分配的起始地址和大小。但是,不知道将被赋予的变量“字典”,编译器方面的任何功能都可以帮助解决这个问题,而无需修改编译器来设置这样的赋值语句?
我一直在想的一种方法是使用变量'dictionary'和函数'malloc'在一个源代码行上或彼此相邻的特性,矮人提供行信息。
答案 0 :(得分:0)
使用Clang和LLVM可以做的一件事就是使用调试信息发出代码,然后查找malloc
个调用。这些值将分配给LLVM值,这些值可以通过调试信息元数据跟踪(当没有使用优化编译时)到原始C / C ++源代码。