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

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)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值