Можно поднять запущенное приложение с терминала?

Когда-то я должен запустить приложение от терминала для отладки. Если я уверен, что ошибка произойдет короткая после запуска приложения, я могу запустить это приложение от Терминала.

Однако ошибки неожиданно происходят, и затем только я должен контролировать ошибочное приложение от Терминала (для наблюдения его вывода).

Я могу затем поднять приложение с терминала, который не был запущен с помощью Терминала? Раз так, как?

26
задан 1 September 2011 в 03:21

4 ответа

Каждый процесс в Linux имеет специальный каталог /proc/{pid}/fd/. 0 stdin, 1 stdout, и 2 stderr. Так, принятие Вас только интересуется диагностикой, производит Вас, может решить, что pid процесса, и затем в терминале делает:

видеть stdout:

cat /proc/{pid of process}/fd/1

видеть stderr:

cat /proc/{pid of process}/fd/2
30
ответ дан 23 November 2019 в 01:08

Или можно использовать strace как это

sudo strace -p $pid_of_the_process
9
ответ дан 23 November 2019 в 01:08

Можно присоединить с gdb к рабочему процессу.

Синтаксис

gdb program pid

Хорошо, Вы не видите исходный код, если отладочная информация разделяется, который является значением по умолчанию для развертываемых приложений. Но можно, вероятно, видеть stdout/stderr и сообщения отладчика, segfaults.

6
ответ дан 23 November 2019 в 01:08

Вы, вероятно, ищете retty. Вы могли также искать "присоединение tty". В основном это сделало использование ptrace таким образом, Вы могли даже самокрутка.

5
ответ дан 23 November 2019 в 01:08

Другие вопросы по тегам:

Похожие вопросы: