🔖
VSCodeでPostgreSQLをデバッグする
VSCodeでPostgreSQLをデバッグする
事前準備
・WSL2で環境構築する例
VSCode Extension
VSCode Extensionに以下を入れる (Microsoftが配布しているExtension)
- WSL
- C/C++
LinuxサーバなどにSSHで接続してデバッグしたい場合はWSLの代わりにRemote - SSHをインストールする
デバッガの設定
PostgreSQLのソースディレクトリで、.vscode/launch.jsonを作成
設定例
{
"version": "0.2.0",
"configurations": [
{
"name": "Attach to PostgreSQL (WSL)",
"type": "cppdbg",
"request": "attach",
"program": "/home/pgsql/pgsql/bin/postgres", // postgres のパスを設定
"processId": "${command:pickProcess}",
"MIMode": "gdb",
"miDebuggerPath": "/usr/bin/gdb",
"setupCommands": [
{ "text": "-enable-pretty-printing" }
]
}
]
}
breakpointの設定
ソースエディタで、デバッガで停止したい位置にブレークポイントをセットする (F9キーでブレークポイントをON/OFFできる)
SQLの実行を観察したい場合、exec_simple_queryなどで停止する
PostgreSQL起動
pg_ctlでPostgreSQLを起動し、psqlで接続
psqlで以下のSQLを実行し、バックエンドのPIDを取得
select pg_backend_pid();
VSCodeのデバッガでアタッチ
-
画面左のデバッグメニュー

-
Attach to PostgreSQLを起動

-
バックエンドPIDを選択してアタッチ

-
psqlでSQLを実行
select * from pg_class;
- 停止したらステップ実行などできる
Discussion