如何使用CLion远程本地编译并GDB调试postgres数据库,同时阅读源码?

更新于
2026-10-10 06:57:12
2阅读来源:SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1209个文字,预计阅读时间需要5分钟。

如何使用CLion远程/本地编译并GDB调试postgres数据库,同时阅读源码?

使用Clion和GDB远程调试PostgreSQL(本地为Windows,远程为CentOS)的步骤如下:

1. 准备环境: - 在Windows上安装Clion。 - 在CentOS上安装PostgreSQL源代码和必要的编译工具。

2. 下载并压缩源码: - 访问PostgreSQL官网下载最新源码。 - 使用`tar -zxf postgresql-XX.tar.gz`解压。

3. 创建Makefile: - 在源码目录下创建Makefile,配置编译选项。 - 示例内容: CC=gcc CXX=g++ AR=ar RANLIB=ranlib CFLAGS=-Wall -Wextra -O2 -g LDFLAGS=prefix=/usr/local bindir=/usr/local/bin sbindir=/usr/local/sbin includedir=/usr/local/include libdir=/usr/local/lib datadir=/usr/local/share/postgresql mandir=/usr/local/share/man sharedir=/usr/local/share sysconfdir=/etc install_sh=install-sh

4. 编译PostgreSQL: - 在Makefile目录下运行`make`进行编译。

5. 配置远程调试: - 在Clion中配置远程调试。 - 设置远程调试器连接到CentOS上的PostgreSQL进程。

6. 启动PostgreSQL: - 在CentOS上启动PostgreSQL服务。

7. 调试源码: - 在Clion中连接到远程调试器。 - 设置断点并开始调试。

通过以上步骤,您可以在Clion中调试PostgreSQL源代码,实现本地Windows和远程CentOS的协同工作。

Clion-Remote GDB调试postgres(本地为windows,远程为centos)

通过Make+Makefile编译,并构建索引

下面一步一步跟着做即可

  • 下载源码压缩包、编译postgres的源码:使用Clion调试postgresql源码 - 知乎 (zhihu.com)(系统 用户的配置文件是~/.zshrc)

  • 下载源码压缩包、编译postgres的源码:Linux下 PostgreSQL 编译安装_丶破浪的博客-CSDN博客(用户的配置文件是~/.bash_profile)

  • linux上安装gdbserver (例:centos中)

    sudo yum install gdb-gdbserver

  • 运行gdbserver(先切换postgres用户)指定为1234端口,确保postgres原先是已关闭的状态

    su - postgres

    gdbserver :1234 /usr/local/pgsql/bin/postgres -D /var/postgresql/data

    “/usr/local/pgsql/bin/postgres” 其实就是pg_ctl会调用的可执行程序

  • (1条消息) CLion配置远程服务器_clion deployment_yuanS7的博客-CSDN博客

  • 现在想clion可以识别到本项目中的makefile的话,点击左上角 File -> Settings -> Build, Execution, Deployment -> Makefile

    • 在 Toolchain 中选择 Remote Host ,Apply之后,会弹出一个Load Project的窗口去clean project,点击确定,然后clion会花几分钟的时间构建索引,之后便可查阅源码
  • 详细可看官网:Remote Debug | CLion Documentation (jetbrains.com)

    • clion中打开 Run | Edit Configurations, 点击 +,and select Remote Debug from the list of templates.
    • debugger:选之前设置的远程toolchain的GDB
    • 'target remote' args:输入 ip:1234
    • Path mappings:“Local”输入本地项目的目录,”Remote“输入远程项目的目录
    • debug时,可能要等一会儿,连接成功时,clion会打印 Debugger connected to ip:1234
  • 开启一个新的终端,切换为用户postgres,然后连接数据库

    psql

  • 手动关闭postgres

    pg_ctl stop -D $PGDATA -m fast

  • 手动开启postgres

    pg_ctl start -D $PGDATA

  • 在Clion中的 "GDB Console"(GDB 控制台)中,使用 GDB 命令发送信号以关闭进程

    signal SIGTERM

