Я использую программу C / C ++ на серверах Linux для обслуживания видео.Основная функциональность программы (скажем, с именем «Плагин») заключается в преобразовании видео, и мы разрабатываем отдельный процесс «Плагин» для каждого запроса видео.Но у меня странная проблема, из-за которой иногда средняя загрузка сервера неожиданно становится высокой.На этом этапе из верхней команды я вижу, что есть некоторые процессы, которые работают в течение длительного времени и занимают несколько огромных процессоров.
Когда я отлаживаю эту запущенную программу с помощью стека gdb и backtrace, я обнаружил поврежденный стек: «Предыдущий кадр внутри этого кадра (поврежденный стек?)».Я искал в сети и обнаружил, что это происходит, если программа получает ошибку сегментации.
Но что я знаю, если программа получает ошибку сегментации, программа должна аварийно завершить работу и завершиться в этой точке.Но на удивление программа все еще работает после ошибки сегментации.
Каковы могут быть причины этого?Я знаю, что в программе должны быть какие-то большие проблемы, но я просто не могу понять, с чего начать, чтобы исправить проблему ... Было бы здорово, если бы кто-нибудь из вас смог показать мне несколько лампочек ...
Заранее спасибо