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

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

时间:2023-09-02 14:00:54浏览次数:50  
标签:postgres 配置文件 用户 GDB 源码 clion

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)

标签:postgres,配置文件,用户,GDB,源码,clion
From: https://blog.51cto.com/u_15534346/7332537

相关文章

  • 从源码编译OpenCV
    从源码编译的原因官方已经有编译好的包可下载:https://opencv.org/releases/但是在iOS项目中集成官方编译的pack(目前为4.8.0),出现以下错误:ld:in/.../opencv2.framework/opencv2(opencl_kernels_calib3d.o),buildingforiOSSimulator,butlinkinginobjectfilebuiltf......
  • 基于Java的高校学生请假审批系统的设计与实现-计算机毕业设计源码+LW文档
    一、选题的目的和意义:计算机技术的发展,带来了时代变革,我们的生活方式发生了重大改变。计算机网络的普及使得信息共享成为现实,利用数据库进行信息存储分析,优化了工作方式,提高了工作效率,经过多年的发展,数据库已经应用到社会生活的方方面面,完善的数据库技术和理论基础为计算机软件提......
  • 揭秘POSTGRESQL中的通信加密
    在这篇文章中,我们想向您简要介绍TLS(传输层安全性),这是一种广泛与PostgreSQL结合使用的技术,用于加密客户端/服务器连接。什么是TLS?TLS是“传输层安全”的缩写,它是一种确保通过TCP连接发送的任何数据免受攻击者保护的方法。要了解TLS的工作原理,您首先需要了解有关加密的......
  • TCP KEEPALIVE以获得更好的POSTGRESQL体验进程
    如果您听说过TCPkeepalive但不确定它是什么,请继续阅读。如果您曾经对以下错误消息感到惊讶:serverclosedtheconnectionunexpectedlySSLSYSCALLerror:EOFdetectedunexpectedEOFonclientconnectioncouldnotreceivedatafromclient:Connectionresetbypeer......
  • postgresql流复制一(环境搭建)
    PostgreSQL早在9.0版本开始支持物理复制,也可称为流复制(StreamingReplication),通过流复制技术,可以从实例级复制出一个与主库一模一样的从库(也称之为备库)举个简单的例子,在主机host1上创建了一个PostgreSQL实例,并在实例上创建多个数据库,通过流复制技术可以在另外一台主机ho......
  • postgresql流复制三(延迟备库)
    延迟备库是指可以配置备库和主库的延迟时间,这样备库始终和主库保持指定时间的延迟,例如设置备库和主库之间的延迟时间为1小时,理论上备库和主库的延时始终保持在一小时左右。延迟备库1延迟备库的意义PostgreSQL流复制环境下,如果主库不是很忙并且备库硬件资源充分,通常备库和主......
  • postgresql流复制四(查询冲突)
    部署流复制环境后,备库可提供只读操作,通常会将一些执行时间较长的分析任务、统计SQL跑在备库上,从而减轻主库压力,在备库上执行一些长时间SQL时,可能会出现以下错误并被中止:FATAL:terminatingconnectionduetoconflictwithrecoveryDETAIL:Userwasholdingarelation......
  • POSTGRESQL中从MD5到SCRAM-SHA-256
    从v10开始,PostgreSQL提供了scram-sha-256对密码哈希和身份验证的支持。本文介绍了如何安全地调整您的应用程序。为什么我们需要scram-sha-256?PostgreSQL使用哈希加密有两个目的:实际的数据库密码是用户输入的明文密码的哈希值。这可以防止小偷在其他系统上使用偷来的密码。......
  • 同时创建作者和作者详情表,ModelSerializer使用,模块与包的使用,反序列化校验源码分析
    1同时创建作者和作者详情表1.1django项目改名字后顺利运行#1先改文件夹名#2改项目名#3改项目内的文件夹名#4替换掉所有文件中的drf_day04---》drf_day05#5命令行中启动:pythonmanage.pyrunserver#6setting--->django--->指定项目根路径1.1作者......
  • 记录:阅读 C# 中string的源码
    stringUnsafe.AddUnsafe.Add是string中一个常用的方法,它不是用于向某个对象添加元素的,而是用于计算字符在内存中的偏移位置。Split是如何运行的string的split操作是直接进行内存操作实现的,这样可以在不创建大量新字符串副本的情况下,从原始字符串中提取子字符串。它使用......