本文總結了

Windows

GNU C/C++

程式設計的方式,並透過

VS Code

WSL(Windows Subsystem for Linux)

下進行除錯

Part 1

眾所周知, 在

Windows

下進行

GNU C/C++

的編寫和除錯一直是個難題。 目前, 有以下幾種解決方法。

Linux虛擬機器

MinGW

MinGW

(Minimalist GNU for Windows), 可以讓 Windows 使用者使用 gcc,gdb 等工具,編譯後的程式是Windows可執行檔案(exe檔案)。

Cygwin

Cygwin

則是提供了一個模擬 Linux 環境, 提供將部分 Linux 應用“移植”到Windows平臺的開發環境。

WSL

WSL

(Windows Subsystem for Linux) 是由微軟與 Canonical 公司合作開發的 Windows 子系統, 它類似

Cygwin,

提供了比

Cygwin

更好的相容性, 更全的功能, 更快的執行速度。

Part 2

下面將介紹如何利用微軟編輯器

VS Code

WSL

配合, 實現極佳的

C/C++

除錯體驗。

WSL的安裝

WSL安裝較為簡單, 網上有很多教程。 作者選擇的是 Ubuntu 發行版。

推薦一篇部落格 : WSL(Windows Subsystem for Linux)的安裝與使用

請根據您選擇的 Linux 發行版, 安裝 gcc 和 gdb.

VS Code的下載安裝

VS Code

是微軟開發的程式碼編輯器, 功能簡潔而全面, 介面美觀, 開啟速度極快。 這篇教程便是用

VS Code

編輯的。 官網下載安裝包, 非常方便。

除錯配置

新建名為

test

的資料夾, 用

VS Code

開啟。

用VSCode除錯CC++程式碼 (透過WSL)

新建名為

test。c

的檔案, 用簡單的

for

迴圈進行測試。

test。c

#include

int

mian

(){

for

int

i

=

0

i

<

10

i

++

){

printf

“%d

\n

i

);

}

}

在編寫 test.c 的過程中, 編輯器將提示您安裝 C/C++ 拓展外掛, 按照提示安裝即可.

用VSCode除錯CC++程式碼 (透過WSL)

安裝該拓展

選擇

除錯

->

新增配置

->

C++(GDB/LLDB)

, 將生成的

launch。json

替換為以下內容:

launch。json

{

“version”

“0。2。0”

“configurations”

{

“name”

“(gdb) Bash on Windows Launch”

“type”

“cppdbg”

“request”

“launch”

“program”

“/mnt/c/C++Projects/test/a。out(注意修改)”

“args”

[],

“stopAtEntry”

false

“miDebuggerArgs”

“”

“cwd”

“/mnt/c/C++Projects/test/(注意修改)”

“environment”

[],

“externalConsole”

false

“sourceFileMap”

{

“/mnt/c/”

“C:\\”

},

“pipeTransport”

{

“debuggerPath”

“/usr/bin/gdb”

“pipeProgram”

“${env:windir}\\system32\\bash。exe”

“pipeArgs”

“-c”

],

“pipeCwd”

“”

},

“setupCommands”

{

“description”

“Enable pretty-printing for gdb”

“text”

“-enable-pretty-printing”

“ignoreFailures”

true

}

},

}

用VSCode除錯CC++程式碼 (透過WSL)

launch。json

引數解釋 :

program

: 被除錯的可執行檔案。

需要修改

sourceFileMap

: 由 wsl 到的 windows 的目錄對映。

如果test.c不在C盤需要修改

cwd

: 可執行檔案的執行目錄。

stopAtEntry

: 是否在main函式起點暫停。

args

: 可執行檔案的引數。

可以按

Ctrl

+

`

(或

檢視

->

終端

) 啟動終端, 執行

bash

進入wsl, 執行

pwd

檢視當前目錄。

用VSCode除錯CC++程式碼 (透過WSL)

開始除錯

4。1。 按

Ctrl

+

`

(或

檢視

->

終端

) 啟動終端, 輸入

bash

進入wsl, 執行

gcc -g test。c

-g

選項開啟除錯模式。

4。2。 點選程式碼行號左側設定斷點。

用VSCode除錯CC++程式碼 (透過WSL)

4。3。 按下

F5

或者點選

除錯

->

啟動除錯

開始除錯。

效果如下 :

用VSCode除錯CC++程式碼 (透過WSL)

左側是變數的值, 可以進行編輯修改。

下方是除錯控制檯, 輸出除錯資訊, 可以修改變數的值, 或者直接注入程式碼。

用VSCode除錯CC++程式碼 (透過WSL)

完成 !

下篇文章將用

VSCode

+

WSL

除錯Web伺服器

Nginx

原始碼。

歡迎點贊, 歡迎關注哦