• clion调试postgresql


    clion怎么调试postgresql呢?

    clion使用cmake去编译项目的,但是大家编译postgresql用的是make。虽然项目中也有CMakeLists.txt文件,但是cmake会报错,因此我们要修改使用cmake调用make去做编译,就好像在java中用maven调用ant编译一样。

    安装步骤

    1. 把源码从git上clone下来
    2. 安装依赖库:readline、bison和flex等
    3. 运行
    sh configure --prefix=$HOME/project --enable-depend --enable-cassert --enable-debug

    把其中的$HOME/project改成你想安装postgresql的目录

    1. 运行make
    2. 运行make install
    3. 使用initdb初始化数据库,指定数据目录
    4. 使用Clion导入postgresql源码
    5. 修改CMakeLists.txt,内容如下(如果没有,可以直接创建,并将下放内容复制进去
    cmake_minimum_required(VERSION 3.6)
    project(postgres)
    
    
    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
    
    add_custom_target(postgres COMMAND make -C ${postgres_SOURCE_DIR})
    1. 打开debug configuration,增加一个Application,Target选postgres,Executable选择到源码目录的src/backend/postgres,程序参数写 -D 数据目录

    然后就可以愉快的调试代码了,主函数在src/backend/main/main.c

    调试过程中,发现断点乱跳,而且在Eclipse/CDT中查看部分变量的值的时候,出现optimized字样。怀疑是编译过程中的优化导致的,为此需要关闭gcc优化选项。

    在https://wiki.postgresql.org/wiki/Developer_FAQ文章中也提到关闭优化开关,实践下来,configure的参数如下:

    ./configure --prefix=%your project path% --enable-depend --enable-cassert --enable-debug CFLAGS="-ggdb -O0"

     

    目前看来貌似解决了断点乱跳的问题

     
     
  • 相关阅读:
    mojo 接口示例
    MojoliciousLite: 实时的web框架 概述
    接口返回json
    centos 6.7 perl 版本 This is perl 5, version 22 安装DBI DBD
    centos 6.7 perl 5.22 安装DBD 需要使用老的perl版本
    商业智能改变汽车行业
    商业智能改变汽车行业
    读MBA经历回顾(上)目的决定手段——北漂18年(48)
    perl 升级到5.20版本
    Group Commit of Binary Log
  • 原文地址:https://www.cnblogs.com/qiumingcheng/p/10738736.html
Copyright © 2020-2023  润新知