Debugging 使用pgAdmin调试PostgreSQL函数
我指的是在PostgreSQL server中启用调试器,以便通过使用pgadmin单步执行代码来调试plpgsql函数 我已经在Debugging 使用pgAdmin调试PostgreSQL函数,debugging,postgresql,plpgsql,pgadmin,Debugging,Postgresql,Plpgsql,Pgadmin,我指的是在PostgreSQL server中启用调试器,以便通过使用pgadmin单步执行代码来调试plpgsql函数 我已经在postgresql.conf中设置了shared\u preload\u libraries='$libdir/plugins/plugin\u debugger.dll',运行pldbgapi.sql,并重新启动了服务器 这些步骤应该已经成功运行,并且应该成功加载plugin\u debugger.dll,这可以通过使用命令show shared\u preloa
postgresql.conf
中设置了shared\u preload\u libraries='$libdir/plugins/plugin\u debugger.dll'
,运行pldbgapi.sql
,并重新启动了服务器
这些步骤应该已经成功运行,并且应该成功加载plugin\u debugger.dll
,这可以通过使用命令show shared\u preload\u libraries
进行验证,我可以通过右键单击pgAdmin中的函数在上下文菜单中看到调试选项
选择“调试”-->Debug时,会弹出一个窗口,允许我输入输入参数的值。但在那之后,当我按下OK
时,它根本没有响应
在服务器上调试程序的设置中有什么想法或遗漏了什么吗
我正在使用PostgreSQL 8.3和pgAdmin 1.14
您是否尝试过pgAdmin 1.8来排除pgAdmin 1.14/PostgreSQL 8.3交互的问题。我已经有一段时间没有使用8.3了,在我写的文章中,您提到的是,我使用1.14/PostgreSQL 9.1进行测试,因此与旧版本的交互很可能是一个问题。不幸的是,我再也没有8.3可供测试了
我模模糊糊地记得您曾经遇到过一个问题,但那是在我的postgresql.conf中除了pldebugger之外还有另一个共享库的时候。不记得是哪一个,但删除另一个共享库修复了我的问题
希望这些建议能有所帮助,
里贾娜我也有同样的问题。
确保在postgres.conf中加载的唯一共享库是调试器。
没有别的了。甚至连探查器都没有。
如果尝试调试函数时出现SSL错误,请重新连接到服务器。您必须在两个位置启用调试。在PGAdmin和数据库本身上。你提到的那篇文章解释得很好,但有些细微差别 PGAdmin 当更新您的
postgresql.conf
文件以加载调试库时,我发现文件在这里:
C:\Program Files\PostgreSQL\9.4\data\postgresql.conf
而plugin_debugger.dll
的路径实际上是
$libdir/plugin_debugger.dll
不是
如本条所述。因此,您的postgresql.conf
需要这样一行代码
shared_preload_libraries = '$libdir/plugin_debugger.dll'
如果您有疑问,请搜索实际的.dll。如果你在Linux上,你要查找的文件是plugin\u debugger.so
。不要忘记更改postgresql.conf
文件需要重新启动才能使更改生效
PostgreSQL数据库
假设您正在Linux服务器上运行PostgreSQL数据库,那么在解释如何下载依赖项以启用调试方面做得非常好。确保安装时以root用户身份运行
容易忽略的部分是针对要调试的实际数据库发出命令。对于PostgreSQL上的较新版本,您只需执行以下操作:
CREATE EXTENSION IF NOT EXISTS pldbgapi;
如果没有返回错误,您应该可以继续
还有一些值得注意的事项:
- 如上所述,您只能在作为超级用户帐户运行时进行调试
- 从中,只能调试pl/pgsql函数。因此,如果您的函数显示类似于
PGAdmin的内容,则在您选择该函数时,PGAdmin甚至不会显示右键单击调试菜单选项。查找具有LANGUAGE c
的内容,应该会显示调试菜单语言plpgsql
postgres
帐户,也存在同样的问题。我尝试在PostgreSQL server 8.13.16中使用pgAdmin 1.14、1.12和1.8,但问题仍然存在。但在我办公室的PC机上,我尝试将pgAdmin 1.12与PostgreSQL server 8.13.5结合使用,效果非常好。如果我有空,我会尝试使用最新版本的PostgreSQL 9.1。我想知道是不是某种防病毒软件阻止了它。谢谢Regina的建议。但是我禁用了防病毒软件(Avira Antiviri)和窗口防火墙,但它仍然不起作用。
CREATE EXTENSION IF NOT EXISTS pldbgapi;