Przy kompilacji mojego programu mam opcję, która pozwala zastąpić funkcje libc menedżera pamięci (malloc, realloc, calloc, free, posix_memalign, malloc_usable_size) własnymi, obecnymi w programie. Metodą na zastąpienie tych funkcji jest uruchomienie programu przy ustawionej zmiennej środowiska LD_PRELOAD=lib.so (tutaj nazwa mojej biblioteki).
Natomiast jeśli włączę tę opcję zastąpienia funkcji i przekompiluję program, to przy uruchomieniu blokuje się on na funkcji regcomp uruchomionej z parametrem "^([^\n]*)$", gdzie “\n” oznacza rzeczywisty znak końca linii. Wcześniejsze dwa wywołania funkcji z innymi parametrami wykonują się poprawnie. Wyrażenia regularne to “extended RE” (POSIX).
Własny menedżer pamięci został sprawdzony w użyciu wprost (bez zastępowania funkcji libc), natomiast w zastępowanych funkcjach nie mogę korzystać z systemowego wypisywania komunikatów. Poza tym wcześniej, gdy własny menedżer pamięci zawierał jeszcze znane błędy, to tak samo po włączeniu tej opcji program blokował się na regcomp.
Jak rozwiązać ten problem?