跟踪特定的Xenomai线程:按名称命名吗?

时间:2019-04-05 16:15:57

标签: linux c++11 trace ftrace xenomai

基本问题很简单: 我有一个实时(基于Xenomai API)的应用程序,负责定期启动可执行文件列表。 我的目标是监视整体执行情况,以查看这些任务是否遵守了期限,测量其执行时间等以进行一些统计分析。

问题在于这些信息的监视和记录:我找不到如何具体记录这些进程的执行情况(即不是整个linux线程,因为我至少需要在30天内运行测试)分钟:数据太多。.!)使用外部专用工具

我的第二个选择是直接在我的软件上实现此功能,但是我不知道如何以一种很好的方式来避免不必要的开销(记住:我正在实时进行)。但是,这是一个计划B,只有在当前问题找不到解决方案的情况下,它才会成为问题。 :)

我已经尝试过的东西

我最初的想法是将ftrace与trace-cmd工具一起使用。 但是,我有几个问题:

  • 如果我使用trace-cmd命令行运行应用程序

     sudo trace-cmd record -e all -F ./Application.out -c
    

,Xenomai不喜欢sudo,并且事物被阻止(首次启动的任务被填充并继续执行...)。

  • 如果我在一侧运行应用程序,然后将ftrace附加到它

    trace-cmd record -e all -P [taskPID] -c
    

,我设法使所有内容都运行起来...但是当我通过PID附加到它时,我无法监视所有已创建的子任务,而我只能得到主要的应用程序跟踪。

  • 监视所有内容的唯一方法是摆脱“ -P [taskPID] -c ”,但随后我将跟踪所有内容,并且我的文件在几分钟内就到达了Go状态... 从这一点来看,我尝试查看是否可以在trace-cmd上使用过滤器以使用最后一个选项,但是要过滤任务以仅跟踪以“ RT_”开头的线程名称的任务,但是我找不到这个……而且所有ftrace似乎都无法满足我这一方面的需求。

因此简而言之: 1)我可以用来获取所需数据的ftrace某些选项的任何线索吗? 2)如果没有,其他工具可以做到吗?我也看到了Strace,但看起来我将遇到完全相同的问题... 3)如果没有,我唯一的选择是真的要在应用程序中进行所有测量,因此,我应该创建另一个问题,以查看实现此目标的最佳方法。 (希望我们不会到达第3点)!!)

在此先感谢您的帮助!

0 个答案:

没有答案