生成 c/c++ 的动态调用图运行中的程序

发布于 2024-11-29 13:16:10 字数 153 浏览 0 评论 0原文

如果要可视化程序的运行,我想应该从获取程序的调用图开始。

但是如何在运行时获取 C/C++ 程序的调用图呢?

编辑:澄清一下,我目前正在 Linux 上运行,使用 g++,但我想如果我使用不同的平台,我也对解决方案感到好奇。

If one were to visualize the running of a program, I suppose one would start by getting the call graphs of the program.

But how would you get the call graph of c/c++ programs while on the run?

edit: clarifications, I'm currently running things on linux, using g++, but I suppose I am also curious about solutions if I'm using a different platform.

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

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

发布评论

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

评论(3

黯淡〆 2024-12-06 13:16:11

您可以使用 KCachegrind 生成和分析调用图基于 Valgrind callgrind 工具生成的数据。

You can use KCachegrind to generate and analyze call graphs based on data generated by Valgrind's callgrind tool.

豆芽 2024-12-06 13:16:11

SofwareVerify 的 Bug Validator(提供免费公开测试版) )这样做。

摘自主页:

C++ Bug Validator 提供应用程序运行时的自动执行历史记录。 无需重新编译或重新链接您的应用程序。 C++ Bug Validator 可处理调试信息和/或 MAP 文件。 C++ Bug Validator 允许您对整个应用程序或仅对您需要的 DLL 执行执行历史记录。

(我的标记)。

我不知道他们是如何做到的,但显然,这是可能的。

The Bug Validator from SofwareVerify (free public beta available) does this.

Excerpt from homepage:

C++ Bug Validator provides automatic execution history logging of applications as they run. There is no need to recompile or relink your application. C++ Bug Validator works with debug information and/or MAP files. C++ Bug Validator allows you to perform execution history logging on your entire application, or on just the DLLs you require.

(Markup from me).

I don't know how they do it, but obviously, it's possible.

情话难免假 2024-12-06 13:16:10

我使用 etrace 来跟踪程序的执行。

埃及 也做了同样的事情,但只对 C++ 提供有限的支持。

两者都要求程序使用 gcc 进行检测。

I've used etrace to trace executions of programs.

Egypt does the same thing, but only has a limited support for C++.

Both requires the program to be instrumented with gcc.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文