国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

VSCode調(diào)試C++代碼的多種方案

這篇具有很好參考價(jià)值的文章主要介紹了VSCode調(diào)試C++代碼的多種方案。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

以下內(nèi)容均針對(duì) Linux 操作系統(tǒng)(包括Windows的Linux子系統(tǒng)WSL2)。

本文是對(duì)Linux系統(tǒng)中使用VSCode編譯調(diào)試C++代碼的系列文章的總結(jié),前面三篇文章如下:

  1. 詳解C/C++代碼的預(yù)處理、編譯、匯編、鏈接全過程
  2. Linux環(huán)境使用VSCode調(diào)試簡(jiǎn)單C++代碼
  3. Linux環(huán)境使用VSCode調(diào)試CMake工程

1. 根本邏輯

在VSCode中編譯調(diào)試C++代碼的本質(zhì)邏輯:

  • tasks.json 指定如何生成二進(jìn)制可執(zhí)行文件
    • 可以直接通過g++編譯器生成
    • 可以通過CMake生成
    • 可以通過腳本.sh生成
  • launch.json負(fù)責(zé)配置gdb調(diào)試器,包括:指定可執(zhí)行文件名、命令行參數(shù),以及預(yù)執(zhí)行任務(wù)(prelaunchTask)

2. 方案一:直接調(diào)用g++編譯器生成可執(zhí)行文件

具體過程在這篇文章中詳細(xì)解釋:Linux環(huán)境使用VSCode調(diào)試簡(jiǎn)單C++代碼

這里簡(jiǎn)要概括重點(diǎn)內(nèi)容。

  1. 第一步:將*.cpp源代碼文件通過g++編譯器生成一個(gè)可調(diào)試的可執(zhí)行二進(jìn)制文件

如果不在VSCode中運(yùn)行,而是在終端中運(yùn)行,需要運(yùn)行下面的指令:

g++ -g hello.cpp -o hello

那么將這一步配置在VSCode的tasks.json中,tasks.json中的內(nèi)容應(yīng)該如下(具體過程可以參考上面的鏈接):

{
	"version": "2.0.0",
	"tasks": [
        {
            "type": "cppbuild",
            "label": "C/C++: g++ 生成活動(dòng)文件",
            "command": "/usr/bin/g++",
            "args": [
                "-g",
                "${file}",
                "-o",
                "${fileDirname}/${fileBasenameNoExtension}"
            ],
            "options": {
                "cwd": "${fileDirname}"
            },
            "problemMatcher": [
                "$gcc"
            ],
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "detail": "編譯器: /usr/bin/g++"
        }
    ]
}
  1. 第二步:調(diào)用gdb調(diào)試器對(duì)可執(zhí)行文件進(jìn)行調(diào)試

如果不在VSCode中運(yùn)行,而是在終端中運(yùn)行,需要運(yùn)行下面的指令:

gdb hello

將這一步配置在VSCode的launch.json中,則launch.json中的內(nèi)容應(yīng)該如下(詳細(xì)過程和解釋同樣可以參考上面鏈接):

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "(gdb) 啟動(dòng)",
            "type": "cppdbg",
            "request": "launch",
            "program": "${fileDirname}/${fileBasenameNoExtension}",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${fileDirname}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "setupCommands": [
                {
                    "description": "為 gdb 啟用整齊打印",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                },
                {
                    "description": "將反匯編風(fēng)格設(shè)置為 Intel",
                    "text": "-gdb-set disassembly-flavor intel",
                    "ignoreFailures": true
                }
            ],
            "miDebuggerPath": "/usr/bin/gdb",
            "preLaunchTask": "C/C++: g++ 生成活動(dòng)文件"
        }
    ]
}

3. 方案二:CMake生成可執(zhí)行文件

具體過程在這篇文章中詳細(xì)解釋:Linux環(huán)境下使用VScode調(diào)試CMake工程

對(duì)于CMake工程,如果不使用VSCode,而是使用終端命令行方式進(jìn)行編譯的話,標(biāo)準(zhǔn)做法是:

cd build
cmake ..
make

那么將這個(gè)過程配置在VSCode的tasks.json中,其內(nèi)容應(yīng)該如下(詳細(xì)過程見參考鏈接):

{
	"version": "2.0.0",
	"tasks": [
        {
            "label": "cmake",
            "type": "shell",
            "command": "cmake",
            "args": [
                "../"
            ],
            "options": {
                "cwd": "${fileDirname}/build"
            },            
        },
        {
            "label": "make",
            "type": "shell",
            "command": "make",
            "args": [],
            "options": {
                "cwd": "${fileDirname}/build"
            }, 
        },
        {
            "label": "build",
            "dependsOn":["cmake", "make"]
        },
    ],
}

