PostgreSQL用户定义函数的调试

5

我正在接手开发一组针对PostgreSQL编写的用户自定义函数和用户自定义聚合函数,但我很难诊断导致代码经常seg fault的问题。 有没有人知道如何在C ++中使用GDB来使用UDF(用户自定义函数)? 几次谷歌搜索没有找到任何结果。 我以前使用过ELOG来调试UDF,但是这个项目足够复杂,需要更加强大的工具。

谢谢, Kevin

1个回答

2
您应该能够将gdb附加到正在运行的postgresql后端-尽管您可能希望确保您的postgresql构建中留有调试符号,以使其易于理解。如果您执行select pg_backend_pid(),您将获得要处理的后端进程ID,然后可以使用--pid开关或attach命令将gdb附加到它上面。但是,这种方法只在您可以使用psql重现问题时才有用。例如,自动附加新后端进程以进行调试更为困难。例如,您可以设置选项,例如post_auth_delay,以使postgresql在身份验证完成后等待,让您有机会在它继续处理之前附加调试器。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接