准备用VS2005和postgresql 8.x或9.0,搭建源码调试环境;
不成功;结果如下;
把下面文件中用#连着注释掉7行,然后加上一句 $self->{vcver} = '8.00'; 得到上面结果;如果不改的话上面的结果也没有;
根据资料,需要从源码构建出VS的解决方案和项目,同时由此源码生成debug版的数据库可执行文件,用可执行文件来安装出数据库软件,然后启动数据库,VS打开解决方案,附加到进程来调试;
看一下经过前面的操作,生成了VS的项目和解决方案文件;没有构建出数据库的可执行文件;
看下如果用VS打开上面解决方案,100多个项目,
能不能生成数据库的可执行文件;生成一下解决方案,多数项目成功,有一部分失败,
看一下一些主要的exe是有了的,
debug目录下多数要生成的exe生成了,
createdb也有,
不知道直接从VS里启动调试能不能调试,源码太多,不知道在哪儿下断点;根据资料,很多操作都会经过postgres.c中的一些行,
在下图函数下一个断点,
启动调试;弹出一个postgres.exe的cmd,又出现下图的错误,不明所以,
根据资料,有了debug版本的数据库可执行文件,然后进行安装数据库;安装好以后,比如安装到 E:\pgdb目录,那么进入E:\pgdb\bin,然后执行下面三步操作,
initdb -D ../data,这一步是手动初始化数据库。
输入:pg_ctl start -l logfile -D ../data,这一步是启动初始化完成的数据库,并且把日志记录在logfile文件中。
输入:psql -d postgres,
这样启动起数据库,然后附加到相关进程,就可以调试源码;
看一下只用生成的基本的几个exe,能不能调试基本进程;新建目录如下,
把前面三个步骤的exe拷过来,
然后执行命令看下,如果启动了基本进程,看能否调试;执行第一条命令,提示还需要其他文件,
从前面生成的debug目录下拷贝过来,再执行 initdb ;
提示还需要更多的文件;逐一拷贝过来;新建share目录,拷了这么多文件过来,
当提示,
initdb: file "W:/pgdb/share/conversion_create.sql" does not exist
conversion_create.sql 这个文件就找不到,可能是没有生成;
看样子这样行不通;