Что вы делаете с плохо ведущими сторонними процессами в Linux? - PullRequest
0 голосов
/ 28 сентября 2010

Каждый раз, когда у меня происходит плохо ведущий процесс (привязка процессора, зависание или иное странное поведение), я обычно убиваю его, перезапускаю и надеюсь, что это больше не повторится.понять проблему (т.е. отладить чужую сломанную программу во время ее работы), какие у меня варианты?

Я знаю (обычно) такие вещи, как strace, lsof, dmesg и т.д.Лучший способ начать возиться продуктивно.

Есть ли у кого-нибудь системный подход к решению этих проблем?Или общие предложения?Или действительно ли лучше всего убивать и перезапускать?

Спасибо.

1 Ответ

1 голос
/ 29 сентября 2010

Если у вас установлены отладочные символы рассматриваемой программы, вы можете присоединиться к ней с помощью gdb и посмотреть, что там не так.Запустите gdb, введите attach pid, где pid - идентификатор процесса рассматриваемой программы (вы можете найти его через top или ps).Затем нажмите Ctrl-C, чтобы остановить его.Сказать, что backtrace дает вам стек вызовов, это означает, что он сообщает, какая строка кода выполняется в данный момент и какие функции вызвали текущую функцию.

...