通過VSCode完成CMake編譯過程后,將會(huì)在 build 目錄下生成一個(gè)可執(zhí)行文件。
調(diào)用gdb對(duì)生成的可執(zhí)行文件進(jìn)行調(diào)試,需要配置launch.json文件如下:

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "g++ - Build and debug active file",
            "type": "cppdbg",
            "request": "launch",
            "program": "${fileDirname}/build/${fileBasenameNoExtension}",
            "args": ["para1", "para2"],
            "stopAtEntry": false,
            "cwd": "${fileDirname}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ],
            "preLaunchTask": "build",
            "miDebuggerPath": "/usr/bin/gdb"
        }
    ]
}

4. 方案三:shell腳本生成可執(zhí)行文件

腳本文件build_executable.sh的內(nèi)容如下:

echo "Configuring and building ORB_SLAM3..."

mkdir build
cd build
# cmake .. -DCMAKE_BUILD_TYPE=Debug
cmake .. -Wno-dev
make -j8

該方案與方案二類似,即把cd build + cmake + make的過程寫到shell腳本文件里,那么只需要把方案二中的cmake + make過程替換為執(zhí)行.sh腳本文件即可,直接列出來(lái)參考的 tasks.jsonlaunch.json文件,可以發(fā)現(xiàn),launch.json的內(nèi)容基本沒有變:文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-629342.html

tasks.json

{
    "version": "2.0.0",
    "tasks": [
        {
            "type": "cppbuild",
            "label": "C/C++: g++ build active file",
            "command": "sh",
            "args": [
                "build_executable.sh"
            ],
            "options": {
                "cwd": "${workspaceFolder}"
            },
            "problemMatcher": [
                "$gcc"
            ],
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "detail": "compiler: /usr/bin/g++"
        }
    ]
}

launch.json

{
    "version": "0.2.0",
    "configurations": [
		{
            "name": "g++ - debug active file",
            "type": "cppdbg",
            "request": "launch",
            "program": "${fileDirname}/${fileBasenameNoExtension}",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${fileDirname}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ],
            "preLaunchTask": "C/C++: g++ build active file",
            "miDebuggerPath": "/usr/bin/gdb"
        }
    ]
}
        