<zshrc和bash_profile的区别>

~/.zshrc 和 ~/.bash_profile 是用户的配置文件,用于自定义用户的 Shell 环境。它们在不同的操作系统和 Shell 中起着相似的作用。

~/.zshrc 是用于 Zsh Shell 的配置文件,而 ~/.bash_profile 是用于 Bash Shell 的配置文件。它们位于用户的主目录下(~ 表示用户的主目录),在用户登录时被加载和执行。

这些配置文件的作用是设置用户的 Shell 环境变量、定义别名、配置命令提示符和加载其他用户自定义的 Shell 脚本等。

</>

<使用CLion查阅内核源码>

linux使用makefile+kconfig的方式描述构建规则,老版本的clion并不支持makefile的工程,只支持cmake工程,这样打开linux源码的目录,无法创建clion的工程,也就无法建立索引,那么代码补全和符号调整都无法工作。

只能通过bear工具,跟踪编译过程,再通过kernel-grok生成CMakeLists.txt,再用clion打开。

但是新版本的clion(2020.2起),正式加入了Makefile工程的支持,也就是说,clion可以直接解析make的构建过程。clion是通过 --just-print参数(也就是make --just-print),使make只打印命令,并不进行真正的调用,进而分析make的命令输出,来解析工程的构建描述。

如何使用CLion远程/本地编译并GDB调试postgres数据库,同时阅读源码?

</>

<自动化批处理编译工具>

5分钟理解make/makefile/cmake/nmake - 知乎 (zhihu.com)

</>

Clion-Local GDB调试postgres(本地为windows)

  • (2条消息) PostgreSQL源码学习——win10源码编译安装_postgresql win编译_薛钦亮的博客-CSDN博客(一定要是下载源码安装包再解压,git clone的再perl时会报错)

  • pg数据库成功启动之后,使用psql连接上,并查询postgres的backend的进程号。

    select pg_backend_pid();

  • 在clion中,点击左上角,选择 "Run" -> "Attach to Process ..." ,查询进程号,然后attach,便可以开始进行gdb调试。

本文共计1209个文字,预计阅读时间需要5分钟。

如何使用CLion远程/本地编译并GDB调试postgres数据库,同时阅读源码?

使用Clion和GDB远程调试PostgreSQL(本地为Windows,远程为CentOS)的步骤如下:

1. 准备环境: - 在Windows上安装Clion。 - 在CentOS上安装PostgreSQL源代码和必要的编译工具。

2. 下载并压缩源码: - 访问PostgreSQL官网下载最新源码。 - 使用`tar -zxf postgresql-XX.tar.gz`解压。

3. 创建Makefile: - 在源码目录下创建Makefile,配置编译选项。 - 示例内容: CC=gcc CXX=g++ AR=ar RANLIB=ranlib CFLAGS=-Wall -Wextra -O2 -g LDFLAGS=prefix=/usr/local bindir=/usr/local/bin sbindir=/usr/local/sbin includedir=/usr/local/include libdir=/usr/local/lib datadir=/usr/local/share/postgresql mandir=/usr/local/share/man sharedir=/usr/local/share sysconfdir=/etc install_sh=install-sh

4. 编译PostgreSQL: - 在Makefile目录下运行`make`进行编译。

5. 配置远程调试: - 在Clion中配置远程调试。 - 设置远程调试器连接到CentOS上的PostgreSQL进程。

6. 启动PostgreSQL: - 在CentOS上启动PostgreSQL服务。

7. 调试源码: - 在Clion中连接到远程调试器。 - 设置断点并开始调试。

通过以上步骤,您可以在Clion中调试PostgreSQL源代码,实现本地Windows和远程CentOS的协同工作。

Clion-Remote GDB调试postgres(本地为windows,远程为centos)

通过Make+Makefile编译,并构建索引

