用于生成调用流程图的工具 [C C++ Solaris linux]

发布于 2024-10-31 20:30:38 字数 842 浏览 2 评论 0原文

我非常喜欢 IDA,但我在 Solaris 上从事这个项目。我确实有一台 Linux 机器,如果没有任何东西与 IDA 处于同一联盟,那么我将说服管理层为其购买许可证。

除此之外,我正在寻找替代建议。 IDA 中的一些其他功能会很方便,但我目前需要的主要是一个基于源代码的调用流程图生成器。如果它需要构建步骤的额外输出,那很好,但是我需要查看的一些库没有源代码。

到目前为止,看起来我最好的选择是 Valgrind 的 Callgrindlidagprof。欢迎任何进一步的建议。

回复:gprof,Windriver 向我们提供的 GNU 编译器集缺少一些通常由 GNU 编译器提供的库,以提供(除其他外)用于分析的工具。对于更普遍的问题来说,这是一个很好的解决方案,但现在我选择先尝试其他解决方案。

编辑 一些 Rational 工具(Purify、Quantify 等)也可能对此很有效。我和 IDA 的想法是一样的,但我想有人在谷歌上搜索可能会发现这个建议很有帮助。

edit2 Valgrind 尚未移植到Solaris/sparc ;p

I'm quite fond of IDA, but I'm working in Solaris on this project. I do have a linux machine, and if nothing is in the same league as IDA then I'll convince management to purchase a license for it.

Barring that, I'm looking for alternative suggestions. Some of the other features in IDA would be handy, but the main thing I need at the moment is a call flow graph generator not based on source code. If it needs extra output from the build step, that's fine, but some of the libraries I need to look at I don't have source for.

So far, it looks like my best choices are Valgrind's Callgrind, lida, and gprof. Any further suggestions are welcome.

re: gprof, the GNU compiler set provided to us by Windriver is missing some libraries that would normally be supplied with a GNU compiler to provide (among other things) facilities for profiling. It's a good solution to the more general problem, but for now I'm opting to try other solutions first.

edit Some of the Rational tools (Purify, Quantify, etc) might also work well for this. I'm in the same boat as with IDA with that, but I figure someone googling might find the suggestion helpful.

edit2 Valgrind hasn't been ported to solaris/sparc ;p

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

最笨的告白 2024-11-07 20:30:38

查看 ERESI 项目。它是一个逆向工程框架,有一个名为 ELFsh 的工具,具有从机器代码生成 CFG 的功能。它还没有稳定/最终版本,但值得一试。

如果您想尝试一下:

  • 下载并安装(Ubuntu 上为 apt-get)
  • 并运行 elfsh32。您将进入一个 shell。
  • 加载二进制文件:load /bin/bash
  • 分析它:analysis
  • 生成图表:graph

您将获得 .dot 格式的图表,并且渲染的 PNG(这个太大了,无法在此处发布)。

Take a look at the ERESI Project. It's a reverse engineering framework and it has a tool, called ELFsh, with capabilities of generating CFG from machine code. It doesn't have a stable/final yet, but it's worth a shot.

If you want to try it:

  • download and install (apt-get on Ubuntu)
  • run elfsh32. You'll enter a shell.
  • load your binary: load /bin/bash
  • analyse it: analyse
  • generate the graph: graph

You'll get a graph in .dot format and a rendered PNG (this one was too large to post here).

锦爱 2024-11-07 20:30:38

您可以使用 Gprof 生成调用图。可以使用 Kprof 对其进行可视化。

You can generate a call graph with Gprof. It can be visualized with Kprof.

柳絮泡泡 2024-11-07 20:30:38

答案很晚,但仍然有用。在 Solaris 上,您可以使用 collect

  • collect your_program your_args...
  • 它将生成一个类似 test.1.er 的目录,
  • 然后您可以使用 er_print -calltree test 在控制台上可视化调用图。 1.er
  • 或在 X-Window 上使用分析器

Very late answer but can still be useful.. On Solaris you can use collect.

  • collect your_program your_args...
  • It will generate a directory like test.1.er
  • You can then visualize the call graph on the console with er_print -calltree test.1.er
  • Or on X-Window with analyser
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文