Как отладить ошибку сегментации в php / libc?
Я запускаю команды PHP CLI внутри виртуальной машины Ubuntu через SSH. Проблема в том, что некоторые команды начали вызывать ошибки сегментации.
Как ни странно, это происходит только тогда, когда команда запускается через SSH. Если я запускаю его прямо внутри ВМ, проблем нет. Кроме того, это не происходит на другой машине с той же виртуальной машиной.
Когда я запускаю команду PHP (через SSH с хост-компьютера), единственное, что я вижу в журналах на виртуальной машине, это:
22 марта 14:53:00 локальное ядро: [ 1868.863475] php[4967]: segfault at 7ff60c200000 ip 00007ff6202b284e sp 00007ffce7f19448 ошибка 4 в libc-2.23.so[7ff620213000+1c0000]
Кажется, это указывает на то, что проблема на самом деле не в PHP, а в стандартной библиотеке. Если это так, как я могу отладить это и / или как я должен отправить отчет об ошибке?
Подробности, если они актуальны:
Мой хост-компьютер также является Ubuntu, а виртуальная машина - DrupalVM, использующая базовую коробку beet/box. На самом деле я запускаю команду blt setup (см. Https https://github/acquia/blt), которая вызывает drush cex внутри виртуальной машины через SSH.
Именно эта команда drush cex недавно начала вызывать ошибку сегмента.
1 ответ
Первый вариант:
strace mycommand
... и смотреть, что происходит
Второй вариант
gdb mycommand
... и пройти через это
Третий вариант
gather the dumps and analyze them.
- https://stackoverflow.com/questions/17965/how-to-generate-a-core-dump-in-linux-on-a-segmentation-fault
Первого обычно достаточно, если у вас есть интуиция о том, что происходит. В вашем случае это, вероятно, что-то глупое, например, согласование возможностей терминала или что-то еще, не относящееся к основному ядру, но вы никогда не знаете .... может быть серьезно.
Второй вариант самый сложный.