libthread_db
- это никогда , используемый потоковой программой. только используется отладчиком.
Ваше утверждение, что для запуска программы с использованием pthreads каким-то образом требуется libthread_db
, неверно. Если ваши программы pthread аварийно завершают работу, когда libthread_db
удаляется из системы, что-то еще сломано на вашей встроенной цели; удаление libthread_db
просто вызывает что-то еще.
Вы можете тривиально подтвердить это: собрать программу pthread в обычной системе Linux. Запустите эту программу под strace
и обратите внимание, что libthread_db
не появляется в выводе strace
. Теперь переименуйте /lib/libthread_db.so.1
во что-то другое и обратите внимание, что тестовая программа продолжает работать очень хорошо.