postgresql - 调试 PostgreSQL 用户定义函数

标签 postgresql gdb

我正在接管为 PostgreSQL 编写的一组用户定义函数和用户定义聚合的开发,但我很难诊断导致代码不断出现段错误的原因。有谁知道是否/如何将 GDB 与用 C++ 编写的 UDF 一起使用?几个谷歌搜索没有发现任何东西。我以前使用 ELOG 来调试 UDF,但是这个项目太复杂了,我需要一些更强大的东西。

谢谢, 凯文

最佳答案

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

关于postgresql - 调试 PostgreSQL 用户定义函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3137067/

相关文章:

c++ - gdb 找不到运算符 []

debugging - gdb中x和p的区别?

ruby-on-rails - PG::ConnectionBad: fe_sendauth: 没有提供密码

linux - 调试postgreSQL服务器进程(如何识别正确的进程id)

linux - CentOS 7 上的图形调试器界面

c++ - 发送 : arm-none-eabi-gdb --version, 响应后无法确定 GDB 版本:

c++ - 如何在 gdb 中显示二维数组?

postgresql - 更新表后插入数组等数据

database - 在 Excel 中使用 power query 连接到 Postgresql 数据库

ruby-on-rails - Daemon vs Runner vs Rake Tasks vs Active Job