下面一步一步跟着做即可

  • 下载源码压缩包、编译postgres的源码:使用Clion调试postgresql源码 - 知乎 (zhihu.com)(系统 用户的配置文件是~/.zshrc)

  • 下载源码压缩包、编译postgres的源码:Linux下 PostgreSQL 编译安装_丶破浪的博客-CSDN博客(用户的配置文件是~/.bash_profile)

  • linux上安装gdbserver (例:centos中)

    sudo yum install gdb-gdbserver

  • 运行gdbserver(先切换postgres用户)指定为1234端口,确保postgres原先是已关闭的状态

    su - postgres

    gdbserver :1234 /usr/local/pgsql/bin/postgres -D /var/postgresql/data

    “/usr/local/pgsql/bin/postgres” 其实就是pg_ctl会调用的可执行程序

  • (1条消息) CLion配置远程服务器_clion deployment_yuanS7的博客-CSDN博客

  • 现在想clion可以识别到本项目中的makefile的话,点击左上角 File -> Settings -> Build, Execution, Deployment -> Makefile

    • 在 Toolchain 中选择 Remote Host ,Apply之后,会弹出一个Load Project的窗口去clean project,点击确定,然后clion会花几分钟的时间构建索引,之后便可查阅源码
  • 详细可看官网:Remote Debug | CLion Documentation (jetbrains.com)

    • clion中打开 Run | Edit Configurations, 点击 +,and select Remote Debug from the list of templates.
    • debugger:选之前设置的远程toolchain的GDB
    • 'target remote' args:输入 ip:1234
    • Path mappings:“Local”输入本地项目的目录,”Remote“输入远程项目的目录
    • debug时,可能要等一会儿,连接成功时,clion会打印 Debugger connected to ip:1234
  • 开启一个新的终端,切换为用户postgres,然后连接数据库

    psql

  • 手动关闭postgres

    pg_ctl stop -D $PGDATA -m fast

  • 手动开启postgres

    pg_ctl start -D $PGDATA

  • 在Clion中的 "GDB Console"(GDB 控制台)中,使用 GDB 命令发送信号以关闭进程

    signal SIGTERM

<zshrc和bash_profile的区别>

~/.zshrc 和 ~/.bash_profile 是用户的配置文件,用于自定义用户的 Shell 环境。它们在不同的操作系统和 Shell 中起着相似的作用。

~/.zshrc 是用于 Zsh Shell 的配置文件,而 ~/.bash_profile 是用于 Bash Shell 的配置文件。它们位于用户的主目录下(~ 表示用户的主目录),在用户登录时被加载和执行。

这些配置文件的作用是设置用户的 Shell 环境变量、定义别名、配置命令提示符和加载其他用户自定义的 Shell 脚本等。

</>

<使用CLion查阅内核源码>

linux使用makefile+kconfig的方式描述构建规则,老版本的clion并不支持makefile的工程,只支持cmake工程,这样打开linux源码的目录,无法创建clion的工程,也就无法建立索引,那么代码补全和符号调整都无法工作。

只能通过bear工具,跟踪编译过程,再通过kernel-grok生成CMakeLists.txt,再用clion打开。

但是新版本的clion(2020.2起),正式加入了Makefile工程的支持,也就是说,clion可以直接解析make的构建过程。clion是通过 --just-print参数(也就是make --just-print),使make只打印命令,并不进行真正的调用,进而分析make的命令输出,来解析工程的构建描述。

如何使用CLion远程/本地编译并GDB调试postgres数据库,同时阅读源码?

</>

<自动化批处理编译工具>

5分钟理解make/makefile/cmake/nmake - 知乎 (zhihu.com)

</>

Clion-Local GDB调试postgres(本地为windows)

  • (2条消息) PostgreSQL源码学习——win10源码编译安装_postgresql win编译_薛钦亮的博客-CSDN博客(一定要是下载源码安装包再解压,git clone的再perl时会报错)

  • pg数据库成功启动之后,使用psql连接上,并查询postgres的backend的进程号。

    select pg_backend_pid();

  • 在clion中,点击左上角,选择 "Run" -> "Attach to Process ..." ,查询进程号,然后attach,便可以开始进行gdb调试。