当前位置 : 主页 > 编程语言 > c语言 >

在Centos7中使用vscode和gdb调试PG插件的方法

来源:互联网 收集:自由互联 发布时间:2023-02-01
目录 安装vscode vscode中gdb调试 调试动态库 调试程序 识别需要attach的PG进程 安装vscode sudo rpm --import https://packages.microsoft.com/keys/microsoft.ascsudo sh -c 'echo -e "[code]\nname=Visual Studio Code\nbaseurl=
目录
  • 安装vscode
  • vscode中gdb调试
    • 调试动态库
    • 调试程序
  • 识别需要attach的PG进程

    安装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;

    到此这篇关于在Centos7中使用vscode和gdb调试PG插件的文章就介绍到这了,更多相关vscode和gdb调试PG插件内容请搜索自由互联以前的文章或继续浏览下面的相关文章希望大家以后多多支持自由互联!

    上一篇:C/C++指针介绍与使用详解
    下一篇:没有了
    网友评论