您的位置:首页 > 数据库

VS编译以及调试 PostgreSQL 源码工程

2011-11-21 09:53 246 查看
本文转自:coanor

由于工作原因,需要调试PG的源码。

google之,尚无全策,自捣鼓之,遂成。

(注:以下均为Windows平台,并且suppose你的VS2005已经安装,且设置了VS2005的环境变量:)

下载PG源代码(我下载的是8.4.1版本)、Bison(2.2版本以上或1.85版本)、Flex(单一的.exe文件)、Perl(ActivePerl,需安装)等,自google之。

『1』解压,假设为D:\Postgresql

『2』系统环境变量设置:

a)在C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727下找到MSbuild.exe这个程序,并将C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727设置为系统的path环境变量。

b)将Flex、Bison、Perl的物理路径设置为系统path环境变量(假设Bison、Flex目录为D:\)

『3』在PG的源码中,注释掉..\postgresql\contrib\fuzzystrmatch\dmetaphone.c中的几个case,具体位置为464行一个,1040行有一个,在编辑器上显示为『case
'?』,一看便知是少了半边『'』,但在这里,显示『?』是因为编辑器遇到了一个拉丁字符,无法显示才冒出一个问号,我们简单的将这两个case分支注释掉即可——毕竟我们只需要调试器代码,并不需要用VS编译一个出来自己用,实际上,PG的windows版本并不是VS家族编译出来的。

『4』在D:\postgresql\src\backend\main中的main.c中,注释掉第157行,即检查root的那行,便于调试使用。

『5』进入D:\postgresql\src\tools\msvc目录,打开config.pl文件,注释掉除perl以外的其它行,并将perl的路径设置为你当前perl的安装目录。

『6』进入命令行,CD到D:\postgresql\src\tools\msvc目录下,运行『perl build.pl DEBUG』,等着吧,在我机器上编译了00:09:01.96,若在当中遇到警告,别理它。

『7』在D:\postgresql下新建一个bin目录,然后在D:\postgresql\src\tools\msvc目录下运行『perl install.pl ..\postgresql\bin』,这一步的目的是将各地编译的成果拷贝到新建的那个bin目录下。

『8』在D:\postgresql\bin\bin目录下,运行『initdb.exe --no-locale u_db_name』,u_db_name为你自己定义的数据库名,命令执行完后,在D:\postgresql\bin\bin会生成一个u_db_name的文件夹。

『9』打开postgresql目录下的pgsql.sln文件,在主工程(postgres)的设置中:

将Configuration Properties/debugging/Command的值设置为D:\postgresql\bin\bin\postgres.exe

将Configuration Properties/debugging/Command Directory设置为--single -D u_db_name postgres

将Configuration Properties/debugging/Working directory设置为D:\postgresql\bin\bin

保存设置。

『10』按下F10吧,到了这一步,你就可以加入更多新的调试选项来猥亵PG的源码啦.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: