gpt4 book ai didi

xhprof - xhprof 是否记录函数来自的文件?

转载 作者:行者123 更新时间:2023-12-01 01:00:28 24 4
gpt4 key购买 nike

我正在使用 xhprof 来分析应用程序。我需要知道的是每个函数来自哪个文件,因为有些函数是全局的,有些函数有重复的名称(这是遗留代码,不要判断!;)从我所看到的 xhprof 没有返回这些数据它的输出,有人知道吗?

我希望我不必修改 xhprof 的源代码来返回这些数据...... :-)

谢谢你的帮助!

最佳答案

只是想说我是如何解决这个问题的,以防其他人觉得它有用。

最后我不得不修改 xhprof 源,但这是一个很小的变化。

在 xhprof.c 中,找到一个名为 *hp_get_function_name 的函数并将以下内容添加到变量列表的开头“int len;”之后:

  char              *finalName = NULL;
int finalLen;

然后在该函数的末尾,交换显示“return ret;”的行。为了
finalLen = strlen(ret) + strlen(ops->filename) + 10;
finalName = (char*)emalloc(finalLen);
snprintf(finalName, finalLen, "%s|%s", ops->filename, ret);

return finalName;

这将在文件路径前面加上管道( | )到每个函数名称,例如/path/to/foo.php|foo==>bar (如果没有这个修改,xhprof 将只输出 foo==>bar)。

我已经有一段时间没有进行 C 编程了,所以可能有更好的方法来做到这一点,但它为我完成了这项工作。

然后很容易在 iXHProfRuns 的实现中解析此输出 - 您只需要将字符串分解为 |分别获取文件路径和函数名。

希望这可以帮助!

关于xhprof - xhprof 是否记录函数来自的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23887543/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com