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"

 

目前看來貌似解決了斷點亂跳的問題

 

 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM