Can one pick up a running application from terminal?

Sometime I need to run an application from terminal for debugging. If I am sure the bug will occur short after launching the application, I can run this application from the Terminal.

However, bugs occur unexpectedly, and then only I need to monitor the buggy application from the Terminal (to see its output).

Can I then pick up an application from terminal, which was not launched using Terminal? If so how?


Each process in linux has a special directory /proc/{pid}/fd/. 0 is stdin, 1 is stdout and 2 is stderr. So, assuming you are only interested in diagnostic output you can determine the process pid, and then in the terminal do:

to see stdout:

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

to see stderr:

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

Or you can use strace like this

sudo strace -p $pid_of_the_process