在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语言读取BMP图像数据的源码

    C语言读取BMP图像数据的源码

    这篇文章主要介绍了C语言读取BMP图像数据的源码,需要的朋友可以参考下
    2013-03-03
  • c++使用Easyx图形库实现飞机大战

    c++使用Easyx图形库实现飞机大战

    本文详细讲解了c++使用Easyx图形库实现飞机大战,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-12-12
  • C++中sort()函数和priority_queue容器中比较函数的区别详析

    C++中sort()函数和priority_queue容器中比较函数的区别详析

    C++中sort()和priority_queue都能自定义比较函数,其中sort()自定义的比较函数比较好理解,priority_queue中自定义的比较函数的效果和sort()是相反的,这篇文章主要给大家介绍了关于C++中sort()函数和priority_queue容器中比较函数的区别的相关资料,需要的朋友可以参考下
    2023-03-03
  • 求32位机器上unsigned int的最大值及int的最大值的解决方法

    求32位机器上unsigned int的最大值及int的最大值的解决方法

    本篇文章是对求32位机器上unsigned int的最大值及int的最大值的解决方法进行了详细的分析介绍,需要的朋友参考下
    2013-05-05
  • C++ COM编程之什么是接口?

    C++ COM编程之什么是接口?

    这篇文章主要介绍了C++ COM编程之什么是接口?在C++中,可以使用抽象基类来实现COM接口,需要的朋友可以参考下
    2014-10-10
  • C++ override关键字使用详解

    C++ override关键字使用详解

    这篇文章主要介绍了C++ override关键字使用详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-01-01
  • C语言获取数组长度的几种方法

    C语言获取数组长度的几种方法

    这篇文章主要介绍了C语言获取数组长度的几种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-01-01
  • 详解基于C++实现约瑟夫环问题的三种解法

    详解基于C++实现约瑟夫环问题的三种解法

    约瑟夫环问题是算法中相当经典的一个问题,其问题理解是相当容易的,并且问题描述有非常多的版本,并且约瑟夫环问题还有很多变形,通过这篇约瑟夫问题的讲解,一定可以带你理解透彻
    2021-06-06
  • C++ 测试框架GoogleTest入门介绍

    C++ 测试框架GoogleTest入门介绍

    这篇文章主要为大家介绍了C++测试框架GoogleTest入门基础,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-04-04
  • C语言数据结构之单链表存储详解

    C语言数据结构之单链表存储详解

    链表是一种物理存储结构上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。本文将和大家一起聊聊C语言中单链表的存储,感兴趣的可以学习一下
    2022-07-07

最新评论