I have a application which forks a child process.
Child process does some work and somewhere in the middle it gives Segmentation fault. I used GDB to debug this, I used:
set follow-fork-mode child
I have also set a breakpoint to a function within the child. But GDB doesn’t pause at my breakpoint.
Also the parent process handles the seg-fault so I had to ctrl-c to exit. Then when I use backtrace to print the stack all I got is
No stack
Why is the breakpoint not being set and why didn’t I get the stack?
The breakpoint is being set, but it is not being hit because …
… you are apparently debugging the wrong process.
With
set follow-fork-mode child, GDB will follow the first child you create. Perhaps you create more than one?One way to debug this is to establish a
SIGSEGVhandler usingsignalorsigaction.In the handler, do this:
Once you see the message printed, in another window: