
Digamos que eu tenha um binário test
e ele use bibliotecas compartilhadas
a.so
b.so
c.so
Tenho problemas para executar o binário, porque uma das bibliotecas vinculadas vincula outra biblioteca d.so
que parece ser a culpada. Porém não sei qual biblioteca é a que o vincula, pois na realidade existem cerca de 20 bibliotecas em vez de 3 e é muito demorado passar por todas elas. ldd
fornece apenas a lista de bibliotecas que o binário vincula diretamente.
Além disso, parece que não existe um nível de indireção, mas vários. Em outras palavras, parece que existe algo parecido a.so -> x.so -> blabla.so -> d.so
.
Existe alguma maneira inteligente de visualizar todo o diagrama de dependências ou de encontrar a cadeia de dependência exata que leva à biblioteca d.so
?
Em outras palavras, o que eu quero é algo assim:
a.so -> something.so
-> second.so
-> third.so
b.so -> x.so -> blabla.so -> d.so
-> stuff.so
c.so -> something.else -> yetanotherlib.so
ou uma versão simplificada onde eu diria que quero encontrar, como d.so
está vinculado ao binário e cuspiria
a.so -> x.so -> blabla.so -> d.so
Espero que isto faça sentido.
Responder1
O que você quer é ldd -v
- isso indicará detalhadamente as cadeias de dependência.