2015-05-23 79 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 –

相關問題