PL Debugger#
Debugger page - Parameters tab#
デバッガーは、 PostgreSQLのPL/pgSQLファンクション、およびAdvanced ServerのEDB-SPLファンクション、ストアドプロシージャ、およびパッケージをデバッグするために使用できます。デバッガーは、PostgreSQLインストールの拡張機能として利用でき、 Advanced Serverの一部として配布されます。デバッガーを使用するにはスーパーユーザー権限が必要です。
デバッガーを使用する前に、postgresql.conf
ファイルを変更し、サーバーサイドのデバッガーコンポーネントをshared_preload_libraries
パラメーターの値に追加する必要があります。
shared_preload_libraries ='$libdir/other_libraries /plugin_debugger'
shared_preload_libraries
パラメーターを変更した後、サーバーを再起動して変更を適用します。
デバッガーは、ターゲットファンクションまたはプロシージャのインコンテキストデバッグまたは直接デバッグに使用できます。インコンテキストデバッグにデバッガーを使用する場合、プログラムの最初の行にブレークポイントを設定します。セッションがターゲットを呼び出すと、制御がデバッガーに転送されます。ダイレクトデバッグを使用する場合、デバッガーは、ターゲットに必要なパラメーターの入力を求め、コードをステップ実行できます。
インコンテキストデバッグ#
プログラムの最初の行にブレークポイントを設定するには、デバッグするオブジェクトの名前を右クリックし、
Debugging サブメニューからSet breakpoint
を選択します。デバッガーウィンドウが開き、別のセッションがプログラムを呼び出すのを待機します。
Debugger tab#
別のセッションがターゲットを呼び出すと、デバッガーにコードが表示され、ブレークポイントを追加したり、行ごとにステップスルーしたりできます。他のセッションは、デバッグが完了するまで一時停止されます。制御はセッションに返されます。
Debugger page - Stack tab#
ダイレクトデバッグ#
直接デバッグにデバッガーを使用するには、ブラウザツリーコントロールでデバッグするオブジェクトの名前を右クリックし、Debugging
サブメニューからDebug
を選択します。デバッガーウィンドウが開き、プログラムに必要な値の入力を求められます。
Debugger parameter dialog#
Debugger
ダイアログのフィールドを使用して、各パラメーターの値を提供します。
Nameフィールドには、正式なパラメーター名が含まれます。Typeフィールドには、パラメーターのデータ型が含まれます。Null?チェックボックスをチェックして、パラメーターがNULL値であることを示します。Valueフィールドに式が含まれる場合、
Expression?チェックボックスをチェックします。Valueフィールドを使用して、プログラムに渡されるパラメーター値を提供します。パラメーター値を入力するときは、グリッド上の適切なセルに値を入力するか、セルを空のままにしてNULLを表すか、''2つの一重引用符を入力して空の文字列を表すか、次から構成されるリテラル文字列を入力します。 2つの一重引用符だけを使用する場合は、 ''と入力します。 PostgreSQL 8.4以降では、可変個引数ファンクションパラメーターをサポートしています。これらは、値のコンマ区切りリストとして入力でき、必要に応じて引用符および/またはキャストされます。Use default?チェックボックスをチェックして、プログラムがデフォルト値フィールドの値を使用する必要があることを示します。Default Valueフィールドには、パラメーターのデフォルト値が含まれています。
プログラムに必要な値を提供し、 Debug
ボタンをクリックしてプログラムのステップ実行を開始します。ここで指定された引数の値は保存されます。値は、次回ダイアログが開いたときに事前入力されます。値をクリアするには、
Clear All ボタンを使用します。
Debugger page - Stack tab#
デバッガーを使用する#
メインデバッガーウィンドウは、2つのパネルと状況依存のツールバーで構成されています。ツールバーアイコンを使用してブレークポイントを管理し、コードにステップインまたはステップスルーします。アイコンにカーソルを合わせると、アイコンに関連付けられているオプションを示すツールチップが表示されます。ツールバーオプションは次のとおりです。
Debugger navigation toolbar#
Option |
Action |
|---|---|
Step into |
`Step into`アイコンをクリックして、現在強調表示されているコード行を実行します。 |
Step over |
`Step over`アイコンをクリックしてコード行を実行し、コードによって呼び出されるサブファンクションをステップオーバーします。サブファンクションは実行されますが、ブレークポイントが含まれない限りデバッグされません。 |
Continue/Start |
`Continue/Start`アイコンをクリックして、強調表示されたコードを実行し、プログラムがブレークポイントに遭遇するか完了するまで続行します。 |
Toggle breakpoint |
`Toggle breakpoint`アイコンを使用して、ブレークポイントを有効または無効にしますブレークポイントを削除せずに。 |
Clear all breakpoints |
`Clear all breakpoints`アイコンをクリックして、プログラムからすべてのブレークポイントを削除します。 |
Stop |
`Stop`アイコンをクリックして、プログラムの実行を停止します。 |
デバッガーウィンドウの上部パネルには、プログラム本体が表示されます。行番号の横にある灰色の余白をクリックして、ブレークポイントを追加します。上部パネルの強調表示された行は、これから実行される行です。
Debugger main page#
デバッガーウィンドウの下部パネルには、プログラムに関する情報を確認できるタブのセットが提供されます。
Parametersタブには、各パラメーターの値が表示されます。Localvariablesタブには、プログラム変数の現在値が表示されます。Messagesタブには、サーバーから返されたメッセージエラー、警告、情報メッセージが表示されます。Resultsタブには、プログラムが完了するとサーバーメッセージが表示されます。Stackタブには、呼び出されたがまだ完了していないファンクションのリストが表示されます。
プログラムをステップ実行すると、Local variables
タブに各変数の現在値が表示されます。
Debugger page - Local variables tab#
サブルーチンにステップインすると、Stack
タブには、各呼び出し元の名前、各呼び出し元のパラメーター値存在する場合、各呼び出し元内の行番号を含むコールスタックが表示されます。
Debugger page - Stack tab#
呼び出し元を選択してフォーカスをそのスタックフレームに変更し、上部のパネルに呼び出し元の状態を表示します。
プログラムが完了すると、サーバーから返されたメッセージがResults
タブに表示されます。プログラムでエラーが発生した場合、Messages
タブに詳細が表示されます。
Debugger page - Message tab#
!!!note ENABLE_DEBUGGER
構成オプションがFalseに設定されている場合、デバッガーは無効になっています。
!!!