2015-05-23 49 views

回答

1

向守护程序添加一个特殊的调试模式来启用它是相当正常的。也就是说,添加一个命令行选项来禁用守护步骤,让程序在前台运行。然后在gdb下运行守护进程很简单。

我不知道有任何通用的方法来做到这一点。也许它可以通过LD_PRELOAD拦截来完成,这很酷 - 但修改源代码更简单。

要调试正在运行的守护进程,可以使用gdb attach命令。但是,这对于调试守护进程启动并不是很好,因为您必须争分夺秒地进行连接。

Linux内核不支持“预先附加”到程序的下一个实例,但是我通过SystemTap写了一个黑客程序,您可以找到here

+0

感谢您的解释!你是一位优秀的程序员!顺便说一句,我正在尝试创建一个REST API服务器应用程序。只是为了更熟悉C++。我也设法禁用守护进程,现在使用gdb在KDevelop中调试它非常舒服。刚刚评论了以下行:https://github.com/Begun/serverlib/blob/master/examples/example.cpp#L154 –

相关问题