2010-06-29 112 views
5

我正在接管爲PostgreSQL編寫的一組用戶定義函數和用戶定義聚合的開發,並且我很難診斷導致代碼不斷地分段錯誤的原因。是否有人知道是否可以使用C++編寫的UDF來使用GDB?幾個谷歌搜索沒有出現任何東西。我之前使用過ELOG來調試UDF,但是這個項目非常複雜,所以我需要一些更強大的功能。調試PostgreSQL用戶定義的函數

感謝, 凱文

回答

2

你應該能夠GDB連接到正在運行的PostgreSQL backend-雖然你可能會想,以確保您的PostgreSQL構建具有調試留在它的符號,這可以理解。如果你做select pg_backend_pid(),你會得到你正在處理的後端的進程ID,然後可以將gdb附加到它(使用--pid開關或attach命令)。但是,只有在使用psql重現問題時,這種方法纔有用,例如:將新的後端進程自動附加爲gdb更加困難。例如,您可以設置諸如post_auth_delay之類的選項,以在驗證完成後使postgresql等待,從而使您有機會在繼續處理之前連接調試器。