首页 > 解决方案 > 如何跟随分叉,但在 gdb 中的 exec 上分离

问题描述

我正在尝试解决一个毛茸茸的错误,该错误涉及内存中特定整数的损坏。我可以设置一个观察点,并希望捕获任何改变这个特定值的回溯。

使事情复杂化的是,该错误仅在生产中发生,并且每天仅发生几次。该错误发生在名为 gunicorn 的 Python 网络服务器中,它是一个 pre-fork 服务器。损坏发生在其中一个工人子进程中,而不是主进程中。

麻烦的是,默认情况下 gdb 不会调试由fork(). 如果配置为使用 执行此操作set detach-on-fork off,则它可能会调试工作进程,但如果其中一个工作人员执行and ,它也会调试其他子进程。fork()exec()

那么有没有办法将gdb配置为:

或者也许还有其他方法可以解决调试前分叉服务器的工作子进程的问题?

标签: debugginggdb

解决方案


推荐阅读