Debugging child process after fork (follow-fork-mode child configured)

自古美人都是妖i 提交于 2019-11-27 06:45:14
Barath Ravikumar

The child process inherits signal handlers from the parent, but not the pending signal.

After forking try installing the signal handler for SIGTRAP at a place in code where the child process executes after forking. If you don't handle SIGTRAP, the default action is that the child is terminated.

If you want to debug the child process, you must use follow-fork-mode. You must set the mode using

set follow-fork-mode child

However, now only the child can be debugged, and the parent runs unchecked.

There is an alternative way of debugging the child process.

After fork() is executed, put a sleep() call in the code where the child executes, get the PID of the child using the ps utility, then attach the PID.

attach <PID of child process>

Now, you can debug the child process, like any other process.

After debugging, you can detach the PID using

detach
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!