4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

[PostgreSQL] pgAdminでデバッグする方法

Last updated at Posted at 2016-07-31

このサイトを参考にデバッグ環境を構築。PostgreSQLは既定ではデバッグが有効化されていないため、一度環境の設定変更が必要。Enterpriseうんちゃら書いてあるが、無料でダウンロードできるPostgreSQLのインストーラーでデバッグが可能。

環境構築手順

postgresql.confのshared_preload_librariesの設定

  • C:\Program Files\PostgreSQL\9.2\lib ディレクトリ配下にplugin_debugger.dllが存在することを確認
  • C:\Program Files\PostgreSQL\9.2\dataディレクトリにあるpostgresql.confを開く
  • shared_preload_librariesというパラメータを探し、先ほど確認したplugin_debuggerを指定
  • コメントアウトは解除。拡張子の記載は不要。
shared_preload_libraries = 'plugin_debugger'
  • PostgreSQLサーバを再起動

CREATE EXTENSIONでエクステンションのセットアップ

  • pgAdminIIIのオブジェクトブラウザペインで、データベース内の「Extensions」を選択
  • 右クリックメニューから「New Extension...」を選択
  • 名前で、「pldbgapi」を選択

実行方法

  • 関数を右クリックし、コンテキストメニューから「デバッグ→ブレークポイントの設定」を選択
  • デバッガの画面が現れ、ブレークポイントへの到達を待機している状態となる
  • 通常のクエリウィンドウに切り替えて、関数を実行

2016/08/01 追記

  • pgAdminでデバッグしようとしたところ、ほぼ確実に処理が止まる&異常終了する。
  • pgAdminでのデバッグ開発はまだ難しそうであるため、伝統的なprintfでデバッグする。
  • 任意の箇所で以下のコードを記述。
raise notice 'RoundABSFlg:% %', value1, value2;
  • 「%」がパラメータ変数にあたる。左から順にvalue1、value2が代入される。
4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?