macos安装vscode_如何使用VSCode进行PostgreSQL开发及调试

Visual Studio Code (VSCode)是一个轻量级但功能强大的源代码编辑器,可在桌面上运行,适用于Windows,macOS和Linux。 它内置了对JavaScript,TypeScript和Node.js的支持,并具有丰富的其他语言(如C++,C#,Java,Python,PHP,Go)和运行时(如.NET和Unity)的扩展生态系统。

使用这些介绍性视频开始使用VSCode开始您的旅程:https://code.visualstudio.com/docs/getstarted/introvideos
本文介绍如何使用VSCode进行PostgreSQL开发环境准备


安装VSCode


1.  下载VSCode

根据用户环境,下载合适的VSCode版本下载地址:https://code.visualstudio.com/downloade9252023dc82da1a765c1e72ff11d7e3.png


2.   安装VSCode
根据提示进行安装安装C/C++编程语言支持


安装C/C++编程语言支持(C/C++ for Visual Studio Code)

微软的C/C++扩展**提供了对Visual Studio Code的C/C++支持,以便在Windows,Linux和macOS上使用VS Code进行C和C++开发。Note: C++ Intellisense也可以使用,根据个人喜欢选择
可以在VSCode内的Extension中搜索C/C++,找到目标插件后进行安装。

0ccdc42203805cb79853e52746f5b643.png

下载PostgreSQL源代码


Git下载最新PG代码


确保您的计算机上安装了Git。Git的使用帮助网上随处可见,这里就不赘述了。

$ cd sandbox $ git clone https://github.com/postgres/postgres.git $ cd postgres ## 一般更改代码都在特定的Branch上进行 $ git checkout -b FEATTURE-NAME $ EDIT YOUR CODE $ git commit -a $ git diff --patience master my-feature > ../my-feature.patch

下载对应版本的PG代码 (Optional)


 https://www.postgresql.org/ftp/source/运行VSCode


 1.打开源代码目录


 菜单 File --> Open

 打开对应的目录,比如 ~/sandbox/postgres 2.配置命令    


有许多工具来自动执行诸如linting,build,打包,测试或部署软件系统之类的任务。 比如TypeScript编译器,再比如ESLint和TSLint这样的linters以及Make,Ant,Gulp,Jake,Rake和MSBuild等build系统。

f723e402b335770de9a08cb0efc72b62.png

这些工具主要是通过命令行来运行的,并在内部软件开发过程(编辑,编译,测试和调试)内自动执行任务。 鉴于它们在开发生命周期中的重要性,能够运行工具并从VS Code中分析其结果非常有帮助。VSCode中的任务可以配置为运行脚本和启动进程,以便可以在VSCode中使用许多现有工具,而无需输入命令行或编写新代码。工作区或文件夹特定任务是从工作区的.vscode文件夹中的tasks.json文件配置的。
2.1 打开 View --> Command Palette
输入 Task: , 选择 Tasks: Configure Task

689428655479819b0e677d234db78067.png

2.2 选择 Create tasks.json file from template

a0e6b39ea601c49ed8933136cf2f36f9.png

2.3 选择 Others Example to run the arbitrary external command

50f44f42eb8a6fc5e57aed7b659fce99.png

2.4 现在开始编辑 task.json 文件
到微软网站上 https://go.microsoft.com/fwlink/?LinkId=733558

查看关于 task.json 的格式文档注意  请根据个人需要编辑下面的任务配置文件

{// See https://go.microsoft.com/fwlink/?LinkId=733558// for the documentation about the tasks.json format"version": "2.0.0","presentation" : { "reveal": "always" },"tasks": [ {"label": "Configure","type": "shell","command": "./configure --enable-depend --enable-cassert --enable-debug","problemMatcher": ["$eslint-compact" ] }, {"label": "Make All","type": "shell","command": "make -j4 all","problemMatcher": ["$eslint-compact" ] }, {"label": "Make Clean All","type": "shell","command": "make clean","problemMatcher": ["$eslint-compact" ] }, {"label": "Make Install","type": "shell","command": "make install" } ]}

 3.运行所配制的命令


打开 View --> Command Palette --> Tasks: Run Task
选择对应的 Configure、Make 或者 make install 命令来进行PostgreSQL的编译等任务。

3cbd547deed85f1ac0f691eab6267c34.png

NOTE 可以配置一些快捷方式来方便工作使用VS Code调试PostgreSQL


这里以Mac环境下为例进行说明1.使用LLDB调试


LLDB是XCode下默认的调试工具,它和GDB有很多类似之处,如果你对GDB熟悉,使用LLDB不存在什么问题。这里是LLDB和GDB的一个命令对比(https://lldb.llvm.org/use/map.html)

注意 如果你的开发环境是Linux,请使用apt-get/yum 之间安装lldb在VS Code中调试PG打开lauch.json
菜单 View -> Command Palette,输入launch,选择 Debug: Open launch.json

1c3cf7374f04023bf0b50fac14fbaea7.png

选择 C++ (GDB/LLDB 编辑launch.json文件
注意:根据你的PG环境,修改下面 "args"里面的路径

{// Use IntelliSense to learn about possible attributes.// Hover to view descriptions of existing attributes.// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387"version": "0.2.0","configurations": [ {"name": "(lldb) pg Launch","type": "cppdbg","request": "launch","program": "${workspaceFolder}/src/backend/postgres","args": ["-D", "/Users/grantzhou/pgdata/data"],"stopAtEntry": false,"cwd": "${workspaceFolder}","environment": [],"externalConsole": true,"MIMode": "lldb" }, {"name": "(lldb) pg Launch help","type": "cppdbg","request": "launch","program": "${workspaceFolder}/src/backend/postgres","args": ["--help", ""],"stopAtEntry": false,"cwd": "${workspaceFolder}","environment": [],"externalConsole": true,"MIMode": "lldb" }, {"name": "(lldb) Launch","type": "cppdbg","request": "attach","program": "${workspaceFolder}/src/backend/postgres","MIMode": "lldb" } ]}

 开始调试


1.  打开调试选项卡(或者     F5)   

ad24d18d1ed65fedfdd6b23e251463a7.png

2.   调试
当调试会话开始后,     上面会出现调试工具栏.

45ea86bf66f8600cedd15294696295e6.png    Continue/Pause F5
    Step     Over F10
    Step Into F11
    Step     Out ⇧F11
    Restart ⇧⌘F5
    Stop ⇧F52.使用GDB调试 (Mac上不推荐使用)
注意:在最新版的Mac上,gdb 最新版本8.2的安装和执行非常的繁琐,并且存在很多无法工作且需要降级到8.0版本的情况,这里不推荐使用。MAC上安装GDB
与GCC一样,安装GDB的最简单方法是通过Homebrew。 在终端窗口中,运行命令 brew install gdb,并等待它完成。注意:我们需要对GDB可执行文件进行代码签名,从而可以根据调试器的需要控制其他进程。对gdb进行代码签名
在Keychain中创建一个新证书

1.  打开     Keychain     Access 程序
2.  菜单选择     Certificate     Assistant --> Create a Certificate
    a. 确保Identity     Type设置为Self     Signed Root
    b. 将证书类型更改为代码签名
    c.     选中“覆盖默认值”复选框

d62ed0bae0972d8c382d9cc0161661dc.png

    d. 选择 “Continue” (在弹出提示中再次单击继续)。

    e. 在下一个页面
    Security Number : 1,
    Validity Period : 3650 (最长 20 年)

efa21422443ef29f9d56100906591fc8.png

    f. 点击继续

aff589503c1c410d13ae7222f9950c5d.png

     g. 一直继续,直到让你选择保存位置。选择System

f34c1d098c7ec515ca9a51b5d74b307d.png

     h. 根据提示输入密码,Done
3.  回到 Keychain Access 主窗口,选择左侧边栏中的System keychain,然后从列表中选择新创建的证书,右键选择     Get     Info并设置为永远信任。

a31659f58497de07a0dd89f9ec050262.png

2cd9fcf7821f97f50fcbd0382a92aa51.png

 签名


1. 重新启动Taskgate  access-control服务使用Activity Monitor服务)

5b0c126dde2b0888d336fba65c0a4727.png

 
2. 点击Quit,并等待其退出,并重新显示在Activity     Monitor中     (最多等待一到两分钟)
3. 签名完成调试签名问题


codesign -fs gdbcert /usr/local/bin/gdbRestart your mac and enablecsrutil enable --without debugsudo killall taskgated# Monitor logslog stream --predicate 'process == "taskgated" OR (process == "kernel" AND eventMessage CONTAINS "macOSTaskPolicy")' --info

其他


1. PostgreSQL后端主流程,初次PG开发人员建议多看一下 
    https://www.postgresql.org/developer/backend
2.Wiki.postgresql.org的开发人员部分  (如何进行代码贡献)   
    https://wiki.postgresql.org/wiki/Developer_and_Contributor_Resources
3. 新手从这里开始
    https://wiki.postgresql.org/wiki/So,_you_want_to_be_a_developer%3F常用VS Code功能


内置快捷键参考Windows系统
    https://code.visualstudio.com/shortcuts/keyboard-shortcuts-windows.pdfLinux系统
    https://code.visualstudio.com/shortcuts/keyboard-shortcuts-linux.pdfMac系统 
    https://code.visualstudio.com/shortcuts/keyboard-shortcuts-macos.pdf配置自定义快捷键


VSCode提供了很多定制功能包括快捷键的定制。
注意:如果您安装了许多扩展程序或者已经自定义了键盘快捷键,则有时会出现键绑定冲突,其中相同的键盘快捷键映射到多个命令。 这可能会导致一些奇怪的现象,比如当您在编辑器中切换文件时,时常会导致进入和超出当前编辑范围的问题
 File > Preferences > Keyboard Shortcuts (Windows)
 Code > Preferences > Keyboard Shortcuts (MacOS)结束语


本篇日志只是为了让大家对如何使用VS Code开始PG编程有个初步的了解。
希望感兴趣的朋友 Enjoy VS Code, Enjoy PostgreSQL development

9a2d1a6dd6e7e08a23a6967d0546bb2e.png

PostgreSQL中文社区欢迎广大技术人员投稿
投稿邮箱:press@postgres.cn

bc8290cb4c1dc57e8a6f6784b6b49c5d.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/542725.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

最小生成树 kruskal_使用Kruskal算法求解Java最小生成树问题

最小生成树 kruskalIn Electronic Circuit we often required less wiring to connect pins together. We can model this wiring problem with a connected, undirected graph G(V, E), where V is the set of pins, E is the set of possible interconnections between pair …

mysql数据库面试题 软件测试_软件测试数据库面试题一

前提本次分享只局限于 sql server 和 mysql 这两种数据库,其他数据库暂不总结正文1. 对查询的字段进行去重(distinct)用法注意:1. distinct【查询字段】,必须放在要查询字段的开头,即放在第一个参数;2. 只能在SELECT 语…

mongoDB 使用手册

2019独角兽企业重金招聘Python工程师标准>>> 1、基本操作db.AddUser(username,password) 添加用户db.auth(usrename,password) 设置数据库连接验证db.cloneDataBase(fromhost) 从目标服务器克隆一个数据库db.commandHelp(name) returns the help for the commanddb.…

android搜索框功能实现_巧用 Trie 树,实现搜索引擎关键词提示功能

来源 | 码海责编 | Carol封图 | CSDN 付费下载于视觉中国我们几乎每天都在用搜索引擎搜索信息,相信大家肯定有注意过这样一个细节:当输入某个字符的时候,搜索引框底下会出现多个推荐词,如下,输入「python」后,底下会出…

qt5.9.0调试如何查看变量的值_深入了解 Java 调试

Bug(俗称"八阿哥") 是软件开发绕不过的一道坎,因此调试便成了每位程序员一项必备的核心技能。调试不仅有助于理解程序的运行流程,还能改进代码质量,最终提高开发者解决问题的能力以及交付软件的品质。本文旨在讨论 Java 调试关键技…

(6) 如何用Apache POI操作Excel文件-----POI-3.10的一个和注解(comment)相关的另外一个bug...

如果POI-3.10往一个工作表(sheet)里面插入数据的话,需要注意了,其有一个不太被容易发现的bug。 被插入的工作表(sheet)里面的单元格没有包含任何的注解(comment)的时候,插…

python导入模块以及类_python模块的导入以及模块简介

标签: 一、模块的定义及类型 1、定义 模块就是用一堆的代码实现了一些功能的代码的集合,通常一个或者多个函数写在一个.py文件里,而如果有些功能实现起来很复杂,那么就需要创建n个.py文件,这n个.py文件的集合就是模块 …

mnist手写数字数据集_mnist手写数据集(1. 加载与可视化)

》》欢迎 点赞,留言,收藏加关注《《1. 模型构建的步骤:在构建AI模型时,一般有以下主要步骤:准备数据、数据预处理、划分数据集、配置模型、训练模型、评估优化、模型应用,如下图所示:【注意】由…

python凯撒密码实现_密码:凯撒密码及其Python实现

python凯撒密码实现Before we start let’s some basic terminology... 在开始之前,让我们先介绍一些基本术语... The art and science to achieve security by encoding messages to make them unreadable are known as Cryptography. That’s what the whole art…

qtextedit 默认文案_QT-纯代码控件-QSplitter(分裂器)

版权声明:本文为博主原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接和本声明。本文链接:https://blog.csdn.net/qq_41488943/article/details/96431379使用Qplitter实现页面的三布局分布1.新建一个无ui界面的工程&…

TYVJ P1030 乳草的入侵 Label:跳马问题

背景 USACO OCT09 6TH描述 Farmer John一直努力让他的草地充满鲜美多汁的而又健康的牧草。可惜天不从人愿&#xff0c;他在植物大战人类中败下阵来。邪恶的乳草已经在他的农场的西北部份佔领了一片立足之地。草地像往常一样&#xff0c;被分割成一个高度為Y(1 < y < 100)…

s查找mysql服务_MySQL菜鸟实录(一):MySQL服务安装实战

CentOS 7基本信息系统版本&#xff1a; CentOS 7.3 64bit系统配置&#xff1a; 4vCPUs | 8GB磁盘空间&#xff1a;[rootecs-ce5a-0001 ~]# df -hFilesystem Size Used Avail Use% Mounted on/dev/vda1 40G 17G 22G 44% /devtmpfs 3.9G 0 3.9G 0% /devtmpfs 3.9G 0 3.9G 0% /dev…

实验一 线性表的顺序存储与实现_【自考】数据结构中的线性表,期末不挂科指南,第2篇

线性表这篇博客写的是线性表相关的内容&#xff0c;包括如下部分&#xff0c;先看下有木有期待啥是线性表线性表的顺序存储线性表的基本运算在顺序表上的实现线性表的链式存储线性表的基本运算在单链表上的实现循环链表与双向循环链表Over&#xff0c;内容还蛮多的&#xff01;…

TYVJ P1012 火柴棒等式 Label:枚举

背景 NOIP2008年提高组第二题描述 给你n根火柴棍&#xff0c;你可以拼出多少个形如“ABC”的等式&#xff1f;等式中的A、B、C是用火柴棍拼出的整数&#xff08;若该数非零&#xff0c;则最高位不能是0&#xff09;。用火柴棍拼数字0-9的拼法如图所示&#xff1a;注意&#xff…

python怎么开发软件_怎么使用python进行软件开发

一、下载pyinstaller 我使用的版本为PyInstaller-2.1&#xff0c;支持python版本2.3-2.7&#xff0c;点击这里下载。 二、安装pyinstaller 下载完成后&#xff0c;解压即可。我的解压目录为D:\Python27\PyInstaller-2.1\ 三、使用pyinstaller打包.py成.exe应用程序 1.注意使用前…

28、清华大学脑机接口实验组SSVEP数据集:通过视觉触发BCI[飞一般的赶脚!]

前言&#xff1a; 哈喽&#xff0c;最近对清华大学脑机接口的数据进行了尝试&#xff0c;输入到了DL模型中&#xff0c;以下是本人对于清华BCI数据的个人见解。 数据地址&#xff1a; 清华大学脑机接口研究组 (tsinghua.edu.cn) 打开网站可以看到有很多个数据&#xff0c;官…

python Pexpect

http://www.cnblogs.com/dkblog/archive/2013/03/20/2970738.htmlhttp://www.ibm.com/developerworks/cn/linux/l-cn-pexpect2/index.htmlhttp://www.cnblogs.com/dkblog/archive/2013/03/20/2970738.htmlpython Pexpect Pexpect 是一个用来启动子程序并对其进行自动控制的纯 P…

3dmax镜像后模型线条乱了_3dMax入门教程来啦!小白赶紧收藏!

3D Studio Max&#xff0c;常简称为3d Max或3ds MAX&#xff0c;是Discreet公司开发的&#xff08;后被Autodesk公司合并&#xff09;基于PC系统的三维动画渲染和制作软件&#xff0c; 3dmax软件主要功能有建模&#xff0c;动画&#xff0c;渲染&#xff0c;特效等&#xff0c;…

如何将多个一维列表转化为二维列表_数据分析2_如何处理一维、二维数据

吞一块大饼&#xff0c;还不如切成小块吃得香常见的数据集&#xff0c;要么是数列&#xff0c;要么是表格&#xff1b;因此&#xff0c;数据分析最首要的是&#xff0c;处理一维、二维数据。主要知识点可参考如图。如需要&#xff0c;可点击以下百度网盘链接下载数据分析基础知…

关于java中锁的面试题_Java面试题-Java中的锁

1. 如何实现乐观锁(CAS)&#xff1f;如何避免ABA问题&#xff1f;答&#xff1a;1)读取内存值的方式实现了乐观锁(比如&#xff1a;SVN系统)&#xff0c;方法&#xff1a;第一&#xff0c;比较内存值和期望值&#xff1b;第二&#xff0c;替换内存值为要替换值。2)带参数版本来…