pldbgapi

用于调试 PL/pgSQL 函数的服务器端支持

概览

扩展包名版本分类许可证语言
pldebugger1.9LANGArtisticC
ID扩展名BinLibLoadCreateTrustReloc模式
3050pldbgapi-
相关扩展plpgsql_check plprofiler plpgsql pgtap pg_stat_statements plv8 plperl plpython3u

版本

类型仓库版本PG 大版本包名依赖
EXTPGDG1.91817161514pldebugger-
RPMPGDG1.91817161514pldebugger_$v-
DEBPGDG1.91817161514postgresql-$v-pldebugger-
OS / PGPG18PG17PG16PG15PG14
el8.x86_64
el8.aarch64
el9.x86_64
el9.aarch64
el10.x86_64
el10.aarch64
d12.x86_64
PGDG 1.9
PGDG 1.9
PGDG 1.9
PGDG 1.9
PGDG 1.9
d12.aarch64
PGDG 1.9
PGDG 1.9
PGDG 1.9
PGDG 1.9
PGDG 1.9
d13.x86_64
PGDG 1.9
PGDG 1.9
PGDG 1.9
PGDG 1.9
PGDG 1.9
d13.aarch64
PGDG 1.9
PGDG 1.9
PGDG 1.9
PGDG 1.9
PGDG 1.9
u22.x86_64
PGDG 1.9
PGDG 1.9
PGDG 1.9
PGDG 1.9
PGDG 1.9
u22.aarch64
PGDG 1.9
PGDG 1.9
PGDG 1.9
PGDG 1.9
PGDG 1.9
u24.x86_64
PGDG 1.9
PGDG 1.9
PGDG 1.9
PGDG 1.9
PGDG 1.9
u24.aarch64
PGDG 1.9
PGDG 1.9
PGDG 1.9
PGDG 1.9
PGDG 1.9

安装

您可以直接安装 pldebugger 扩展包的预置二进制包,首先确保 PGDG 仓库已经添加并启用:

pig repo add pgdg -u          # 添加 PGDG 仓库并更新缓存

使用 pig 或者是 apt/yum/dnf 安装扩展:

pig install pldebugger;          # 当前活跃 PG 版本安装
pig ext install -y pldebugger -v 18  # PG 18
pig ext install -y pldebugger -v 17  # PG 17
pig ext install -y pldebugger -v 16  # PG 16
pig ext install -y pldebugger -v 15  # PG 15
pig ext install -y pldebugger -v 14  # PG 14
dnf install -y pldebugger_18       # PG 18
dnf install -y pldebugger_17       # PG 17
dnf install -y pldebugger_16       # PG 16
dnf install -y pldebugger_15       # PG 15
dnf install -y pldebugger_14       # PG 14
apt install -y postgresql-18-pldebugger   # PG 18
apt install -y postgresql-17-pldebugger   # PG 17
apt install -y postgresql-16-pldebugger   # PG 16
apt install -y postgresql-15-pldebugger   # PG 15
apt install -y postgresql-14-pldebugger   # PG 14

预加载配置

shared_preload_libraries = 'pldbgapi';

创建扩展

CREATE EXTENSION pldbgapi;

用法

pldbgapi: 用于调试 PL/pgSQL 函数的服务端支持

pldbgapi 提供了用于交互式调试 PL/pgSQL 函数的服务端 API。通常通过 pgAdmin 等图形界面客户端使用。

CREATE EXTENSION pldbgapi;

使用 pgAdmin 进行调试

使用调试器的主要方式是通过 pgAdmin 的图形界面:

  • 直接调试:右键点击一个函数并选择"Debug",即可立即执行并逐步调试
  • 全局断点:在某个函数上选择"Set Global Breakpoint",然后等待另一个会话(例如 Web 应用)调用该函数——调试器将拦截调用并允许在上下文中调试

调试功能

通过调试客户端连接后,你可以:

  • 设置断点:在 PL/pgSQL 函数的特定行上设置断点
  • 逐步执行:逐行执行代码(步入、步过、步出)
  • 检查变量:查看每一步变量的当前值
  • 查看调用栈:查看嵌套函数调用的调用栈
  • 继续执行:执行到下一个断点

架构

调试系统由三个组件组成:

  1. 客户端 GUI(pgAdmin)——显示源代码、变量和调用栈
  2. 目标后端——执行被调试 PL/pgSQL 代码的会话
  3. 调试代理——通过专用连接在客户端和目标之间进行协调

支持的语言

调试器适用于 PL/pgSQL 函数和过程。需要在每个需要调试的数据库中创建 pldbgapi 扩展。


最后修改 2026-03-14: update extension metadata (953cbd0)