W systemie Linux mam aplikację C++, która używa dlopen() do ładowania niektórych bibliotek współużytkowanych, ale podejrzewam, że ładowana wersja udostępnianej biblioteki nie jest tą, której oczekuję, ponieważ mój kod śledzenia debugowania nie pojawia się do wykonania.Jak mogę sprawdzić uruchomiony proces, aby zobaczyć, z jakich bibliotek współdzielonych korzysta?
Czy istnieje sposób sprawdzenia uruchomionego procesu w celu wysłania zapytania do wszystkich bibliotek współdzielonych, które obecnie ma otwarty i ścieżkę do każdej z tych bibliotek? Innymi słowy, coś podobnego do ldd
, ale działającego na uruchomionym pliku wykonywalnym, a także list bibliotek ładowanych w środowisku wykonawczym.
spróbuj 'lsof -p _process_id_' – stardust
K tutaj jest pełna odpowiedź. http://stackoverflow.com/questions/5103443/how-to-check-what-shared-library-is-loaded-at-run-time – stardust