Невозможно получить доступ к локальным переменным с помощью systemtap

Я только начинаю использовать systemtap. В моей 64-битной системе Ubuntu 13.04 я установил systemtap и dependencies + systemtap-doc и elfutils, затем добавил репозиторий ddep в мой apt / sources.list и установил пакет dbgsym для своего ядра (3.8.0-29.42).

Затем я попытался запустить примеры в / usr / share / doc / systemtap-doc / examples / general (например, key.stp), но получил

semantic error: not accessible at this address [man error::dwarf] ... identifier '$event_type' at key.stp:8:7

, а затем запустил «Работа вокруг разбитого файла dbgsym layount ... "- скрипт, как описано в wiki.ubuntu.com/Kernel/Systemtap

Тем не менее такая же ошибка и подобные ошибки возникают при запуске других скриптов всякий раз, когда локальный Переменная доступна.

Итак, я написал небольшой сценарий после раздела «Определение локальных переменных в точке проверки» на той же странице, чтобы дать мне список локальных переменных в kbd_event.

probe begin {
  printf ("probe installed")
}

probe kernel.function("kbd_event") {
  printf ("%s locals [%s]\n", probefunc(), $locals)
  exit()
}

, что дает мне

probe installed
kbd_event locals []

Таким образом, похоже, что Stap не видит локальных переменных, и вот где я застрял.

Есть идеи, что мне не хватает или что я мог бы попробовать дальше?

Спасибо!

PS: Та же процедура отлично работает на моем 64-битном 12.04 с ядром 3.2.0-49.75. [ 1113]

Обновление: теперь я даже пересобрал ядро ​​с помощью символов отладки, используя gcc 4.7, но все еще без улучшений.

1
задан 2 September 2013 в 10:31

0 ответов

Другие вопросы по тегам:

Похожие вопросы: