79

I have a simple C program that forks a process and then runs an executable.

I want to attach the child process to gdb.

I run the main program in a console and open another console to find the pid of the child process, then I start gdb with the following command:

gdb attach 12271

where 12271 is the child process id, but the attach fails with:

No such file or directory.

Any idea why?

Jaime Hablutzel
  • 5,838
  • 4
  • 38
  • 57
as3rdaccount
  • 3,613
  • 10
  • 36
  • 59

3 Answers3

131

Try one of these:

gdb -p 12271
gdb /path/to/exe 12271

gdb /path/to/exe
(gdb) attach 12271
Yostage
  • 293
  • 2
  • 4
  • 11
Employed Russian
  • 182,696
  • 29
  • 267
  • 329
22

The first argument should be the path to the executable program. So

gdb progname 12271
DrC
  • 7,460
  • 1
  • 20
  • 36
7

With a running instance of myExecutableName having a PID 15073:

hitting Tab twice after $ gdb myExecu in the command line, will automagically autocompletes to:

$ gdb myExecutableName 15073

and will attach gdb to this process. That's nice!

Stephane Rolland
  • 37,098
  • 33
  • 115
  • 165