Linux 跟踪pthread调度
我想做的是创建某种图形,详细说明Linux中(两个)线程的执行情况。我不需要看线程做什么,仅仅是它们被调度的时间和长度,基本上是一条时间线 我花了几个小时在互联网上搜索跟踪pthreads调度的方法。不幸的是,我发现的两个项目需要内核重新编译()或glibc补丁,这两个我都做不到(大型、集中管理的系统,我没有sudo权限) 有没有其他方法可以做到这一点,或者我必须找到一台笔记本电脑,在上面我可以修补/重新编译任何我想要的东西 致意Linux 跟踪pthread调度,linux,multithreading,trace,Linux,Multithreading,Trace,我想做的是创建某种图形,详细说明Linux中(两个)线程的执行情况。我不需要看线程做什么,仅仅是它们被调度的时间和长度,基本上是一条时间线 我花了几个小时在互联网上搜索跟踪pthreads调度的方法。不幸的是,我发现的两个项目需要内核重新编译()或glibc补丁,这两个我都做不到(大型、集中管理的系统,我没有sudo权限) 有没有其他方法可以做到这一点,或者我必须找到一台笔记本电脑,在上面我可以修补/重新编译任何我想要的东西 致意 PS:我会链接到这两个项目,但网站不允许我(声誉
PS:我会链接到这两个项目,但网站不允许我(声誉<10)。不过,在Google上搜索项目名称的第一个结果是正确的。构建插入指令的glibc/libpthread.so不需要超级用户权限。作为的一部分的程序将使用插入指令的库运行您的程序。还有一个名为(在sourceforge上)的工具 它是一个包装器库,它截取对pthread库的常用函数的调用,并报告统计数据,比如使用锁、条件变量等的典型时间。。。
它目前无法导出跟踪,只能导出文本摘要报告。这看起来很有希望,我会记住这一点,以备将来我买得起软件包时使用。我只是尝试了评估版本,除非我忽略了什么,否则无法获得Linux版本中线程的图形跟踪,真可惜。基本上Linux版本是Helgrind()的一个昂贵版本。这很遗憾-我从未尝试过,但觉得它看起来很有趣-图表很漂亮,但是如果Linux版本不能生成它们,那么它就不是很有趣。谢谢你提到这一点。我又看了一眼NPTLTT,但似乎该项目自2006年以来就没有进行过,修补新的glibc版本似乎也不起作用。