Systemtap causa um segfault, por quê?

1

Estou tentando monitorar as chamadas da biblioteca em todo o sistema. Eu escrevi este script para rastrear chamadas de biblioteca para libguestfs :

probe begin {
            printf("ok\n")
}
probe process("/usr/lib64/libguestfs.so.0.471.0").function("*") {
            print_usyms(ubacktrace())
}

Depois, salve-o como test.stp e execute "sudo stap test.stp". Eu precisava de algum processo que usa essas chamadas de função para que eu possa interceptá-las. Portanto, usei um programa simples chamado libguestfs-test-tool que faz parte do pacote libguestfs. SEGFAULTS! Não segfault se eu não executar stap.

Então, basicamente, eu tenho duas perguntas:

1- Por que isso está acontecendo? Eu fiz algo errado?

2- Eu preciso usar a funcionalidade ltrace, mas em todo o sistema. Para cada chamada de biblioteca, preciso chamar a API de nível superior junto com o pid do processo que chamou essa função. Eu tentei usar stap mas parece que tem alguns problemas de instabilidade ... Você tem alguma alternativa para mim?

p.s: Eu uso o CentOS 7 com o kernel 3.12.2.3

    
por MoeKav 04.06.2018 / 23:49

0 respostas