作者:瀚高PG实验室 (Highgo PG Lab)- 张波

PostgreSQL是一款功能强大且开放源码的数据库,支持Windows、Linux、Unix等多种操作系统。如果仅要求使用好PostgreSQL,可以直接下载各平台的二进制安装包,但如果要更深入的研究PostgreSQL,则需要亲自对PostgreSQL进行编译、安装、调试,甚至需要阅读源码获取相应的信息。下面就演示一下如何在Windows下编译调试PostgreSQL。
环境介绍
Windows10,Virtual Studio 2019社区版,PostgreSQL 13.1
首先下载安装Virtual Studio 2019社区版,下载地址:https://visualstudio.microsoft.com/zh-hans/thank-you-downloading-visual-studio/?sku=Community&rel=16
安装选项如下:
在这里插入图片描述

PostgreSQL在Windows下编译时,需要通过MinGW提供GCC编辑环境,MinGW下载地址:https://osdn.net/projects/mingw/downloads/68260/mingw-get-setup.exe,下载安装完成后,需要安装如下依赖包
在这里插入图片描述

选中后,点击菜单中的Apply Changes安装编译环境
在这里插入图片描述

也可以使用命令行安装上面依赖包,命令如下:

D:\MinGW\bin>mingw-get.exe install mingw-developer-toolkit-bin
D:\MinGW\bin>mingw-get.exe install mingw32-gcc-g++-bin

下载安装perl,下载地址:http://strawberryperl.com/。
修改源码下“postgresql-13rc1\src\fe_utils\print.c”文件编码,使用Virtual Studio打开该文件,通过另存为修改编码,操作如下
在这里插入图片描述
在这里插入图片描述

如不修改,编译完成后,会报如下警告。
在这里插入图片描述

修改完成后,在菜单中找到如下命令行
在这里插入图片描述

然后执行“cd /d D:\NAS\PostgreSQL\postgresql-13rc1\src\tools\msvc”切换到pg源码路径,执行命令“perl build.pl DEBUG”此处为方便调试使用DEBUG模式,编译时间会比在linux下要长,编译完成后,如下:
在这里插入图片描述

编译完成后,可以执行“perl vcregress.pl check”跑一下回归测试,结果如下:
在这里插入图片描述

确认无误后,执行“perl install.pl D:\NAS\PostgreSQL\pg13”进行安装,安装结果如下:
在这里插入图片描述

进入到pg安装目录“cd /d D:\NAS\PostgreSQL\pg13\bin”进行建库操作“initdb.exe -D …/data”,建库完成后,启动pg数据库“pg_ctl.exe -D …/data -l logfile start”,启动完成后即可进入数据库“psql -d postgres”,如下
在这里插入图片描述

如果需要使用vs调试pg,先将pg代码使用vs打开,打开方式,找到编译后的文件夹“D:\NAS\PostgreSQL\postgresql-13rc1”,用Virtual Studio打开文件“pgsql.sln”。查询pg的进程ID,用Virtual Studio附加到进程,如下
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

附加后,Virtual Studio中的诊断工具将显示PostgreSQL运行时的资源使用情况,如下
在这里插入图片描述

如想要弄明白PostgreSQL的某个功能,但又不清楚从哪里打断点或想搞清楚功能是如何运行的,可以选择全部中断,然后单步执行,如下
在这里插入图片描述

点击后,在命令行执行操作会暂停,如下
在这里插入图片描述

此时可以按F11或F10逐语句或逐过程执行
在这里插入图片描述

单步执行过程中,可以在Virtual Studio看到相关执行信息,如下
在这里插入图片描述

Logo

更多推荐