首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Linux中用于跟踪和可视化pthread行为的工具

Linux中用于跟踪和可视化pthread行为的工具
EN

Stack Overflow用户
提问于 2011-05-25 17:18:48
回答 3查看 5.4K关注 0票数 18

我渴望找到一种工具,可以让我在我正在开发的程序中跟踪pthread的行为。我知道以前有类似的问题,请参阅herehere

事实证明,推荐的工具并不是我所需要的,或者似乎不可能让它们在我的机器上工作。它是Debian6,在x86架构上是32位的。

结合了ViTEEZtrace似乎就是我想要的。但不幸的是,我不能让它工作。(工具在某些版本中无法编译,其他版本崩溃,从未真正看到它工作。不同的计算机(Ubuntu10.04 x64)显示其他错误)

有没有一种跟踪解决方案,能够可视化Linux上pthreaded程序的行为,并且实际上是有效的?

EN

回答 3

Stack Overflow用户

发布于 2011-09-26 16:52:30

Linux和OS/X

我使用过Memcheck,它的效果和广告宣传的一样。然而,我还没有使用可视化工具。不确定Helgrind的输出是否可以调整为使用kCachegrind查看。

Valgrind发行版包括四个sic有用的调试和分析工具:

  • Memcheck检测内存管理问题,主要针对C和C++程序。当程序在Memcheck的监督下运行时,会检查内存的所有读写操作,并截获对malloc/new/free/delete的调用。因此,Memcheck可以检测您的程序是否:

访问它不应该访问的内存...以危险的方式使用未初始化的值。内存泄漏。不会释放堆块(双重释放,不匹配的释放)。将重叠的源和目标内存块传递给memcpy()和相关函数。Memcheck会在错误发生时立即报告这些错误,并给出错误发生的源代码行编号...

  • Cachegrind是一个缓存分析器。它对CPU中的I1、D1和L2缓存执行详细的模拟,因此可以准确地定位代码中缓存未命中的来源……

Josef Weidendorfer的

  • Callgrind是对Cachegrind的扩展。它提供了Cachegrind所提供的所有信息,以及关于调用图的额外信息。在3.2.0版本中,它被合并到主要的Valgrind发行版中。另外还有一个令人惊叹的可视化工具,它可以更好地概述Callgrind收集的数据;它也可以用来可视化Cachegrind的输出。

  • Massif是一个堆分析器。它通过定期拍摄程序堆的快照来执行详细的堆分析。它会生成一个图形,显示一段时间内堆的使用情况,包括有关程序的哪些部分负责最大内存allocations...

的信息

  • 是一个线程调试器,用于查找多线程程序中的数据竞争。它查找被多个(POSIX )线程访问,但找不到一致使用(pthread_mutex_)锁的内存位置。这样的位置表明线程之间缺少同步,并且可能导致难以找到的计时相关问题。它对任何使用pthread的程序都很有用。这是一个实验性的工具,所以特别欢迎您的反馈,here.
票数 2
EN

Stack Overflow用户

发布于 2011-10-08 19:44:42

看看这个

http://lttng.org/ (Linux Trace Toolkit)

HTH

票数 1
EN

Stack Overflow用户

发布于 2014-01-31 21:34:20

可以绘制状态空间的图形,并检查违反的断言。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6122131

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档