gpt4 book ai didi

GCC代码统计/分析

转载 作者:行者123 更新时间:2023-12-03 03:33:09 26 4
gpt4 key购买 nike

GCC/G++ 是否有可用于输出分析的选项?

能够比较以前的代码与新代码之间的差异(大小、类/结构的大小)将很有用。然后可以将它们与之前的输出进行比较以进行比较,这对于许多目的都是有用的。

如果没有此类输出分析可用,获取此类信息的最佳方法是什么?

最佳答案

GCCXML是一个(GCC 变体),以 XML 格式转储符号和类型声明数据。其中可能有也可能没有您关心的“属性”。

如果您想要特定信息,您可以通过 GCC 来生成它。学习曲线可能漫长而艰难,因为 GCC 希望成为一个编译器,而不是一个你最喜欢的属性转储器,而且它是一个庞大而复杂的工具。您可能有某种机会使用“结构大小”,因为编译器必须在某个地方计算它,并且将它与有关结构声明的信息一起存储似乎是合理的。我希望某些命令行开关确实会输出一些信息,您可能会考虑尝试模拟这些信息。如果您想要真正奇怪的属性,例如“循环内的注册压力”,您将必须深入到编译器内部。

如果您希望从源代码中获得通用属性,您将需要使用集成了强大 C 前端的语言处理框架。 Clang是一。它的学习曲线可能与 GCC 类似,但据说更适合像您这样的任务。我对此没有具体经验。

我们的DMS Software Reengineering Toolkit明确设计用于支持此类任务。它有一个完整的C Front End ,具有用于构建完整解析树、将标识符与其声明点、实际类型以及完全控制和数据流分析相关的符号表的 API。 DMS 还有一个完整的 C++ Front End ,具有类似的属性,但尚未提供流量分析信息。 DMS 允许您在此计算之上编写任意代码,无论您喜欢什么(任意属性)。

关于GCC代码统计/分析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4544311/

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