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.pswp.cn/news/542725.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/542725.shtml
英文地址,請注明出處:http://en.pswp.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 語…

python數碼時鐘代碼_python時鐘的實現

from time importsleepimporttimeimportosclassClock(object):"""數字時鐘""" def __init__(self, hour0, minute0, second0):"""初始化方法 :param hour: 時 :param minute: 分 :param second: 秒"""self._hourh…

PHP頁面跳轉

本文轉載自:http://blog.sina.com.cn/s/blog_9a06890901014ol1.html PHP頁面跳轉一、header()函數 header函數中Location類型的標頭是一種特殊的header調用,常用來實現頁面跳轉 注意:1、location和“:”號間不能有空格,否則不會跳…

如何打印出給定尺寸的方格_打印給定號碼的表格| 8086微處理器

如何打印出給定尺寸的方格Problem statement: 問題陳述: Write an assembly language program in 8086 to print the table of a given integer. 在8086中編寫匯編語言程序以打印給定整數的表。 Assumptions: Suppose the inputted number is at memory location …

python自動更新excel數據_如何更新Excel數據?(刷新所有查詢)

我有一個帶有一些查詢的Excel xlsm文件。目前我每天打開它,點擊“數據”選項卡中的“全部刷新”命令。我希望這件事能自動完成。我用python編寫了一個腳本(我是python新手)。問題是,刷新數據并保存Excel文件后,刷新的數據不可見(我知道刷新工…

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」后,底下會出…

Python | 從用戶輸入數據,保存到文件,讀取并打印

Here, we have to input the data from the user, to read the data from user, we use input() method, and then the input data we have to store in the file by using write() method and then by using read() method we can get the data. 在這里,我們必須從…

python語句print type 1234的輸出結果是_Python語句 print(type(1J))的輸出結果是

【填空題】遍歷輸出文件所有行。 fopen("d:\\r2.txt","r") while True: str print(str,end) if not str: break f.close()【單選題】執行下列 Python語句將產生的結果是( ) i1 if (i): print(True) else: print( False)【單選題】Python語句 print(type(1/…

qt5.9.0調試如何查看變量的值_深入了解 Java 調試

Bug(俗稱"八阿哥") 是軟件開發繞不過的一道坎,因此調試便成了每位程序員一項必備的核心技能。調試不僅有助于理解程序的運行流程,還能改進代碼質量,最終提高開發者解決問題的能力以及交付軟件的品質。本文旨在討論 Java 調試關鍵技…

python字符串轉浮點數_Python | 打印不同的值(整數,浮點數,字符串,布爾值)...

python字符串轉浮點數In the given example, we are printing different values like integer, float, string and Boolean using print() method in python. 在給定的示例中,我們使用python中的print()方法打印不同的值,例如整數,浮點數&…

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

如果POI-3.10往一個工作表(sheet)里面插入數據的話,需要注意了,其有一個不太被容易發現的bug。 被插入的工作表(sheet)里面的單元格沒有包含任何的注解(comment)的時候,插…

mysql下拉刷新加載數據_下拉刷新、加載數據功能

paging nick加載更多getData();varm0,n2;//m:button點擊次數 n:一次加載幾條數據$(.page-btn-nick).click(getData);functiongetData(){$.ajax(paging.html).then(function(response){//測試url寫本頁面varobj{developer:[{name:nick},{name:ljy},{name:xzl},{name:jeson},{nam…

mcq 隊列_人工智能邏輯才能問答(MCQ)

mcq 隊列1) Why do we want to implement the concept of Logic in an AI system? So that the agent can have decision making capabilitySo that the agent can think and act humanlySo that the agent can apply the logic for finding the solution to any particular p…

第三周作業!

1、列出當前系統上所有已經登錄的用戶的用戶名,注意:同一個用戶登錄多次,則只顯示一次即可。答:本題思路:先用who命令列出當前登陸的用戶信息,然后使用cut命令對字段進行分割,選出我們需要的字段…

python導入模塊以及類_python模塊的導入以及模塊簡介

標簽: 一、模塊的定義及類型 1、定義 模塊就是用一堆的代碼實現了一些功能的代碼的集合,通常一個或者多個函數寫在一個.py文件里,而如果有些功能實現起來很復雜,那么就需要創建n個.py文件,這n個.py文件的集合就是模塊 …

mysql 指定數字排序_Mysql數據排序

排序數據普通字段排序按照單一字段排序按照多個字段排序手動指定排序順序單個字段手動排序多個字段手動排序普通字段排序按照單一字段排序排序采用order by子句,order by后面跟上排序字段,排序字段可以放多個,多個采用逗號間隔,or…

《黃帝內經 —— 央視60集紀錄片》

下載地址: http://pan.baidu.com/s/1dFI8hxf 目錄 第一部 醫史篇第1集:神奇的秘笈(《黃帝內經》是部什么書)第2集:赫赫始祖(上)(黃帝、炎帝)第3集:赫赫始祖&a…

mnist手寫數字數據集_mnist手寫數據集(1. 加載與可視化)

》》歡迎 點贊,留言,收藏加關注《《1. 模型構建的步驟:在構建AI模型時,一般有以下主要步驟:準備數據、數據預處理、劃分數據集、配置模型、訓練模型、評估優化、模型應用,如下圖所示:【注意】由…