LightDB pl/pgsql Debugger API。该模块是一组共享库,用于实现在 lightDB 13.8-23.2 及以上版本上调试 pl/pgsql 函数的API。
编辑 lightdb.conf 文件,修改 shared_preload_libraries 配置选项如下:
shared_preload_libraries = “$libdir/plugin_debugger”
plugin_debugger 必须是最后一个扩展名,否则调试可能无效。
新启动 LightDB 以使新设置生效。
在希望调试函数的数据库中运行以下命令: CREATE EXTENSION pldbgapi;
连接 navicat 到包含要调试函数的数据库。右键单击要调试的函数,选择 Debugging->Debug 以立即执行和调试函数,或选择 Debugging->Set Global Breakpoint 来在函数上设置断点。这将导致调试器等待另一个会话(例如为 Web 应用程序提供服务的后端)来执行函数,并允许在上下文中进行调试。有关更多信息,请参阅 navica 文档。
调试器由三部分组成:
客户端。通常是 GUI,显示源代码、当前堆栈帧、变量等,并允许用户设置断点和逐步调试代码。客户端可以驻留在与数据库服务器不同的主机上。
目标后端。这是运行被调试代码的后端。必须将 plugin_debugger.so 库加载到目标后端中。
调试代理。这是与客户端连接的另一个后端进程。在此后端中运行 pldbgapi.so 库中的 pldbg_* API 函数。客户端使用常规的 libpq 连接连接到调试代理。当调试会话处于活动状态时,代理通过套接字连接到目标。代理与目标后端之间的协议对其他人不可见,并且可能会发生更改。pldbg_* API 函数形成了调试设施的公共接口。
调试端 *------ libpq --------* 代理端 (navicat) | pldebugger socket 连接 | * 应用端 *----- libpq -------* 目标端