视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
Linux+Eclipse+GDB调试PostgreSQL源码
2020-11-09 10:38:31 责编:小采
文档


可如果在linux上用gdb调试,也实在有点hold不

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吧。

参考: [1]

我的系统环境:

CentOS6.4_x

gcc.4.4.7

eclipse-c/c++ kepler

postgresql 9.3

下面是我的配置过程:

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。

也可以直接下载: 之后解压到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

从 下载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的文档实在写得太好了。

PostgreSQL 的详细介绍:请点这里
PostgreSQL 的下载地址:请点这里

推荐阅读:

如何在Linux下调试PostgreSQL

PostgreSQL 9.3物化视图使用

使用 PostgreSQL 数据库日期类型的 4 个提示

PostgreSQL删除表中重复数据行

PostgreSQL缓存详述

Windows平台编译 PostgreSQL

Ubuntu下LAPP(Linux+Apache+PostgreSQL+PHP)环境的配置与安装

下载本文
显示全文
专题