Когда-нибудь мне нужно запустить приложение из терминала для отладки. Если я уверен, что ошибка произойдет коротко после запуска приложения, я могу запустить это приложение из терминала.
Однако ошибки возникают неожиданно, а затем мне нужно только следить за ошибкой приложения из терминала ( чтобы увидеть его выход).
Могу ли я взять приложение с терминала, которое не было запущено с помощью терминала? Если да, то как?
Вы можете прикрепить gdb к выполняемому процессу.
Синтаксис:
gdb program pid
Хорошо, вы не можете видеть исходный код, если информация об отладке лишена, что является по умолчанию для развернутых приложений. Но вы можете увидеть сообщения stdout / stderr и debugger, segfaults.
Вероятно, вы ищете retty. Вы также можете найти «attach tty». В основном это делается с помощью ptrace, чтобы вы могли даже свернуть свой.