Почему нет инфы о библиотеках в procfc файле maps, которые в сишном коде подключены и используются?
Написал простую сишную прогу, в которой подключил либу pthread. Чтобы компилятор случайно не дооптимизировался и не выкинул либу, использую функцию создания потока, в целевой функции потока вечный цикл.
Компилирую gcc -o outfile source.c -lpthread. То есть собираю без всяких статиков, чтобы были зависимости к подключенным библиотекам. Далее запускаю процесс, чекаю /proc/pid/maps. Там нет ни единого упоминания к libpthread. Что я делаю не так? Мне нужно чтобы адрес, куда загружена либа, был в этом файле.
shurshur, я хочу воткнуться в процесс как отладчик с помощью ptrace и выполнить некоторый код, но ptrace застопит процесс, пока я не сделаю detach. Поэтому мне нужно найти, где загружена в памяти процесса либа потоков, чтобы найти адрес функции создания потока и вызвать ее.
Компилирую gcc -o outfile source.c -lpthread. То есть собираю без всяких статиков, чтобы были зависимости к подключенным библиотекам. Далее запускаю процесс, чекаю /proc/pid/maps. Там нет ни единого упоминания к libpthread.
100500 лет назад libpthread объединилась с glibc и теперь хоть и существует отдельно, чтобы программы использующие -lpthread продолжали собираться, внутри пустая. Короче, ты выбрал неудачного кандидата для экспериментов.