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.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。
也可以直接下载: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的文档实在写得太好了。
PostgreSQL 的详细介绍:请点这里
PostgreSQL 的下载地址:请点这里
推荐阅读:如何在Linux下调试PostgreSQL http://www.linuxidc.com/Linux/2011-03/33721.htmPostgreSQL 9.3物化视图使用 http://www.linuxidc.com/Linux/2013-09/90045.htm使用 PostgreSQL 数据库日期类型的 4 个提示 http://www.linuxidc.com/Linux/2013-08/89472.htmPostgreSQL删除表中重复数据行 http://www.linuxidc.com/Linux/2013-07/87780.htmPostgreSQL缓存详述 http://www.linuxidc.com/Linux/2013-07/87778.htmWindows平台编译 PostgreSQL http://www.linuxidc.com/Linux/2013-05/85114.htmUbuntu下LAPP(Linux+Apache+PostgreSQL+PHP)环境的配置与安装 http://www.linuxidc.com/Linux/2013-04/83564.htm更多CentOS相关信息见CentOS 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=14Oracle 11g + ASM DBCA 建库问题解决心得Oracle ASM操作管理相关资讯 Linux GDB调试 Eclipse调试 PostgreSQL源码
- 在Eclipse中进行HotSpot的源码调试 (05/09/2015 11:05:47)
- Eclipse 平台入门:使用 Eclipse (09/24/2013 08:05:45)
- Linux下用GDB调试可加载模块 (01/17/2013 07:55:55)
| - CloudStack 4.3 源码部署+Eclipse (06/05/2014 19:50:08)
- 采用Eclipse + GDB来搭建调试Qemu (04/06/2013 08:31:55)
|
本文评论 查看全部评论 (0)