【问题标题】:What the best multi-thread application debugger for C++ apps什么是 C++ 应用程序的最佳多线程应用程序调试器
【发布时间】:2010-05-09 05:32:50
【问题描述】:

我正在寻找一个好的多线程感知调试器,能够在Linux上显示应用程序线程的性能图表,不知道这样的东西是否存在,也许作为一个Eclipse插件。 这个想法是跟踪每个线程的内存分配和 CPU 使用情况,以及能够中断线程并检查其堆栈跟踪、本地变量等。 它不一定是 eclipse 插件或免费工具,你们有没有听说过类似的东西?

【问题讨论】:

    标签: c++ linux multithreading unix pthreads


    【解决方案1】:

    Qt Creator 确实提供了有关per-thread basis 的信息。它还具有您期望从任何标准调试器中获得的功能。 (手表、断点等)

    虽然设计用于编译 Qt 应用程序,但它几乎可以用于任何 C++ 项目。 (我以前用它来编译/编辑非 Qt 应用程序。)

    【讨论】:

    • 虽然 QT Creator 从来没有这样的工具,非常简洁,我会看看它。您上次将它用于多线程应用程序时是使用简单的 pthread 还是某些特定的 Qt 线程类?
    • @Core:嗯...我认为是 Qt 线程,但如果它不适用于本机线程,我不会感到惊讶。
    【解决方案2】:

    TotalView(和MemoryScape)并没有完全按照您在其默认演示中的要求,但它提供了您需要的数据。它要花钱,但找不到更好的适用于 Linux 的 C++ 调试器。

    提供免费试用,并且在他们的支持网站上有许多很酷且有用的videos

    【讨论】:

    • 我以前下载过totalview的演示,一直没有机会真正查看它,我去看看视频看看,谢谢!
    【解决方案3】:

    如果您使用的是 linux,则可以使用业内最强大的调试工具之一 - Valgrind。阅读它,尤其是关于它的 additional tools,比如 Helgrind。

    当然,与商业工具相比缺乏可视化,但你无法超越它的详细程度。

    【讨论】:

    • 我很久以前就一直在使用 valgrind,漂亮的工具,但是出于本研究的目的,我没有看到任何图形工具,但不符合我当前需求的 alleyoop,也许是时候了从事项目以获得更好的可视化?
    • @Coredumped - 将现有的出色工具扩展为更加出色始终是一个好项目;)
    • Eclipse CDT 或多或少地集成了 Valgrind 和一个可以很好地绘制图表的 UI。添加到 Callgraph 和 Systemtap,您甚至可以在内核级别进行相当深入的性能分析(对于 Systemtap,请参阅 access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/… 以获得对初学者友好的介绍)。
    猜你喜欢
    • 2010-11-21
    • 1970-01-01
    • 2010-09-08
    • 1970-01-01
    • 2011-08-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-01
    相关资源
    最近更新 更多