Não é possível acessar variáveis locais usando systemtap

1

Estou apenas começando a usar o systemtap. No meu sistema Ubuntu 13.04 de 64 bits, eu instalei systemtap e dependências + systemtap-doc e elfutils então adicionei o repositório ddep ao meu apt / sources.list e instalei o pacote dbgsym para o meu kernel (3.8.0-29.42).

Tentei executar os exemplos em / usr / share / doc / systemtap-doc / examples / general (por exemplo, key.stp), mas recebi

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

Em seguida, executei o script "Trabalhar em torno do lay-out do arquivo dbgsym ..." - script descrito em wiki.ubuntu.com/Kernel / Systemtap

Ainda o mesmo erro e erros semelhantes ocorrem executando os outros scripts sempre que uma variável local é acessada.

Então eu escrevi um pequeno script seguindo a seção "Determinar variáveis locais no ponto de teste" na mesma página para me fornecer uma lista de variáveis locais em kbd_event.

probe begin {
  printf ("probe installed")
}

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

que me dá

probe installed
kbd_event locals []

Então, parece que o stap não vê nenhuma variável local e é aí que estou preso.

Alguma idéia do que estou perdendo ou o que eu poderia tentar em seguida?

Obrigado!

PS: O mesmo procedimento funciona bem no meu 64bit 12.04 com o kernel 3.2.0-49.75.

Atualização: Eu agora reconstruo o kernel com símbolos de depuração usando o gcc 4.7, mas ainda não há melhorias.

    
por Nodebody 26.08.2013 / 13:02

0 respostas