Когда-нибудь мне нужно запустить приложение из терминала для отладки. Если я уверен, что ошибка произойдет коротко после запуска приложения, я могу запустить это приложение из терминала.
Однако ошибки возникают неожиданно, а затем мне нужно только следить за ошибкой приложения из терминала ( чтобы увидеть его выход).
Могу ли я взять приложение с терминала, которое не было запущено с помощью терминала? Если да, то как?
Каждый процесс в Linux имеет специальный каталог /proc/{pid}/fd/. 0 - stdin, 1 - stdout и 2 - stderr. Итак, предполагая, что вас интересует только диагностический вывод, вы можете определить процесс pid, а затем в терминале:
, чтобы увидеть stdout:
cat /proc/{pid of process}/fd/1
, чтобы увидеть stderr: [ ! d2]
cat /proc/{pid of process}/fd/2
Каждый процесс в Linux имеет специальный каталог /proc/{pid}/fd/. 0 - stdin, 1 - stdout и 2 - stderr. Итак, предполагая, что вас интересует только диагностический вывод, вы можете определить процесс pid, а затем в терминале:
, чтобы увидеть stdout:
cat /proc/{pid of process}/fd/1
, чтобы увидеть stderr: [ ! d2] cat /proc/{pid of process}/fd/2
Каждый процесс в Linux имеет специальный каталог /proc/{pid}/fd/. 0 - stdin, 1 - stdout и 2 - stderr. Итак, предполагая, что вас интересует только диагностический вывод, вы можете определить процесс pid, а затем в терминале:
, чтобы увидеть stdout:
cat /proc/{pid of process}/fd/1
, чтобы увидеть stderr: [ ! d2] cat /proc/{pid of process}/fd/2
Каждый процесс в Linux имеет специальный каталог /proc/{pid}/fd/. 0 - stdin, 1 - stdout и 2 - stderr. Итак, предполагая, что вас интересует только диагностический вывод, вы можете определить процесс pid, а затем в терминале:
, чтобы увидеть stdout:
cat /proc/{pid of process}/fd/1
, чтобы увидеть stderr: [ ! d2] cat /proc/{pid of process}/fd/2
Каждый процесс в Linux имеет специальный каталог /proc/{pid}/fd/. 0 - stdin, 1 - stdout и 2 - stderr. Итак, предполагая, что вас интересует только диагностический вывод, вы можете определить процесс pid, а затем в терминале:
, чтобы увидеть stdout:
cat /proc/{pid of process}/fd/1
, чтобы увидеть stderr: [ ! d2] cat /proc/{pid of process}/fd/2
Каждый процесс в Linux имеет специальный каталог /proc/{pid}/fd/. 0 - stdin, 1 - stdout и 2 - stderr. Итак, предполагая, что вас интересует только диагностический вывод, вы можете определить процесс pid, а затем в терминале:
, чтобы увидеть stdout:
cat /proc/{pid of process}/fd/1
, чтобы увидеть stderr: [ ! d2] cat /proc/{pid of process}/fd/2
Каждый процесс в Linux имеет специальный каталог /proc/{pid}/fd/. 0 - stdin, 1 - stdout и 2 - stderr. Итак, предполагая, что вас интересует только диагностический вывод, вы можете определить процесс pid, а затем в терминале:
, чтобы увидеть stdout:
cat /proc/{pid of process}/fd/1
, чтобы увидеть stderr: [ ! d2] cat /proc/{pid of process}/fd/2
Каждый процесс в Linux имеет специальный каталог /proc/{pid}/fd/. 0 - stdin, 1 - stdout и 2 - stderr. Итак, предполагая, что вас интересует только диагностический вывод, вы можете определить процесс pid, а затем в терминале:
, чтобы увидеть stdout:
cat /proc/{pid of process}/fd/1
, чтобы увидеть stderr: [ ! d2] cat /proc/{pid of process}/fd/2
Или вы можете использовать strace, как это
sudo strace -p $pid_of_the_process
Вы можете прикрепить gdb к выполняемому процессу.
Синтаксис:
gdb program pid
Хорошо, вы не можете видеть исходный код, если информация об отладке лишена, что является по умолчанию для развернутых приложений. Но вы можете увидеть сообщения stdout / stderr и debugger, segfaults.
Вероятно, вы ищете retty. Вы также можете найти «attach tty». В основном это делается с помощью ptrace, чтобы вы могли даже свернуть свой.
Или вы можете использовать strace, как это
sudo strace -p $pid_of_the_process
Вы можете прикрепить gdb к выполняемому процессу.
Синтаксис:
gdb program pid
Хорошо, вы не можете видеть исходный код, если информация об отладке лишена, что является по умолчанию для развернутых приложений. Но вы можете увидеть сообщения stdout / stderr и debugger, segfaults.
Вероятно, вы ищете retty. Вы также можете найти «attach tty». В основном это делается с помощью ptrace, чтобы вы могли даже свернуть свой.
Или вы можете использовать strace, как это
sudo strace -p $pid_of_the_process
Вы можете прикрепить gdb к выполняемому процессу.
Синтаксис:
gdb program pid
Хорошо, вы не можете видеть исходный код, если информация об отладке лишена, что является по умолчанию для развернутых приложений. Но вы можете увидеть сообщения stdout / stderr и debugger, segfaults.
Вероятно, вы ищете retty. Вы также можете найти «attach tty». В основном это делается с помощью ptrace, чтобы вы могли даже свернуть свой.
Или вы можете использовать strace, как это
sudo strace -p $pid_of_the_process
Вы можете прикрепить gdb к выполняемому процессу.
Синтаксис:
gdb program pid
Хорошо, вы не можете видеть исходный код, если информация об отладке лишена, что является по умолчанию для развернутых приложений. Но вы можете увидеть сообщения stdout / stderr и debugger, segfaults.
Вероятно, вы ищете retty. Вы также можете найти «attach tty». В основном это делается с помощью ptrace, чтобы вы могли даже свернуть свой.
Или вы можете использовать strace, как это
sudo strace -p $pid_of_the_process
Вы можете прикрепить gdb к выполняемому процессу.
Синтаксис:
gdb program pid
Хорошо, вы не можете видеть исходный код, если информация об отладке лишена, что является по умолчанию для развернутых приложений. Но вы можете увидеть сообщения stdout / stderr и debugger, segfaults.
Вероятно, вы ищете retty. Вы также можете найти «attach tty». В основном это делается с помощью ptrace, чтобы вы могли даже свернуть свой.
Или вы можете использовать strace, как это
sudo strace -p $pid_of_the_process
Вы можете прикрепить gdb к выполняемому процессу.
Синтаксис:
gdb program pid
Хорошо, вы не можете видеть исходный код, если информация об отладке лишена, что является по умолчанию для развернутых приложений. Но вы можете увидеть сообщения stdout / stderr и debugger, segfaults.
Вероятно, вы ищете retty. Вы также можете найти «attach tty». В основном это делается с помощью ptrace, чтобы вы могли даже свернуть свой.
Или вы можете использовать strace, как это
sudo strace -p $pid_of_the_process
Вы можете прикрепить gdb к выполняемому процессу.
Синтаксис:
gdb program pid
Хорошо, вы не можете видеть исходный код, если информация об отладке лишена, что является по умолчанию для развернутых приложений. Но вы можете увидеть сообщения stdout / stderr и debugger, segfaults.
Вероятно, вы ищете retty. Вы также можете найти «attach tty». В основном это делается с помощью ptrace, чтобы вы могли даже свернуть свой.
Или вы можете использовать strace, как это
sudo strace -p $pid_of_the_process