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!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2024-12-06 18:08:52

  overcq - Użytkownik

overcq
Użytkownik
Zarejestrowany: 2024-11-17
Serwis

LD_PRELOAD biblioteki z własnym menedżerem pamięci (funkcje malloc)

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:

Kod:

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:

Kod:

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)


Nie znam się, ale się wypowiem.

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
Nas ludzie lubią po prostu, a nie klikając w przyciski ;-)