Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Strony: 1
W bibliotece “liboux-base.so” umieściłem funkcje zastępujące menedżera pamięci z biblioteki “libc”.
I uruchamiam skompilowany program w następujący sposób:
LD_LIBRARY_PATH=ścieżki_do_katalogu_z_bibliotekami LD_PRELOAD=liboux-base.so a.out
Powyższe jest jako opcja, alternatywnie do skompilowania bibliotek i uruchomienia programu bez tych funkcji jako:
LD_LIBRARY_PATH=ścieżki_do_katalogu_z_bibliotekami a.out
Jednak w pewnej liczbie przypadków program uruchomiony w pierwszy sposób nie wykonuje się poprawnie:
‣ albo blokuje się na funkcji bibliotecznej systemu (nie mojej biblioteki) bez żadnego komunikatu
‣ albo zakańcza się z SIGSEGV
Za każdym razem, gdy się tak dzieje, to następuje to w losowym momencie uruchamiania: na dowolnej funkcji.
Dodam, że program zależy też od tej samej biblioteki, którą podaję w “LD_PRELOAD”, jeśli to ma znaczenie.
Czy da się naprawić to zachowanie programu podczas uruchamiania?
Ostatnio edytowany przez overcq (2024-12-06 18:12:48)
Offline
Strony: 1