gpt4 book ai didi

c++ - 我如何找出从哪些类中调用了哪些函数?

转载 作者:行者123 更新时间:2023-11-28 03:49:42 25 4
gpt4 key购买 nike

我使用的是物理工具包 (Geant4),它包含数千个 C++ 头文件和类文件。为了使用该工具包,您必须编写一系列您自己的类文件,为工具包提供一些关于您尝试建模的基本信息。然后编写一个 main() 文件,将这些文件注册到工具包中,“制作”它,然后执行最终程序。我正在使用 Ubuntu 10.10 作为执行此操作的平台。

我想更好地了解该工具包的运作方式。具体来说,我想找出整个工具包中哪些类文件中的哪些函数在程序运行时被调用,以及调用顺序是什么。

一种有点蛮力的方法是在每个文件中标记每个函数,例如insert cout << "File Name, Function Name"<< endl 作为每个函数主体中的第一条语句,并将其全部输出到文本文件。但是,我需要浏览大约 3000 个文件,这会有点……耗时。

有没有更简单的方法来找出调用了哪些函数?我已经搜索了工具包手册,除非我遗漏了什么,否则我看不出有什么办法可以通过工具包做到这一点。我想我需要在终端或外部程序中使用一些命令?!?

如有任何帮助、建议或建议,我们将不胜感激!

最佳答案

在 ubuntu 上,您可以选择分析器。

我个人很喜欢

valgrind --tool=callgrind ./myprogram
kcachegrind

为此,因为它创建了非常好的调用图和统计数据( TreeMap 可视化)。

重要的常见问题分析器主题在这里:How can I profile C++ code running in Linux?

最重要的是:gprof(需要检测)、oprofile 和 perf record -g 也很容易上手

关于c++ - 我如何找出从哪些类中调用了哪些函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5924266/

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