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