用于遗留 C/C 的代码分析工具++
正在寻找一个代码分析工具,用于 UNIX 上的一些遗留 C/C++ 代码 专门用于识别对
- 特定功能
- 特定(包括?)文件的
- 依赖关系文件/套接字 I/O 调用等
- 来自根的函数依赖关系树等。
looking for a code analysis tool for some legacy c/c++ code on unix
specifically to identify dependencies to
- specific functions
- specific (include?) files
- File/Socket I/O calls etc.
- function dependency tree from a root etc.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
Doxygen
可能就是您正在寻找的。它可以提供交叉引用、调用图和依赖树,而无需程序员的标记,这似乎正是您所需要的。Doxygen
is probably what you're looking for. It can provide cross-reference, call graphs and dependency trees without programmer's markups, that seems to be what you need.有 CodeViz:CallGraph 可视化工具。它使用 GraphViz 生成漂亮的大图形。
There is CodeViz: A CallGraph Visualizer. It uses GraphViz to generate nice big graphics.
我过去曾成功使用了解。它不是免费的,但有试用期,因此您可以对此提出意见。
I have used successfully Understand in the past. It's not free but it comes with a trial period so you could make an opinion about it.
您可以使用 LLVM 基础设施以及 Clang 或 llvm-gcc 来进行一些代码分析(例如,构建依赖关系图、搜索某些模式等)。
You can use the LLVM infrastructure for some code analysis (e.g., building dependency graphs, searching for certain patterns, etc.), alongside with Clang or llvm-gcc.
至于函数树等,我想到的是
doxygen
。请参阅下面 Ben Voigt 的评论。如果您只是尝试进行常规调试,那么在 Linux 中,
gdb
和valgrind
对于了解低级别发生的情况非常有用。在 Windows 中,Visual Studio 提供了许多类似的调试功能。你的问题有点模糊。您能告诉我们更多有关代码和您的任务的信息吗?
As far as function trees, etc.
doxygen
comes to mind. See Ben Voigt's comment below.If you're just trying to generally debug, in Linux
gdb
andvalgrind
are invaluable for figuring out what's going on at a low level. In WindowsVisual Studio
offers a lot of similar debugging functionality.Your question is a bit vague. Can you tell us a bit more about the code and your assignment?