用VSCode調試C/C++代碼 (通過WSL)

本文總結了WindowsGNU C/C++編程的方式,並通過VS CodeWSL(Windows Subsystem for Linux)下進行調試

Part 1

眾所周知, 在Windows下進行GNU C/C++的編寫和調試一直是個難題. 目前, 有以下幾種解決方法.

  1. Linux虛擬機

  2. MinGW

    MinGW (Minimalist GNU for Windows), 可以讓 Windows 用戶使用 gcc,gdb 等工具,編譯後的程序是Windows可執行文件(exe文件).

  3. Cygwin

    Cygwin則是提供了一個模擬 Linux 環境, 提供將部分 Linux 應用"移植"到Windows平台的開發環境.

  4. WSL

    WSL (Windows Subsystem for Linux) 是由微軟與 Canonical 公司合作開發的 Windows 子系統, 它類似 Cygwin, 提供了比 Cygwin 更好的兼容性, 更全的功能, 更快的運行速度.

Part 2

下面將介紹如何利用微軟編輯器 VS CodeWSL 配合, 實現極佳的C/C++調試體驗.

  1. WSL的安裝

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

    推薦一篇博客 : WSL(Windows Subsystem for Linux)的安裝與使用

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

  2. VS Code的下載安裝

    VS Code 是微軟開發的代碼編輯器, 功能簡潔而全面, 界面美觀, 打開速度極快. 這篇教程便是用 VS Code 編輯的. 官網下載安裝包, 非常方便.

  3. 調試配置

    新建名為test的文件夾, 用 VS Code 打開.

  1. 新建名為 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
}
]
},
]
}

launch.json

參數解釋 :

program : 被調試的可執行文件.需要修改

sourceFileMap : 由 wsl 到的 windows 的目錄映射.如果test.c不在C盤需要修改

cwd : 可執行文件的運行目錄.

stopAtEntry : 是否在main函數起點暫停. args : 可執行文件的參數.

可以按 Ctrl + ` (或查看->終端) 啟動終端, 運行 bash 進入wsl, 運行 pwd

查看當前目錄.

  1. 開始調試

    4.1. 按 Ctrl + ` (或查看->終端) 啟動終端, 輸入 bash 進入wsl, 運行 gcc -g test.c , -g 選項開啟調試模式.

    4.2. 點擊代碼行號左側設置斷點.

4.3. 按下F5或者點擊調試->啟動調試開始調試.

效果如下 :

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

下方是調試控制台, 輸出調試信息, 可以修改變數的值, 或者直接注入代碼.

完成 !

下篇文章將用VSCode+WSL調試Web伺服器Nginx源代碼.


歡迎點贊, 歡迎關注哦

推薦閱讀:

TAG:VisualStudioCode | 科技 |