In this article we will discuss how to debug a running application.
Many time we need to debug a running application by attching debugger with process at runtime.
To attach the gdb with a running process, use the following command
gdb <PROCESS NAME> <PROCESS ID>
To search the process information like Process Id etc, use following command,
ps -elf | grep <Process Name>
we have a ruuning process “sample” and we need to attach the gdb debugger with it. SO, let’s serach the process info i.e.
ps -elf | grep sample
It will give the process info i.e. process id etc i.e.
0 S varun 2007 1989 87 80 ... 00:00:14 ./sample
Here Process id is “2007” and Process name is “sample”.
Now attach the gdb debugger with process using following command ,
gdb sample 2007
It will give gdb command prompt i.e.
Reading symbols from /lib64/ld-linux-x86-64.so.2...Reading symbols from /usr/lib/debug//lib/x86_64-linux-gnu/ld-2.21.so...done. done. __lll_lock_wait_private () at ../sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:95 95 ../sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: No such file or directory. (gdb)
PS: Sometimes it requires root permission. So use “sudo” to run this command i.e.
sudo gdb sample 2007