加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

postgresql学习笔记【1】-Linux+eclipse+gdb调试postgresql源码

发布时间:2020-12-13 17:35:13 所属栏目:百科 来源:网络整理
导读:【引用请注明出处:http://www.jb51.cc/article/p-euufifjc-mv.html】 pg内核源码解析课上用的vs调试pg源码。VS用起来确实方便,但是配置调试环境着实有点麻烦。首先得装个windows系统,最好是xp,win7稍微麻烦点;最好使用vs05,08和10也可以,但是比05还麻

【引用请注明出处:http://www.52php.cn/article/p-euufifjc-mv.html】

pg内核源码解析课上用的vs调试pg源码。VS用起来确实方便,但是配置调试环境着实有点麻烦。首先得装个windows系统,最好是xp,win7稍微麻烦点;最好使用vs05,08和10也可以,但是比05还麻烦;此外还得装个perl,最好再装上cygwin以及其他一大堆linux上原生的东西。然后才能生成vs的工程,生成工程保不准会遇上一些参数配置问题。关键是pg很多都是跑在linux上的啊,在windows上有些与系统调用有关的代码执行和linux上是不一样,比如创建进程。如果不关心这些系统调用的东西,得益于pg源码很好的平台兼容性,我们也是可以在windows上研究和修改pg源码的。可是如果我们修改了pg的源码,要验证在服务器上的效果,还得打个包传到服务器上,重新编译、运行。运行的时候还没法在线调试,只能打日志。

鉴于以上的问题,最终还是放弃了鸡肋一般的vs。可如果在linux上用gdb调试,也实在有点hold不住。于是就用eclipse吧。

参考:http://wiki.postgresql.org/wiki/Working_with_Eclipse[1]


我的系统环境:

centos6.4_x64

gcc.4.4.7

eclipse-c/c++ kepler

postgresql 9.4


下面是我的配置过程:

1. 安装必要的软件

# yum install git readline* zlib* bison flex java-1.7.0*
上述这些软件在某些linux系统中可能已经安装了。

2. 下载pg源码

源码可以用git从pg的repository里下载:

[bhq@localhost ~]$ mkdir project
[bhq@localhost ~]$ cd project
[bhq@localhost ~]$ git clone git://git.postgresql.org/git/postgresql.git
下载完成后,在project目录下会有一个postgresql目录,里面就是pg的源码。[1]中的pg版本比较老,下载后是postgres目录,并将其重命名为pgsql。

也可以直接下载:http://www.postgresql.org/ftp/source/之后解压到project目录下。

3. configure源码

在终端中:

[bhq@localhost ~]$ cd postgresql
[bhq@localhost ~]$ ./configure --prefix=$HOME/project --enable-depend --enable-cassert --enable-debug
其中的$HOME/project 是指刚才下载源码时创建的那个project目录。这个目录会被用来存放pg编译之后生成的文件和目录。没有报error就configure成功了。

4. 配置eclipse

从http://www.eclipse.org/downloads/下载Eclipse IDE for C/C++ Developers。

打开eclipse之后,在package explorer中importpostgresql工程。操作过程和[1]中Import一节一样。只是import完成之后,我的eclipse没有自动开始make。于是手动make:

在eclipse的package explorere视图中右击postgresql的工程-> make targets-> create 。填入install-> OK。然后在package explorere视图中右击postgresql工程-> make targets -> build,选择刚才新建的install,OK。最后在console中可以看到“postgreSQL installation complete”就表示make instal成功了。以后每次修改源码之后都要重新make。

5. initdb

在终端中:
[bhq@localhost ~] $ mkdir ~/pgdata
[bhq@localhost ~] $ cd project
[bhq@localhost ~] $ ./bin/initdb -D ~/pgdata
-D后的目录用于存放pg的配置文件和数据库文件,这个目录的所有者必须是启动pg和eclipse的用户。(由于ntfs文件系统不支持用户权限,所以不要把这个目录放在ntfs的分区上,用win linux双系统的人可能会遇到这个问题)

6. 运行和调试pg

参考[1]中run configuration in eclipse、Add include files、debugging postgresql from eclipse、Debugging with child processes
这四节。注意不要先运行起来再调试,不然端口就被占了。

最后小结一下:
pg的文档实在写得太好了。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读