调试重新启动守护进程 在生产环境中,Linux上有一个C++程序作为后台程序运行。经过一段不可预测的时间后,它会继续重新启动。 因为它在生产环境中,所以没有调试信息。它不会在任何文件中记录错误。 无法将gdb附加到正在运行的进程,因为它可能会影响生产。 但解决办法有待提供

调试重新启动守护进程 在生产环境中,Linux上有一个C++程序作为后台程序运行。经过一段不可预测的时间后,它会继续重新启动。 因为它在生产环境中,所以没有调试信息。它不会在任何文件中记录错误。 无法将gdb附加到正在运行的进程,因为它可能会影响生产。 但解决办法有待提供,c++,linux,debugging,gdb,C++,Linux,Debugging,Gdb,在这种情况下,如何收集信息或转储? 如何调试这样的场景 如何调试这样的场景 在生产环境中启用核心转储保存。请参阅如何在linux上执行此操作: 复制开发环境中的核心转储文件,并使用gdb中加载的调试信息对其进行调试。它不会在任何文件中记录错误。深入您的内心,询问您为什么不这样做。应用程序崩溃时将创建转储文件。但在这里,守护进程正在重新启动。重新启动是否意味着它可能已崩溃?是的,可以将守护进程配置为在崩溃后使用systemd或。我不知道守护进程想要重新启动自身的任何其他原因。@ks1322我不知道

在这种情况下,如何收集信息或转储? 如何调试这样的场景

如何调试这样的场景

在生产环境中启用核心转储保存。请参阅如何在linux上执行此操作:


复制开发环境中的核心转储文件,并使用gdb中加载的调试信息对其进行调试。

它不会在任何文件中记录错误。深入您的内心,询问您为什么不这样做。应用程序崩溃时将创建转储文件。但在这里,守护进程正在重新启动。重新启动是否意味着它可能已崩溃?是的,可以将守护进程配置为在崩溃后使用systemd或。我不知道守护进程想要重新启动自身的任何其他原因。@ks1322我不知道守护进程想要重新启动自身的任何其他原因。-可能是有其他程序周期性地杀死它。或者服务停止了,或者。。。任何其他原因。