如何从配置文件地址获取功能名称



我在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"调用,就好像它是函数一样!

最新更新