Exit Code 139 означает, что процесс завершился с ошибкой segmentation fault (SIGSEGV). Это происходит при попытке обращения к недопустимому участку памяти.
Основные причины
- Ошибка в C/C++ коде
- Несовместимые или повреждённые библиотеки
- Повреждённый бинарный файл
- Проблемы внутри Docker-контейнера
Способ 1: Включение и проверка core dump
Проверьте текущий лимит:
ulimit -c
Если значение равно 0, включите:
ulimit -c unlimited
После повторного падения программы появится файл core.
Способ 2: Анализ через gdb
gdb ./app core
Внутри gdb выполните:
bt
Команда bt покажет stack trace и место падения.
Способ 3: Проверка зависимостей
ldd ./app
Если отображаются строки not found, требуется переустановка библиотек.
Способ 4: Переустановка пакета
Для Ubuntu/Debian:
sudo apt reinstall package-name
Для CentOS:
sudo yum reinstall package-name
Итог
Exit Code 139 указывает на серьёзную ошибку доступа к памяти. Анализ core dump и проверка зависимостей помогают определить источник проблемы и устранить её.