用VSCode調試C/C++代碼 (通過WSL)
本文總結了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 <stdio.h>
int mian(){
for(int i = 0; i < 10; i++){
printf("%d
", 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
}
]
},
]
}
參數解釋 :
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. 點擊代碼行號左側設置斷點.
F5
或者點擊調試
->啟動調試
開始調試.
效果如下 :
左側是變數的值, 可以進行編輯修改.
下方是調試控制台, 輸出調試信息, 可以修改變數的值, 或者直接注入代碼.完成 !
下篇文章將用VSCode
+WSL
調試Web伺服器Nginx
源代碼.
歡迎點贊, 歡迎關注哦
推薦閱讀:
TAG:VisualStudioCode | 科技 |