У меня есть Ubuntu 14.04
с Linux-3.14.3-rt51
ядром. Мне нужно использовать Systemtap
, поэтому я скомпилировал свое ядро со следующими параметрами, выбранными во время make menuconfig
:
Общая настройка
[*] Kprobes
[*] Kernel->user space relay support (formerly relayfs)
Взлом ядра
[*] Debug Filesystem
[*] Kernel debugging
[*] Compile the kernel with debug info
Но когда я запускаю stap -v -e 'probe vfs.read {printf("read performed\n"); exit()}'
в моем ядре, Я вижу следующие предупреждения:
WARNING: cannot find module nfs debuginfo: No DWARF information found [man warning::debuginfo]
WARNING: cannot find module sunrpc debuginfo: No DWARF information found [man warning::debuginfo]
Что не так? Кто-нибудь может мне помочь?
Если Вам просто нужны символы ядра для выполнения systemtap, самый легкий путь состоит в том, чтобы установить dbgsym пакет для ядра, это будет намного менее болезненно, чем перекомпиляция целого ядра самим:
Голова к , Как установить отладочные символы ядра Ubuntu .
, Если нет никакого соответствия dbgsym пакета, Вы, возможно, должны были бы обновить свое ядро.
См. apt-cache search 'linux-image.*dbgsym'
для текущего списка ядер с отладочными символами.
Как Вы устанавливаете это пользовательское ядро на Вас система? И что используют точные Параметры конфигурации?
при использовании запаса ядро Ubuntu, можно выполнить следующие шаги для использования Systemtap: https://wiki.ubuntu.com/Kernel/Systemtap
Для пользовательских установок ядра Вы, возможно, должны удостовериться, что отладочные символы находятся в месте, которое Systemtap знает для проверки. При создании ядра с помощью make deb-pkg
, например, оно произведет linux-image-$KVER-dbg
пакет, который может быть установлен для надлежащей установки debuginfo символов.