如何阅读PostgreSQL源代码?

    技术2022-05-20  46

        在LINUX环境下阅读源代码,比较流行的方法是:vim + ctags,而且可以很方便的调试代码,但比较麻烦的是,需要结合个人习惯配置vim,对于大多数人来讲,使用起来通常很不习惯。在WINDOWS下,有很强大的代码阅读工具:source insight,但是不便于调试。因此,本文讲解如何结合WINDOWS和LINUX的优势,边调试边阅读PG源码。

    1. 需要的工具

    source insight:在WINDOWS下阅读源码;GDB(LINUX环境,安装虚拟机):在LINUX下调试源码;xshell:在WINDOWS下连接LINUX控制台,便于看代码和调试代码时进行切换。

    其中前面两个工具是必须的,xshell只是为了方便阅读,当然,每个人的习惯不一样,也可以不需要。

     

    2. 阅读环境的安装过程

    第一步:在WINDOWS上安装虚拟机(VMware或virtual box都可以),并在虚拟机中安装LINUX系统(fedora,ubuntu, ....)。在安装linux系统时,注意选择编程环境,一定要安装gcc和gdb。第二步:在linux系统中用源码编译安装PostgreSQL。PG源码可在http://www.postgresql.org/下载;配置安装选项时,安装目录可以指定为/usr/local/pgsql,并且要选择可调试模式安装。第三步:在windows上安装source insight,并导入PostgreSQL源码。第四步:在windows上安装xshell,并连接linux的控制台。

    3. GDB的常用调试命令

    break 设置断点,常用使用方法如下: break 行号break 函数名称break 行号/函数名称 if 条件clear 删除设置在指定行号或函数上的断点print 打印变量或表达式的值list 列出程序代码next 单步执行,不进入所调用的函数内部step 单步执行,进入所调用的函数内部continue 执行到下一个断点whatis 查看变量或函数类型watch 在程序中设置观测点,如果数据改变,将给出变化前后的情况info break 查看断点信息quit 退出

    更丰富的命令参考gdb官方文档

    4. 如何边调试边阅读

    -psql -l 查看所有数据库

    -psql XXX 进入数据库后台

    -select pg_backend_pid(); 查看当前连接的进程号

    -gdb -p XXXX (进程号) 用gdb挂载进程并调试

     

     

     


    最新回复(0)