O SystemTap com debuginfo pode rastrear chamadas de função em bibliotecas; em um sistema Centos 7:
$ sudo stap -L 'process("/lib64/libglib*").function("*strndup*")'
process("/usr/lib64/libglib-2.0.so.0.5000.3").function("g_strndup")
$
E isso pode ser usado como um ponto probe
que imprime backtraces ou o que você quiser que possa ser gravado com o SystemTap:
probe begin {
printf("ok\n")
}
probe process("/usr/lib64/libglib-2.0.so.0.5000.3").function("g_strndup") {
/* printf("%s[%d]\n", execname(), pid()) */
print_usyms(ubacktrace())
}
salvo como probelibraryfunc.stp
, isso pode ser executado via
$ sudo stap probelibraryfunc.stp
embora possa produzir quantidades loucas de saída se a chamada for comum ...