Ошибка Systemtap libdwfl в Linux

Я пытаюсь работать/настраивать инструмент Systemtap для профилирования процесса ОС в виртуальном Linux. Я использую VirtualBox для запуска образа. Через

rpm -q kernel

а также

cat /proc/version

Получилась версия:

Linux version 2.6.32-5-686 (Debian 2.6.32-48squeeze4)

Я правильно скачал и установил инструмент и написал простую программу (.stp). Однако я продолжаю получать ту же ошибку, которую я безуспешно искал во многих местах:

После выполнения:

sudo stap my_profiler.stp

Я получил:

semantic error: libdwfl failure (all kernel modules found): no error
Pass 3: translation failed. Try again with another '--vp 001' option.

Согласно https://sourceware.org/systemtap/SystemTap_Beginners_Guide/errors.html.

⁠семантическая ошибка: сбой libdwfl Возникла проблема с обработкой отладочной информации. В большинстве случаев эта ошибка возникает из-за установки пакета kernel-debuginfo, версия которого не совсем соответствует тестируемому ядру. Сам установленный пакет kernel-debuginfo может иметь некоторые проблемы с согласованностью или правильностью.

Я не нашел соответствующей информации о пакете «kernel-debuginfo». Я также пробовал подробный вариант без каких-либо преимуществ. Я даже пробовал со старым снэпшотом виртуальной машины. Есть идеи?

Код программы .stp, которую я запускал:

probe timer.profile{
    printf("Process: %s\n", execname())
    printf("Process ID: %d\n", pid())
}

person DarkCygnus    schedule 05.08.2015    source источник


Ответы (1)


Нашел проблему!!!! Похоже, я использовал неправильную версию ядра Linux. Я использовал ядро ​​по умолчанию, предоставленное версией, которую я написал в вопросе. Кажется, что эта версия (2.6.32-5-686) имеет проблемы с debug-info, поэтому все, что я сделал, это попробовал то же самое с другой версией (версия Linux 3.9.6 с gcc версия 4.7.2 Debian 4.7.2-5) и все заработало без проблем :)

person DarkCygnus    schedule 07.08.2015