【发布时间】:2011-08-20 22:09:24
【问题描述】:
我正在使用一个包含数千个 C++ 头文件和类文件的物理工具包 (Geant4)。为了使用该工具包,您必须编写一系列您自己的类文件,为工具包提供一些关于您尝试建模的基本信息。然后,您编写一个 main() 文件,将这些文件注册到工具包中,“制作”它,然后执行最终程序。我正在使用 Ubuntu 10.10 作为执行此操作的平台。
我想更好地了解该工具包的运作方式。具体来说,我想了解整个工具包中哪些类文件中的哪些函数被调用,以及程序运行时的调用顺序。
一种有点蛮力的方法是标记每个文件中的每个函数,例如插入 cout
有没有更简单的方法来找出调用了哪些函数?我已经搜索了工具包手册,除非我遗漏了什么,否则我认为无法通过工具包执行此操作。我想我需要终端上的一些命令或外部程序?!?
任何帮助、建议或意见将不胜感激!
【问题讨论】:
-
我建议你使用 Doxygen 和 GraphViz 来为你做这件事。这是一个excellent answer,应该可以帮助您入门。我希望这就是你要找的。span>
-
好的,谢谢你的建议。我已成功安装 doxygen 并运行它以记录 Geant4 的源文件。不过,在我走得更远之前......我怀疑这是否是正确的......所以,这个程序会给我这个工具包和文件依赖关系的完整文档,对吧?唯一的问题是我看不到这会告诉我工具包如何运行我创建的程序。当然,这只是告诉我工具包一般是如何交互的,但它不会告诉我在运行我的特定程序时它会做什么?还是我错过了什么?
-
不,你是对的。我不是 100% 确定您是想要通用流程可视化(典型)还是每次运行(在 C/C++ 中更难做到)。这仍然是一个有价值的工具,但看起来并不是您所需要的。
-
没关系。感谢您的意见。你说得对;它看起来是一个非常有用的工具,如果你没有建议,我可能不会找到它。我将在攻读博士学位期间进行大量编码,因此我毫不怀疑它迟早会将我从编码挫折的深渊中解救出来! :)