日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

在Centos7中使用vscode和gdb調試PG插件的方法_C 語言

作者:半瓶以上?一瓶未滿 ? 更新時間: 2022-11-06 編程語言

安裝vscode

sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc
sudo sh -c 'echo -e "[code]\nname=Visual Studio Code\nbaseurl=https://packages.microsoft.com/yumrepos/vscode\nenabled=1\ngpgcheck=1\ngpgkey=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;

原文鏈接:https://www.cnblogs.com/wlsandwho/p/16051272.html

欄目分類
最近更新