使用 pgAdmin 调试 PostgreSQL 函数

2024-05-22

I refer this http://www.postgresonline.com/journal/archives/214-Using-PgAdmin-PLPgSQL-Debugger.html启用 PostgreSQL 服务器中的调试器,以便通过使用 pgadmin 单步执行代码来调试 plpgsql 函数。

我已经设置了shared_preload_libraries = '$libdir/plugins/plugin_debugger.dll' in the postgresql.conf, run pldbgapi.sql,并重新启动服务器。

这些步骤应该已成功运行并且plugin_debugger.dll应该已成功加载,可以使用命令验证show shared_preload_libraries,我可以通过右键单击 pgAdmin 中的函数来在上下文菜单中看到调试选项。

当选择“调试”-->“调试”时,会弹出一个窗口,允许我输入输入参数的值。但在那之后,当我按下OK,它根本不响应。

有什么想法或者我在服务器上的调试器设置中错过了一些东西吗?

我正在使用 PostgreSQL 8.3 和 pgAdmin 1.14


您必须在两个地方启用调试。在 PGAdmin 和数据库本身上。您引用的那篇文章很好地解释了这一点,但存在一些细微差别。

PGAdmin

当更新你的postgresql.conf文件来加载调试库,我是在 Windows 上运行 PGAdmin https://stackoverflow.com/a/4465482/316857所以文件在这里:

C:\Program Files\PostgreSQL\9.4\data\postgresql.conf

以及通往plugin_debugger.dll实际上是

$libdir/plugin_debugger.dll

not

$libdir/plugins/plugin_debugger.dll

如文章中所指定。所以你的postgresql.conf需要这样的线

shared_preload_libraries = '$libdir/plugin_debugger.dll'

如果您有疑问,请搜索实际的 .dll。如果您使用的是 Linux,您要查找的文件是plugin_debugger.so。不要忘记改变postgresql.conf文件需要重新启动才能使更改生效。

PostgreSQL 数据库

假设您在 Linux 服务器上运行 PostgreSQL 数据库这个要点 https://gist.github.com/jhngrant/c1787346fcb4b0e3001a在解释如何下载依赖项以启用调试方面做得非常出色。安装时请确保您以 root 身份运行。

很容易错过的部分是针对要调试的实际数据库发出命令。对于 PostgreSQL 的较新版本,您需要做的就是:

CREATE EXTENSION IF NOT EXISTS pldbgapi;

如果没有返回错误,那么您应该可以开始了。

一些额外的注意事项:

  • 如上所述,只有以超级用户帐户运行时才能进行调试
  • From 他们的文档 http://www.pgadmin.org/docs/1.8/debugger.html您只能调试 pl/pgsql 函数。所以如果你的函数说类似的话LANGUAGE c当您选择该函数时,PGAdmin 甚至不会显示右键单击“调试”菜单选项。寻找有的东西LANGUAGE plpgsql并且应该显示“调试”菜单。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 pgAdmin 调试 PostgreSQL 函数 的相关文章

随机推荐