У меня есть тестовый драйвер, связанный с библиотекой, которую я написал. Библиотека использует автоинструменты, поэтому создает как архив (.a файл), так и динамическую библиотеку (.so).
Когда я связываю свой драйвер с «g ++ -static», предположительно ссылающимся на .a, valgrind загорается многократно, сообщая: «Условный переход или перемещение зависит от неинициализированных значений (й)». Первый сбой происходит перед main в __pthread_initialize_minimal.
Когда я связываюсь без -static, предположительно со ссылкой на .so, я не получаю никаких жалоб valgrind.
Кто-нибудь знает почему? Valgrind просто не работает с -static?
ОБНОВЛЕНИЕ : я не могу опубликовать даже урезанную версию моего драйвера, потому что он ссылается на очень большую библиотеку, которую я не могу урезать, но я замечаю, что самая простая из всех программ
int main()
{
return 0;
}
выдает ошибку при связывании с -static и запуске из valgrind:
==15449== Use of uninitialised value of size 8
==15449== at 0x40B0F3: exit (in /home/jdgordo/src/t)
Мне следовало включить, что я работаю на 64-битном Redhat 5.5.