从 DOxygen XML 输出中提取函数调用列表

2024-01-21

我发布了一个question https://sourceforge.net/projects/doxygen/forums/forum/130994/topic/3875842在 DOxygen 论坛上,也将其发布在这里以获得更好的回应。

我有一个中等规模的 C 项目,约有 2,900 个函数。我正在使用 DOxygen 1.5.9,它成功生成了函数的调用图。有没有办法将其提取出来进行进一步分析?一个简单的配对列表就足够了,例如

Caller,Callee
FunctionX, FunctionY
...

我对 XSLT 很满意,但我必须说 DOxygen XML 输出很复杂。有没有人以前做过这个并且可以提供一些关于如何解析 XML 文件的指导?

提前致谢!


根据我在创建的人为示例中看到的内容,

  • 解析名称类似的文件^_(.+)\d+(c|cpp|h|hpp)\.xml$,如果我的 regex-foo 是正确的。
  • 找到所有<memberdef kind="function">。它有一个独特的id属性。我相信这个的 XPath 是//memberdef[@kind='function'].
  • 在该元素内,找到所有<references>.
  • 对于每个标签,refid属性唯一指的是id对应的属性<memberdef>正在被调用。
  • 每个中的文本节点<references>对应于<name>对应的<memberdef>正在被调用。

这似乎是表达调用图的一种很好、直接的方式。使用 XSLT 或任何其他合理的 XML 解析套件来获得所需的结果应该不会有任何问题。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 DOxygen XML 输出中提取函数调用列表 的相关文章

  • 代码文档生成工具Doxygen教程及实例

    程序员的很多文档 xff0c 特别是有代码的文档 xff0c 绝大部分都是由一款文档生成工具 Doxygen 生成 什么是Doxygen Doxygen 是一个程序的文件产生工具 xff0c 可将程序中的特定批注转换成为说明文件 通常我们在
  • doxygen教程-6-把注释放在其他位置

    文章目录 把注释放到成员之后 注释在头文件和源文件的分布 Structural commands 把注释放到 几乎 任意位置 只有先注释高层级的结构 才会显示低层级的注释 把注释放到成员之后 这里出现了新词 成员 member 在官方手册里
  • 未解决的外部噩梦

    各位行业资深人士 大家好 我是一名大三学生 即将开始我的第一次暑期编程实习 但我的能力已经超出了我的能力范围 我工作的公司从另一家公司购买了一个庞大的应用程序 该公司自 90 年代初以来一直在慢慢扩展和修改它 该解决方案包含超过 200 0
  • 使用 doxygen 扩展 makefile 以生成库和文档

    我已经实现了一个二叉树程序 其中包括带有函数的tree c 带有它们的声明的tree h以及用于测试的main c 另外 我有一个 makefile 它是 CC gcc CFLAGS g Wall DEPS tree h OBJ main
  • 如何使用 doxygen 从 C++ 源代码创建 UML 类图

    我一直在寻找一些描述如何使用 doxygen 生成简单类图的材料 但找不到 有人可以帮忙吗 I need to create diagrams as shown below from a set of C files 如果有更好的工具可以更
  • 我应该如何使用 Doxygen 对 typedef 进行分类?

    我的 C 代码中有 typedef 结构 截至目前 它们被列为 var类型定义 有一个更好的方法吗 下面是我所拥有的示例 var typedef etc brief A type defined structure for etc para
  • 在 Objective-C 中,什么实用程序在注释中使用 @brief 标签?

    我刚刚开始使用 Objective C 编程 发现了一些示例注释 如下所示 brief The UIImageView we use to display the image generated from the imageBuffer 目
  • 生成 C 代码的调用图 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • Doxygen-如何记录具有非标准扩展名 (.INI) 的文件

    我有一个简单的问题 如何记录 INI 文件 我有一个具有以下布局的 C 项目 readme txt src main cpp data simple ini 我从 readme txt 和 main cpp 生成文档没有问题 但 simpl
  • python 中的 Doxygen C++ 注释字符串解析器?

    有人知道有一个 python 模块可以解析 doxygen 风格的 C 注释字符串吗 我的意思是像这样的字符串 简单的例子 A constructor A more elaborate description of the construc
  • 如何生成 rdoc 风格的可折叠代码段?

    我正在使用 Doxygen 为 C 项目创建内部文档 我让 Doxygen 包含方法的源代码等 但这使得页面难以扫描 我希望它的行为像 rdoc 一样 并将源代码隐藏在默认折叠的块中 我以为HTML DYNAMIC SECTIONS可能会让
  • 如何避免 c++ 和 boost::python 文档之间的冗余?

    我使用 boost python 在 C 代码中添加 python 模块 C 项目使用 doxygen 进行记录 我想为 python 模块创建一个文档 但我不知道如何不像这样冗余 include
  • 我应该如何记录继承的成员? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 考虑一下我有一个复杂的类结构 其中许多元素继承自其他元素 我可能有一个方法GetStuff string stuffName int count
  • 如何在 Doxygen 示例中保留注释

    我有一个简单的方法 带有一条注释 我想在我的 doxygen 主页中用作示例 code void showNum int numToDisplay This is just a method to display a value std c
  • doxygen 中的方程

    我将 amsmath 包含在我的 doxygen 中 我写道 f equation x 2 f 但 doxygen 的结果是 begin equation x 2 end equation 而不是方程 x 2 有谁知道出了什么问题吗 你做得
  • 如果我使用 DOT 和 doxygen,如何更改由 graphviz 创建的图表在 HTML 中的位置?

    我在 doxygen 中使用 dot 和 Graphviz 以 HTML 格式创建代码的用户手册 doxygen 代码看起来有点像这样 br addtogroup MainProgram dot digraph G Main label M
  • Doxygen 速度慢

    Doxygen 在我们的代码库上运行大约需要 12 小时 这主要是因为有大量代码需要处理 约 150 万行 然而 我们很快就无法进行夜间文档更新 因为它们花费的时间太长 我们已经不得不减少图表深度以将其缩短至 12 小时 我已经尝试过标准方
  • Python 中 doxygen 风格文档字符串的 Vim 语法高亮显示

    我开始与doxygen生成我的 Python 代码的文档 我用doxypy过滤器来预处理 Python 文档字符串 我的目标是在 Python 中对 doxygen 注释进行良好的语法突出显示 当写我的mainpage在专用的 dox 文件
  • Doxygen 和 Objective-C 类别

    尽管 Doxygen 的最新版本声称可以更好地处理 Objective C 类别 http www doxygen nl manual changelog html 它似乎仍然对我的源代码中的类别感到窒息 我想知道是否有人已经让它正确地记录
  • 将 doxygen 的图表从上到下方向翻转为从左到右

    doxygen 图为 includes and 包含在 创建的嵌套深度从上到下递增 使用 1 8 5 由于我们的图大多是带有许多节点的浅图 这会导致非常宽的图和丑陋的水平滚动条 有没有办法教 doxygen 以从左到右的方向创建这些图 就像

随机推荐