生成呼叫流程图的工具[C C ++ solaris linux]

问题描述

| 我非常喜欢IDA,但是我正在Solaris上从事此项目。我确实有一台linux机器,并且如果没有什么机器与IDA处于同一联盟,那么我会说服管理层购买它的许可证。 除此以外,我正在寻找其他建议。 IDA中的其他一些功能将很方便,但是目前我需要的主要是不基于源代码的调用流程图生成器。如果它需要从构建步骤中获得额外的输出,那很好,但是我需要查看的某些库没有源文件。 到目前为止,看来我最好的选择是Valgrind的Callgrind,lida和gprof。欢迎任何其他建议。 re:gprof,由Windriver提供给我们的GNU编译器集缺少一些通常由GNU编译器提供的库,这些库提供(除其他功能外)进行概要分析。对于更一般的问题,这是一个很好的解决方案,但是现在,我选择首先尝试其他解决方案。 编辑一些Rational工具(Purify,Quantify等)可能也可以很好地工作。我和IDA在同一条船上,但我认为有人在谷歌搜索可能会发现该建议有用。 edit2 Valgrind尚未移植到solaris / sparc; p     

解决方法

看看ERESI项目。它是一个反向工程框架,它具有一个称为ELFsh的工具,该工具具有从机器代码生成CFG的功能。它还没有一个稳定/决赛,但是值得一试。 如果您想尝试一下: 下载并安装(在Ubuntu上为apt-get) 运行
elfsh32
。您将输入一个外壳。 加载您的二进制文件:
load /bin/bash
分析一下:
analyse
生成图形:
graph
您将获得.dot格式的图形和渲染的PNG(此图形太大,无法在此处发布)。     ,您可以使用Gprof生成调用图。可以使用Kprof可视化。     ,答案很晚,但是仍然有用。在Solaris上,您可以使用
collect
collect your_program your_args...
它将生成一个目录,例如ѭ6 然后您可以使用
er_print -calltree test.1.er
在控制台上可视化调用图 或在-8ѭ的X-Window上     

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...