如何遵循fork,但如何在gdb中的exec上分离

时间:2019-06-11 23:31:07

标签: debugging gdb

我正在尝试对a hairy bug进行故障排除,该故障涉及内存中特定整数的损坏。我可以设置一个观察点,并希望捕获更改此特定值的任何东西的回溯。

复杂的问题是,该错误仅在生产中发生,并且每天仅发生几次。该错误发生在名为gunicorn的Python网络服务器中,该服务器是一个前叉服务器。腐败发生在一个工人孩子中,而不是主流程中。

问题是,默认情况下,gdb不会调试fork()产生的子级。如果配置为使用set detach-on-fork off执行此操作,则它可能会调试工作进程,但是如果其中一个工作进程执行fork()和{{1 }}。

因此,有一种方法可以将gdb配置为:

  • 调试exec()
  • 产生的子进程
  • 在进行fork()时是否与流程分离?

或者也许还有其他方法可以调试前叉服务器的辅助子进程?

0 个答案:

没有答案