当前位置 : 主页 > 编程语言 > c语言 >

CLion进行远程/本地编译、GDB调试postgres(含阅读源码)

来源:互联网 收集:自由互联 发布时间:2023-09-03
Clion-Remote GDB调试postgres(本地为windows,远程为centos) 通过Make+Makefile编译,并构建索引 下面一步一步跟着做即可 下载源码压缩包、编译postgres的源码:使用Clion调试postgresql源码 - 知乎

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的命令输出,来解析工程的构建描述。

</>

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

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调试。

网友评论