本文總結了
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
開啟。
新建名為
test。c
的檔案, 用簡單的
for
迴圈進行測試。
test。c
#include
int
mian
(){
for
(
int
i
=
0
;
i
<
10
;
i
++
){
printf
(
“%d
\n
”
,
i
);
}
}
在編寫 test.c 的過程中, 編輯器將提示您安裝 C/C++ 拓展外掛, 按照提示安裝即可.
安裝該拓展
選擇
除錯
->
新增配置
->
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
}
]
},
]
}
launch。json
引數解釋 :
program
: 被除錯的可執行檔案。
需要修改
sourceFileMap
: 由 wsl 到的 windows 的目錄對映。
如果test.c不在C盤需要修改
cwd
: 可執行檔案的執行目錄。
stopAtEntry
: 是否在main函式起點暫停。
args
: 可執行檔案的引數。
可以按
Ctrl
+
`
(或
檢視
->
終端
) 啟動終端, 執行
bash
進入wsl, 執行
pwd
檢視當前目錄。
開始除錯
4。1。 按
Ctrl
+
`
(或
檢視
->
終端
) 啟動終端, 輸入
bash
進入wsl, 執行
gcc -g test。c
,
-g
選項開啟除錯模式。
4。2。 點選程式碼行號左側設定斷點。
4。3。 按下
F5
或者點選
除錯
->
啟動除錯
開始除錯。
效果如下 :
左側是變數的值, 可以進行編輯修改。
下方是除錯控制檯, 輸出除錯資訊, 可以修改變數的值, 或者直接注入程式碼。
完成 !
下篇文章將用
VSCode
+
WSL
除錯Web伺服器
Nginx
原始碼。
歡迎點贊, 歡迎關注哦