У меня вопрос об отладке запущенной программы на C++ в Linux. Если программирование уже запущено и не может быть прервано, как это сделать.Как отладить запущенную программу на C++ в Linux?
Я могу найти три способа, но я не слишком разбираюсь в деталях, я благодарен, если кто-то может его глубже развить.
1) мы можем использовать GDB, указав идентификатор процесса
gdb -p PID
В этом случае, в чем разница между этим и attach PID
?
2) Мы можем использовать PSTAT, однако, я использую Ubuntu, не PSTAT, но только mpstat
, кажется, что mpstat не дает слишком много информации, и не так много вариантов.
3) проверить информацию детали в директории ./proc
В этом случае, просто перейдите в каталог с PID. Однако, если это делается на людях?
Я не думаю, что я когда-либо видел '-p' вариант. Тем не менее, при подключении к процессу с помощью PID. В чем проблема с этим? – Cascabel
Я не уверен, каков ваш вопрос. У вас, похоже, уже есть методы работы для отладки программы на C++, поэтому ваш заголовок отвечает на себя, а затем ваше тело сообщения спрашивает что-то несвязанное. Можете ли вы перефразировать заголовок или ваш вопрос, чтобы быть более четким? – ephemient
Я использовал 'strace -p PID' для отслеживания системных вызовов запущенного приложения C++. Я обнаружил, что вызов 'open()' был неудачным, и ошибка была обработана надлежащим образом. – jschmier