Могу ли я просматривать трассированные события в пользовательском пространстве LTTng и события ядра вместе в Trace Compass? - PullRequest
0 голосов
/ 21 февраля 2020

Я использую LTTng для отслеживания событий ядра и точек трассировки пространства пользователя. Я хочу визуализировать их вместе в одном окне Trace Compass. Однако LTTng сохраняет события ядра и события пользовательского пространства в отдельных файлах трассировки, что не позволяет мне просматривать их вместе в Trace Compass.

Кто-нибудь здесь знает, как выполнить одно из следующих действий:

(1) сохранить оба вида событий в одном файле? или

(2) использовать Trace Compass для объединения информации из двух файлов трассировки?


Подробности:

Я использую LTTng отследить два вида событий:

(1) события ядра sched_switch (когда планировщик вызывает переключение контекста)

(2) пользовательские точки трассировки в пользовательском пространстве (я назвал их setMarkerTracepoint и отправил из моя программа на C ++)

Я использую следующие команды для настройки сеанса трассировки и запуска трассировки

# trace data is saved at TRACE_DIR
TRACE_DIR=/home/root/lttng-traces
lttng-sessiond --daemonize
lttng create my-session --output=$TRACE_DIR
lttng enable-event --userspace tracepointProvider:setMarkerTracepoint
lttng enable-event --kernel sched_switch
lttng start

Затем я запускаю свое приложение C ++ и останавливаю трассировку LTTng после завершения работы моего приложения.

lttng destroy

Теперь, когда я проверяю, где были сохранены мои данные трассировки, я нахожу 2 местоположения с данными трассировки:

(1) / home / root / lttng-traces / kernel /

(2) / home / root / lttng-traces / ust /

Я использую Trace Compass для визуализации трасс. Файл в каталоге ядра содержит все события sched_switch, но не содержит событий setMarkerTracepoint. Файл в каталоге ust имеет наоборот.

Trace with kernel events but doesn't have userspace tracepoints

Trace with userspace tracepoint but doesn't have kernel events

Я хочу просматривать события sched_switch и мои точки трассировки в моем коде C ++ в одном и том же окне Trace Compass.

Руководство пользователя Trace Compass и Документация LTTng не говорит об использовании ядра трассировка и трассировка пространства пользователя вместе.

Я думаю, что это возможно сделать, потому что, если я использую команду lttng-view с установленной babeltrace, я могу видеть оба вида событий, перечисленных в информации, напечатанной lttng-view.

Любая помощь будет оценена! :)

1 Ответ

1 голос
/ 22 февраля 2020

В трассировочном компасе объединение нескольких типов трасс или трасс выполняется через «Эксперимент».

Вы можете следовать этому разделу документации: Создание эксперимента

...