我正在尝试对a hairy bug进行故障排除,该故障涉及内存中特定整数的损坏。我可以设置一个观察点,并希望捕获更改此特定值的任何东西的回溯。
复杂的问题是,该错误仅在生产中发生,并且每天仅发生几次。该错误发生在名为gunicorn的Python网络服务器中,该服务器是一个前叉服务器。腐败发生在一个工人孩子中,而不是主流程中。
问题是,默认情况下,gdb不会调试fork()
产生的子级。如果配置为使用set detach-on-fork off
执行此操作,则它可能会调试工作进程,但是如果其中一个工作进程执行fork()
和{{1 }}。
因此,有一种方法可以将gdb配置为:
exec()
,和 fork()
时是否与流程分离?或者也许还有其他方法可以调试前叉服务器的辅助子进程?