如何从配置文件地址获取函数名称?

我在Linux中放置了一个性能分析器,我无法将收集的堆栈跟踪信息映射到函数名称。如何从配置文件地址获取函数名称?

我现在打电话addr2line从我的后处理代码

FILE* pipe = popen("addr2line -f -i -s -C -e <libname> <address>", "r"); 

if (!pipe) return;

const size_t BUFFER_SIZE = 8192;

char buffer[BUFFER_SIZE];

string result;

while (!feof(pipe))

{

if (fgets(buffer, BUFFER_SIZE, pipe) != NULL)

result += buffer;

}

pclose(pipe);

但是如下,这是非常缓慢,因为我的个人资料有很多样品。有没有像addr2line这样的其他工具更快,或者我可以以比我更高效的方式调用addr2line?

回答:

我通过修改addr2line工具的源代码并将其转换为库来解决了这个问题。所以我现在将这个库加载到我的配置文件分析器中,并调用'addr2line',就好像它是一个函数!

以上是 如何从配置文件地址获取函数名称? 的全部内容, 来源链接: utcz.com/qa/260365.html

回到顶部