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

 更新时间:2022年09月14日 14:56:19   作者:半瓶以上 一瓶未满  
这篇文章主要介绍了在Centos7中使用vscode和gdb调试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++17实现flyweight_factory模板类及使用示例详解

    C++17实现flyweight_factory模板类及使用示例详解

    这篇文章主要为大家介绍了C++17实现flyweight_factory模板类及使用示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-08-08
  • C语言 函数缺省参数详情

    C语言 函数缺省参数详情

    这篇文章主要介绍了C语言 的函数缺省参数、除了介绍函数全缺省参数,和半缺省参数还简单介绍了函数声明、函数调用等一些函数的定义,需要的朋友可以参考下面文章内容
    2021-09-09
  • C++实现闹钟程序的方法

    C++实现闹钟程序的方法

    这篇文章主要介绍了C++实现闹钟程序的方法,比较实用的功能,需要的朋友可以参考下
    2014-08-08
  • C语言中随机数rand()函数详解

    C语言中随机数rand()函数详解

    大家好,本篇文章主要讲的是C语言中随机数rand()函数详解,感兴趣的同学感快来看一看吧,对你有帮助的话记得收藏一下
    2022-02-02
  • C语言完美实现动态数组代码分享

    C语言完美实现动态数组代码分享

    本文给大家分享的是一则使用C语言实现动态数组的代码,完美解决内存溢出以及内存回收问题,有需要的小伙伴可以参考下。
    2016-02-02
  • C语言读取文件流的相关函数用法简介

    C语言读取文件流的相关函数用法简介

    这篇文章主要介绍了C语言读取文件流的相关函数用法简介,包括fread()函数和feof()函数的使用,需要的朋友可以参考下
    2015-08-08
  • C语言编程深入理解取整取余取模问题示例分析

    C语言编程深入理解取整取余取模问题示例分析

    这篇文章主要为大家介绍了C语言编程深入理解取整取余取模问题的示例分析详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步
    2021-11-11
  • C语言关于文件的操作方法总结

    C语言关于文件的操作方法总结

    在任何程序的开发中,对于文件的操作都是绕不开的一个知识点,因为总是要用到存储读取的功能,今天我们来详细了解C语言中是怎么操作文件的
    2021-11-11
  • C语言实现阶乘的示例详解

    C语言实现阶乘的示例详解

    在现实中,我们做数学题总会遇到阶乘问题,这在计算机中也不例外。 那我们应该怎么实现呢?下面小编就为大家讲解一下C语言中阶乘的实现
    2022-07-07
  • C语言版实现三子棋游戏

    C语言版实现三子棋游戏

    这篇文章主要为大家详细介绍了C语言版实现三子棋游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-07-07

最新评论