Visual?Studio?Code?配置C、C++?文件debug調(diào)試環(huán)境的詳細(xì)過程
大家好我是SLF,在午休的時(shí)候給嵌入式軟件的同事,演示了一下如何用vscode調(diào)試應(yīng)用端的CPP程序,他之前一直用的是UltraEdit,同事被vscode的插件調(diào)試功能安利了一波,覺得挺好用的。晚上我抽了個(gè)時(shí)間,整了個(gè)文檔,希望也能幫助到大家。
vscode C/C++ Extension Pack 插件安裝
下載直接安裝 C/C++ Extension Pack 它包含了 vscode 編寫 C/C++ 工程需要的插件,和以前比不需要一個(gè)個(gè)找了。
vscode windows 端 debug 配置
windows 端編譯運(yùn)行C/C++的程序需要一套集成開發(fā)環(huán)境,這里可以使用 MinGW https://nuwen.net/mingw.html ,選擇自己需要的安裝包安裝即可,我就直接用推薦的。
window MinGW 環(huán)境安裝
下載MinGW的安裝包,安裝即可(當(dāng)然如果電腦上裝著 Visual Studio,也可以用它的工具集配置環(huán)境)。
配置MinGW的bin目錄到系統(tǒng)環(huán)境變量。
命令行g(shù)cc -v、g++ -v 驗(yàn)證環(huán)境變量是否配置成功
windows 端 C、CPP 單文件 debug 調(diào)試
安裝好插件之后,先寫一個(gè)簡單的 cpp 文件
#include <iostream> using namespace std; int main() { int number = 100; cout << "hello world" << number << endl; return 0; }
打個(gè)斷點(diǎn),直接運(yùn)行debug,可以讓編輯器自己去創(chuàng)建 lanch.json 和 task.json 配置文件
這里選擇C++(GDB/LLDB)、不要用C++(windows),debug運(yùn)行的是 windows 自帶的 cmd
下一步 選擇 g++.exe 如下截圖;
記住不要用 C++(WIndows) 選項(xiàng)的話,會(huì)調(diào)用的是操作系統(tǒng)的cmd運(yùn)行去運(yùn)行程序,無法在vscode中正常debug,嘗試了一下,截圖如下。
注意生成的.vscode目錄,其中配置文件 lanch.js 中的 preLaunchTask 值,需要和 tasks.json 中 的任務(wù)名稱保持一致。對于不同的操作系統(tǒng)可能的其他環(huán)境,可以進(jìn)行多任務(wù)配置。
C文件也可以調(diào)試。
我的windows端配置文件如下,大家可以參考。
// launch.json { ? ? // 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": "g++.exe - Build and debug active file", ? ? ? ? ? ? "type": "cppdbg", ? ? ? ? ? ? "request": "launch", ? ? ? ? ? ? "program": "${fileDirname}\\${fileBasenameNoExtension}.exe", ? ? ? ? ? ? "args": [], ? ? ? ? ? ? "stopAtEntry": false, ? ? ? ? ? ? "cwd": "${fileDirname}", ? ? ? ? ? ? "environment": [], ? ? ? ? ? ? "externalConsole": false, ? ? ? ? ? ? "MIMode": "gdb", ? ? ? ? ? ? "miDebuggerPath": "D:\\MinGW\\bin\\gdb.exe", ? ? ? ? ? ? "setupCommands": [ ? ? ? ? ? ? ? ? { ? ? ? ? ? ? ? ? ? ? "description": "Enable pretty-printing for gdb", ? ? ? ? ? ? ? ? ? ? "text": "-enable-pretty-printing", ? ? ? ? ? ? ? ? ? ? "ignoreFailures": true ? ? ? ? ? ? ? ? } ? ? ? ? ? ? ], ? ? ? ? ? ? "preLaunchTask": "C/C++: g++.exe build active file" ? ? ? ? } ? ? ] }
// tasks.json { "tasks": [ { "type": "cppbuild", "label": "C/C++: g++.exe build active file", "command": "D:\\MinGW\\bin\\g++.exe", "args": [ "-fdiagnostics-color=always", "-g", "${file}", "-o", "${fileDirname}\\${fileBasenameNoExtension}.exe" ], "options": { "cwd": "${fileDirname}" }, "problemMatcher": [ "$gcc" ], "group": { "kind": "build", "isDefault": true }, "detail": "Task generated by Debugger." } ], "version": "2.0.0" }
代碼文件中文目錄文件名, 如何在 window 端正常調(diào)試
我是直接將 window 操作系統(tǒng)的編碼改成 UTF-8,測試有效,不過之前磁盤中的的一些不是UTF-8編碼的.txt 等文本文件,會(huì)有亂碼的情況。win10和win11系統(tǒng) UTF-8 的配置截圖如下。
win10
win11
重啟電腦后,就可以 debug 中文目錄的單文件了。
vscode ubuntu端 debug配置
我這里的系統(tǒng)是Ubuntu20.04 版本,類linux系統(tǒng)當(dāng)中配置vscode debug相對來說比window端要簡單的多。
ubuntu C、CPP單文件調(diào)試
創(chuàng)建文件目錄,寫個(gè)簡單測試程序,點(diǎn)擊debug 按鈕,可以讓vscode 自己創(chuàng)建 launch.js 和 tasks.json
選擇 C++(GDB/LLDB),參考截圖如下
選擇 gcc - 生成和調(diào)試活動(dòng)文件,參考截圖如下
成功進(jìn)入斷點(diǎn)。
我的ubuntu端配置文件如下,大家可以參考。
// launch.js { // 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": "gcc - 生成和調(diào)試活動(dòng)文件", "type": "cppdbg", "request": "launch", "program": "${fileDirname}/${fileBasenameNoExtension}", "args": [], "stopAtEntry": false, "cwd": "${workspaceFolder}", "environment": [], "externalConsole": false, "MIMode": "gdb", "setupCommands": [ { "description": "為 gdb 啟用整齊打印", "text": "-enable-pretty-printing", "ignoreFailures": true } ], "preLaunchTask": "C/C++: gcc 生成活動(dòng)文件", "miDebuggerPath": "/usr/bin/gdb" } ] }
// tasks.js { "tasks": [ { "type": "cppbuild", "label": "C/C++: gcc 生成活動(dòng)文件", "command": "/usr/bin/gcc", "args": [ "-g", "${file}", "-o", "${fileDirname}/${fileBasenameNoExtension}" ], "options": { "cwd": "${workspaceFolder}" }, "problemMatcher": [ "$gcc" ], "group": { "kind": "build", "isDefault": true }, "detail": "調(diào)試器生成的任務(wù)。" } ], "version": "2.0.0" }
中文目錄文件名, 在 ubuntu 端正常調(diào)試
在運(yùn)行,Ubuntu調(diào)式中文目錄,中文文件是沒有問題的, locale 看一下當(dāng)前系統(tǒng)的語言編碼設(shè)置,默認(rèn)是 UTF-8。
如果不行,可以修改默認(rèn)配置 sudo vi /etc/default/locale,系統(tǒng)語言是中文,LANG="zh_CN.UTF-8",系統(tǒng)語言是英文的,LANG=“en_US.UTF-8”
完成修改之后可以, source /etc/default/locale 更新配置。截圖如下
官方文檔參考
vscode官方文檔當(dāng)中也有相關(guān)的配置,大家可以參考。https://code.visualstudio.com/docs/cpp/config-mingw
在這兒,特感謝大家觀看!如有不妥之處,還請大家批評指正,大家可以聯(lián)系我,或在下方評論,謝謝大家!
到此這篇關(guān)于Visual Studio Code 配置C、C++ 文件debug調(diào)試環(huán)境的文章就介紹到這了,更多相關(guān)Visual Studio Code 配置debug調(diào)試環(huán)境內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
詳解C++中stoi/stol/stoll函數(shù)的用法
這篇文章主要為大家詳細(xì)介紹了C++中stoi、stol、stoll函數(shù)的具體用法,文中的示例代碼講解詳細(xì),對我們學(xué)校C++有一點(diǎn)的幫助,需要的可以參考一下2023-03-03