śledzenie wywołań biblioteki

14

Znam strace, które jest bardzo przydatne do oglądania wywołań systemowych. Czy istnieje odpowiednik, który może śledzić połączenia z bibliotekami zewnętrznymi?

Na przykład próbuję debugować pewne nieprawidłowe zachowanie SSLeay za pomocą pliku binarnego innej firmy, dla którego nie mogę uzyskać dostępu do kodu (i kto nie odpowiada). Wydaje mi się, że udało mi się rozwiązać problem, ale nie mogę tego przetestować, nie widząc dokładnie, w jaki sposób dane sprawdzane pod kątem podpisu są formatowane w celu wysłania do SSLeay.

draeath
źródło

Odpowiedzi:

12

ltrace - Wskaźnik wywołań biblioteki.

Działa tylko w systemie Linux i w niewielkim podzbiorze architektur. Wywołania bibliotek dlopen () nie będą śledzone. Dalsze wskazówki ze strony man i/etc/ltrace.conf

Nikhil Mulley
źródło
3
Czy jest dostępne jakieś rozwiązanie dla bibliotek dlopen () ed?
draeath
8

Czasami działa Ltrace . Zasadniczo wymaga to debuggera, takiego jak GDB . Możesz dowiedzieć się, które funkcje umieszczać punkty śledzenia lub punkty przerwania, patrząc na strukturę wywołania w deasemblacji ( objdump -d /path/to/executable).

Gilles „SO- przestań być zły”
źródło