ltrace – narzędzie analizy kodu badające interakcję programu z używanymi przez niego bibliotekami dzielonymi (shared libraries). Narzędzie zostało stworzone przez hiszpańskiego programistę Juana Cespedesa stworzone pierwotnie na potrzeby dystrybucji Debian, używane również później w Ubuntu.

Funkcjonalność Program pozwala prześledzić wykonanie konkretnego polecenia, w tym polecanie z konkretnymi parametrami, np. ltrace /bin/chmod 0777 xxx. Nie jest przy tym wymagana posiadanie źródeł oryginalnego programu, ponieważ używa ptrace, czyli funkcję do debugowana procesów wbudowaną w jądro Linuksa.

Przykład wykonania dla trywialnego programu /bin/true: $ ltrace /bin/true __libc_start_main(0x8048a50, 1, 0xbffff434, 0x80499f0, 0x8049a50 <unfinished ...> setlocale(6, "") = "en_US.UTF-8" bindtextdomain("coreutils", "/usr/share/locale") = "/usr/share/locale" textdomain("coreutils") = "coreutils" __cxa_atexit(0x8048b60, 0, 0, 0xbffff434, 0x41152190) = 0 exit(0 <unfinished ...> __fpending(0x41149d20, 0x804b254, 0x41152190, 0xbffff3c0, 0xbffff378) = 0 +++ exited (status 0) +++W przykładzie widać, że ltrace pokazuje nazwy funkcji, ich argumenty i wartości zwracane. Może również śledzić wywołania systemowe, rozpoznawać rozwidlenia procesów oraz dołączać się do procesów potomnych. Obsługuje m.in.:

wyświetlanie argumentów i wartości zwrotnych funkcji; pomiar czasu wykonania poszczególnych wywołań (-T); liczenie wywołań (-c); filtrowanie śledzonych symboli (-e, -x, -l).

Zobacz też strace

Przypisy

Bibliografia

Linki zewnętrzne Oficjalna strona projektu Kod źródłowy Man: ltrace

Kategoria:Narzędzia do analizy programów