Ken*_*han 65 postgresql debugging plpgsql pgadmin
我引用它 来启用PostgreSQL服务器中的调试器,以便通过使用pgadmin单步调试plpgsql函数.
我已经设置shared_preload_libraries = '$libdir/plugins/plugin_debugger.dll'
的postgresql.conf
,运行pldbgapi.sql
,并重新启动服务器.
这些步骤应该已成功运行并且plugin_debugger.dll
应该成功加载,因为可以使用该命令进行验证show shared_preload_libraries
,我可以在上下文菜单中看到调试选项,右键单击pgAdmin中的函数.
选择"Debugging" - > Debug时,会弹出一个窗口,允许我输入输入参数的值.但在那之后,当我按下时OK
,它根本没有响应.
任何想法或我错过了服务器上的调试器设置?
我正在使用PostgreSQL 8.3和pgAdmin 1.14
您必须在两个地方启用调试.在PGAdmin和数据库本身.你引用的那篇文章解释得很好,但也有一些细微差别.
pgAdmin的
更新postgresql.conf
文件以加载调试库时,我在Windows上运行PGAdmin,因此文件位于:
C:\Program Files\PostgreSQL\9.4\data\postgresql.conf
Run Code Online (Sandbox Code Playgroud)
而plugin_debugger.dll
实际上是通向它的路径
$libdir/plugin_debugger.dll
Run Code Online (Sandbox Code Playgroud)
不
$libdir/plugins/plugin_debugger.dll
Run Code Online (Sandbox Code Playgroud)
如文章中所述.所以你postgresql.conf
需要一条这样的线
shared_preload_libraries = '$libdir/plugin_debugger.dll'
Run Code Online (Sandbox Code Playgroud)
如果您有疑问,请搜索实际的.dll.如果你在Linux上,你将要找的文件是plugin_debugger.so
.不要忘记更改postgresql.conf
文件需要重新启动才能使更改生效.
PostgreSQL数据库
假设您在Linux服务器上运行PostgreSQL数据库,这个要点在解释如何下载依赖项以启用调试方面做得很好.确保在安装时以root身份运行.
容易遗漏的部分是针对您要调试的实际数据库发出命令.对于PostgreSQL上的新版本,您需要做的就是:
CREATE EXTENSION IF NOT EXISTS pldbgapi;
Run Code Online (Sandbox Code Playgroud)
如果这不会返回错误,那么你应该很高兴.
一些额外的注意事项:
LANGUAGE c
PGAdmin之类的内容在您选择函数时甚至不会显示右键单击Debug菜单选项.寻找具有的东西,LANGUAGE plpgsql
并且Debug菜单应该显示.肯,
您是否尝试过 pgAdmin 1.8 来排除 PgAdmin 1.14/ PostgreSQL 8.3 交互的问题。自从我使用 8.3 以来已经有一段时间了,对于我写的文章(您提到的),我正在使用 1.14/ PostgreSQL 9.1 进行测试,因此它很可能是与旧版本交互的问题。不幸的是我没有 8.3 可供测试了。
我依稀记得曾经遇到过这个问题,但那是当我的 postgresql.conf 中除了 pldebugger 之外还有另一个共享库时。不记得那是哪一个,但删除另一个共享库解决了我的问题。
希望其中一些建议有所帮助,雷吉娜
归档时间: |
|
查看次数: |
29198 次 |
最近记录: |