下载源码文件包并解压:postgresql-14.1.tar.gz
tar xf postgresql-14.1.tar.gz && cd postgresql-14.1
在解压后的目录下执行:
./configure --prefix=$HOME/software/postgresql_bin/ --enable-debug --enable-cassert
make -sj 20
make install
cd $HOME/software/postgresql_bin/
mkdir data
bin/initdb -D data
bin/pg_ctl -D data -l logfile start
bin/createdb test
LD_LIBRARY_PATH=./lib:$LD_LIBRAY_PATH bin/psql test
bin/pg_ctl -D data stop
在psql命令行下执行select pg_backend_pid();可以查到一个进程号,然后以此作为gdb调试的目标进程号:
gdb -p $上述的pid
在ExecResult函数处打断点:
b ExecResult
c
然后可以在psql命令行下执行SQL语句,就会在刚刚这个断点处中断。