到了這里,關(guān)于VSCode調(diào)試C++代碼的多種方案的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 解決MAC中vscode調(diào)試C++代碼無(wú)法處理輸入的問題

    解決MAC中vscode調(diào)試C++代碼無(wú)法處理輸入的問題

    寫在前面的話:很久沒有使用C/C++進(jìn)行編程了,這次在MAC電腦的vscode中對(duì)C/C++代碼進(jìn)行調(diào)試時(shí),發(fā)現(xiàn)運(yùn)行到scanf、cin等輸入語(yǔ)句時(shí)無(wú)法輸入,參考了網(wǎng)上一些教程,發(fā)現(xiàn)有些繁瑣或是難以解決我的問題。因此以本文記錄最終的解決方案,一來(lái)為了記錄以便下次遇到時(shí)進(jìn)行解決,

    2024年02月05日
    瀏覽(28)
  • vscode | linux | c++ intelliense 被棄用解決方案

    vscode | linux | c++ intelliense 被棄用解決方案

    每日一句,vscode用的爽是爽,主要是可配置太強(qiáng)了。如果也很會(huì)研究,可以直接去咸魚接單了 廢話少說,直接整。 用著用著說是c++ intelliense被棄用,很多輔助功能無(wú)法使用,像查看定義、查看引用、函數(shù)跳轉(zhuǎn)、智能提示…… 歸根結(jié)底,還是太菜了,但真的很需要這些輔助啊

    2024年02月12日
    瀏覽(79)
  • VSCode C++ 調(diào)試方法

    VSCode 調(diào)試 C++ 主要就是 .vscode 中的 launch.json 和 tasks.json 的配置。 launch.json 可以通過?vscode 界面 ——》左側(cè)調(diào)試功能按鈕——》創(chuàng)建 launch.json ——》C++(GDB/LLDB)生成。 其中 launch.json 默認(rèn)配置如下,主要配置項(xiàng)說明: name:?jiǎn)?dòng)項(xiàng)的名字 program:指向最終生成的可執(zhí)行文件的

    2024年02月14日
    瀏覽(21)
  • C++ 開發(fā) + VSCode 調(diào)試

    C++ 開發(fā) + VSCode 調(diào)試

    官方下載 清華大學(xué)開源軟件鏡像站:MSYS2 軟件倉(cāng)庫(kù) MSYS2: 主要功能是提供一個(gè)在Windows操作系統(tǒng)上模擬類Unix環(huán)境的開發(fā)和構(gòu)建工具集。它提供了一個(gè)模擬POSIX系統(tǒng)的命令行接口和包管理器(Pacman)。 MSYS2基于Cygwin技術(shù),但它更專注于構(gòu)建原生Windows應(yīng)用程序。 它的目標(biāo)是創(chuàng)建

    2024年01月16日
    瀏覽(23)
  • 終端/Vscode + GDB調(diào)試C++程序

    CMakeLists中需要設(shè)置編譯類型為Debug 下載gdb調(diào)試器 在終端使用gdb調(diào)試程序 然后進(jìn)入(gdb)命令行 (gdb) set args … : 設(shè)置程序運(yùn)行輸入的參數(shù) (gdb) break file_path:row_number : 設(shè)置斷點(diǎn)位置 (gdb) run : 啟動(dòng)調(diào)試 (gdb) next : 下一步(不進(jìn)入函數(shù)) (gdb) step : 下一步(進(jìn)入函數(shù)) (gdb) continue : 繼

    2024年02月04日
    瀏覽(42)
  • VSCode配置C++環(huán)境——彈出黑窗運(yùn)行和斷點(diǎn)調(diào)試程序

    VSCode配置C++環(huán)境——彈出黑窗運(yùn)行和斷點(diǎn)調(diào)試程序

    前言 先決配置教程 安裝拓展 1. Code Runner ?2.?Tabnine AI Autocomplete 配置文件launch.json ?總結(jié) 筆者配置了很多次VSCode環(huán)境,但越配越爛導(dǎo)致很長(zhǎng)一段時(shí)間都沒有再打開過VSCode,但是VSCode確實(shí)輕量級(jí),在打比賽之類的場(chǎng)合很適合快速編寫代碼(前端另說),既然都是無(wú)用的軟件了不

    2024年02月05日
    瀏覽(30)
  • VSCode 遠(yuǎn)程調(diào)試C++程序打開/dev/tty設(shè)備失敗的問題記錄

    因?yàn)樾枰獏f(xié)助同事調(diào)試rtklib中的rtkrcv程序,一直調(diào)試程序都是用了vscode,這次也不例外,但是在調(diào)試過程中,發(fā)現(xiàn)程序在打開當(dāng)前終端(/dev/tty)的時(shí)候,總是打開失敗,返回的錯(cuò)誤原因是“No such device or address”,后面網(wǎng)上搜索了下,在VS code 的issue里面,發(fā)現(xiàn)相關(guān)問題,用來(lái)記

    2024年03月19日
    瀏覽(20)
  • ubuntu + VScode + C++ + openCV 運(yùn)行調(diào)試launch.json和task.json編寫

    ubuntu + VScode + C++ + openCV 運(yùn)行調(diào)試launch.json和task.json編寫

    近期在學(xué)習(xí)opencv的使用,在進(jìn)行多文件編寫時(shí)遇到了諸多問題,在查閱眾多博客之后,問題一個(gè)一個(gè)解決了,用這篇文章記錄下我的解決方法,希望可以為你提供一定的幫助。(新手拙見,歡迎批評(píng)指正)。 創(chuàng)建項(xiàng)目并編寫代碼。我的項(xiàng)目文件結(jié)構(gòu)如下 ?在創(chuàng)建項(xiàng)目之后,點(diǎn)

    2024年02月14日
    瀏覽(25)
  • VSCode配置之C++ & SQLite3極簡(jiǎn)配置方案

    VSCode配置之C++ & SQLite3極簡(jiǎn)配置方案

    背景 最近在學(xué)習(xí)《深入應(yīng)用C++11: 代碼優(yōu)化與工程級(jí)應(yīng)用》,其中第13章說到SQLite庫(kù),查詢網(wǎng)上諸多教程,發(fā)現(xiàn)比較容易出現(xiàn)bug且配置較為麻煩,故記錄此次簡(jiǎn)化版方案,以供參考。 軟件環(huán)境 SQLite 3.42.0 版本(僅下載Source code即可) VSCode+CMake+ SQLite Viewer VSCode + SQLite文件目錄

    2024年02月14日
    瀏覽(18)
  • Dev c++代碼配色,像vscode一樣

    Dev c++代碼配色,像vscode一樣

    目錄 設(shè)置入口:進(jìn)入工具編譯器選項(xiàng) 光標(biāo)所在行的背景 元素配色:代碼元素由上至下配色(對(duì)于不常顯示的元素就不設(shè)置了) 對(duì)要設(shè)置的元素:選自定義前景或背景規(guī)定自定義顏色輸入配色參數(shù) ?Space(先設(shè)置空白處,這也是全局背景,設(shè)置后,其他元素基本只需要設(shè)置前

    2024年02月07日
    瀏覽(48)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包