this を参照して、pgadminを使用してコードをステップ実行してplpgsql関数をデバッグするために、PostgreSQLサーバーでデバッガを有効にします。
shared_preload_libraries = '$libdir/plugins/plugin_debugger.dll'
にpostgresql.conf
を設定し、pldbgapi.sql
を実行し、サーバーを再起動しました。
これらの手順は正常に実行され、plugin_debugger.dll
はコマンドshow shared_preload_libraries
を使用して確認できるように正常にロードされている必要があります。コンテキストメニューのデバッグオプションは、 pgAdmin。
[デバッグ]-> [デバッグ]を選択すると、ウィンドウがポップアップして、入力パラメーターの値を入力できるようになります。しかし、その後、OK
を押すと、まったく応答しません。
サーバー上のデバッガーのセットアップで何かアイデアがありませんか?
PostgreSQL 8.3およびpgAdmin 1.14を使用しています
2つの場所でデバッグを有効にする必要があります。 PGAdminおよびデータベース自体。あなたが参照したその記事はそれを説明する素晴らしい仕事をしますが、いくつかのニュアンスがありました。
PGAdmin
postgresql.conf
ファイルを更新してデバッグライブラリをロードするとき、私は WindowsでPGAdminを実行 であったため、ファイルは次のようになりました。
C:\Program Files\PostgreSQL\9.4\data\postgresql.conf
plugin_debugger.dll
へのパスは実際には
$libdir/plugin_debugger.dll
じゃない
$libdir/plugins/plugin_debugger.dll
記事で指定されているとおり。したがって、postgresql.conf
は次のような行を必要とします
shared_preload_libraries = '$libdir/plugin_debugger.dll'
疑問がある場合は、実際の.dllを検索してください。 Linuxを使用している場合、探しているファイルはplugin_debugger.so
です。 postgresql.conf
ファイルを変更すると、変更を有効にするために再起動が必要になることを忘れないでください。
PostgreSQLデータベース
LinuxサーバーでPostgreSQLデータベースを実行していると仮定します このGist は、デバッグを有効にするための依存関係をダウンロードする方法を説明するのに優れた仕事をします。インストール時にルートとして実行していることを確認してください。
見逃しやすいのは、デバッグする実際のデータベースに対してコマンドを発行することです。 PostgreSQLの新しいバージョンの場合、必要な作業は次のとおりです。
CREATE EXTENSION IF NOT EXISTS pldbgapi;
それがエラーを返さない場合、あなたは行ってもいいはずです。
その他の注意事項:
LANGUAGE c
のようなメッセージを表示した場合、PGAdminは関数を選択したときに右クリックの[デバッグ]メニューオプションを表示しません。 LANGUAGE plpgsql
が含まれているものを探すと、[デバッグ]メニューが表示されます。ケン、
PgAdmin 1.14/PostgreSQL 8.3の相互作用の問題を除外するためにpgAdmin 1.8を試しましたか。 8.3を使用してからしばらく経ちましたが、筆者が言及している記事では、1.14/PostgreSQL 9.1でテストしていたため、古いバージョンとの相互作用の問題になる可能性があります。残念ながら、テストする8.3はもうありません。
私はあなたがかつて抱えていた問題を抱えていることを漠然と覚えていますが、それはpldebuggerに加えてpostgresql.confに別の共有ライブラリがあったときでした。どちらがあったか思い出せませんが、他の共有ライブラリを削除すると問題が解決しました。
これらの提案のいくつかが役立つことを願っています、レジーナ
同じ問題がありました。 postgres.confに読み込んでいるonly共有ライブラリがデバッガであることを確認してください。他に何もありません。プロファイラーでさえありません。関数をデバッグしようとしたときにSSLエラーが発生した場合は、サーバーに再接続してください。