首頁 > 軟體

在Centos7中使用vscode和gdb偵錯PG外掛的方法

2022-09-14 22:01:52

安裝vscode

sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc
sudo sh -c 'echo -e "[code]nname=Visual Studio Codenbaseurl=https://packages.microsoft.com/yumrepos/vscodenenabled=1ngpgcheck=1ngpgkey=https://packages.microsoft.com/keys/microsoft.asc" > /etc/yum.repos.d/vscode.repo'
yum check-update
sudo yum install code

給vscode安裝擴充套件

C/C++

C/C++ Extension Pack

vscode中gdb偵錯

開啟資料夾(預設建立工作區隱藏資料夾)

開啟C/C++檔案,遊標放在檔案內

按F1,輸入C/C++,選擇C/C++:Edit configuration,生成c_cpp_properties.json組態檔。一般來說不需要更改,若想更好的智慧提示,可以在includePath裡新增新的目錄。例如

"/home/postgres/pgcode/postgres-REL_14_2/src/include",
"/home/postgres/pgcode/postgres-REL_14_2/src/include/portability",
"/home/postgres/pgcode/postgres-REL_14_2/src/interfaces/libpq"

偵錯動態庫

在本機上偵錯PG外掛citus,citus的原始碼放在PG原始碼的contrib中。

在偵錯,點選“建立 launch.json”,右下角點選“新增設定”,在彈出的視窗選擇“C/C++ :(gdb)附加”。

"program": "/home/postgres/pgREL1402/bin/postgres"

偵錯程式

例如偵錯pg_dump。

假如在命令列裡我們輸入如下命令

pg_dump "host=192.168.0.109 port=15431 user=tua password=123 dbname=testddl" -s -t tm

在偵錯裡需要等價成

"program": "/home/postgres/pgREL1402/bin/pg_dump",
"args": ["host=192.168.0.109 port=15431 user=tua password=123 dbname=testddl","-s","-t","tm"],

最後點選“開始偵錯”或者F5進入偵錯。

識別需要attach的PG程序

在psql命令列裡執行東西后,怎樣偵錯呢?需要將gdb附加到對應psql的PG後臺程序。可以通過下面語句找出來。

SELECT procpid, start, now() - start AS lap, current_query 
FROM (SELECT backendid, 
        pg_stat_get_backend_pid(S.backendid) AS procpid, 
        pg_stat_get_backend_activity_start(S.backendid) AS start, 
       pg_stat_get_backend_activity(S.backendid) AS current_query 
    FROM 
        (SELECT pg_stat_get_backend_idset() AS backendid) AS S 
    ) AS S WHERE current_query <> '<IDLE>' ORDER BY lap DESC;

到此這篇關於在Centos7中使用vscode和gdb偵錯PG外掛的文章就介紹到這了,更多相關vscode和gdb偵錯PG外掛內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com