我正在寻找一种方法来分析Linux用户程序中的多线程问题,而不会影响程序自身的行为。我想知道是否可以从内核事件跟踪器分析用户程序的多线程问题?
是的,LTTng 非常适合该用例,您可以从启用调度事件 (sched*(、状态转储事件 (lttng_statedump_*( 和系统调用事件开始,您应该很快对程序行为有一个很好的了解。您可以在 TraceCompass 中查看跟踪以直观地检查它,或使用 lttng 分析脚本从跟踪中提取使用情况和延迟指标。