最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

VSCode中通過launch.json文件打斷點(diǎn)DeBug調(diào)試代碼詳細(xì)圖文教程

 更新時間:2024年08月17日 09:30:44   作者:視覺研坊  
在VSCode中l(wèi)aunch.json是用于配置調(diào)試器的文件,它定義了調(diào)試會話的各種設(shè)置,下面這篇文章主要給大家介紹了關(guān)于VSCode中通過launch.json文件打斷點(diǎn)DeBug調(diào)試代碼的詳細(xì)圖文教程,需要的朋友可以參考下

先吐槽

IDE編譯工具調(diào)試代碼是非常重要的,之前使用Pycharm很方便,直接在Configuration中配置參數(shù)就行,見下。使用VSCode進(jìn)行有命令代碼調(diào)試時相對麻煩一些,看其它教程沒撤清楚,這里做個總結(jié),學(xué)者耐心學(xué)習(xí)。

一、調(diào)試代碼

1.1 調(diào)試代碼好處

通過調(diào)試代碼(尤其是在集成開發(fā)環(huán)境(IDE)如 VSCode 中調(diào)試)有很多好處,可以極大提高開發(fā)效率和代碼質(zhì)量。

即時反饋:你可以立即看到代碼執(zhí)行的結(jié)果,并且可以在代碼運(yùn)行時檢查變量的值和狀態(tài)。這有助于快速識別和修復(fù)錯誤。

逐步執(zhí)行代碼:可以逐行執(zhí)行代碼,查看每一步的執(zhí)行情況。這對于理解復(fù)雜邏輯或調(diào)試復(fù)雜的錯誤特別有幫助。

設(shè)置斷點(diǎn):你可以在代碼的特定位置設(shè)置斷點(diǎn),程序運(yùn)行到這些位置時會暫停。這樣你可以檢查變量和程序狀態(tài),而不必逐步執(zhí)行整個程序。

檢查變量和表達(dá)式:在斷點(diǎn)處或在代碼執(zhí)行過程中,可以檢查和評估變量的值和表達(dá)式。這幫助你理解程序的當(dāng)前狀態(tài)和數(shù)據(jù)流。

調(diào)用堆棧:可以查看當(dāng)前調(diào)用堆棧,了解函數(shù)調(diào)用的順序和上下文。這樣你可以更容易地找到函數(shù)調(diào)用中的問題。

條件斷點(diǎn):可以設(shè)置條件斷點(diǎn),即只有在滿足特定條件時程序才會暫停。這對于調(diào)試特定輸入或特定情況下的問題非常有用。

異常處理:可以在程序拋出異常時自動暫停,這樣你可以在問題發(fā)生的第一時間檢查程序狀態(tài)和變量值,從而快速找到問題根源。

提高代碼理解和維護(hù):調(diào)試代碼有助于更好地理解代碼的邏輯和行為,這對于以后維護(hù)和擴(kuò)展代碼非常重要。

省時省力:通過調(diào)試工具,可以大大減少試圖通過打印語句來追蹤問題的時間和精力。調(diào)試工具提供了更直觀和更強(qiáng)大的方法來診斷和修復(fù)問題。

1.2 示例場景

比如,在調(diào)試一個復(fù)雜的深度學(xué)習(xí)訓(xùn)練腳本時:

斷點(diǎn):你可以在數(shù)據(jù)加載、模型前向傳播、損失計算等關(guān)鍵步驟設(shè)置斷點(diǎn)。

檢查數(shù)據(jù):在斷點(diǎn)處檢查輸入數(shù)據(jù)的形狀和內(nèi)容,確保數(shù)據(jù)正確加載和預(yù)處理。

調(diào)試損失計算:逐步執(zhí)行損失計算部分,檢查每一步的中間結(jié)果,確保損失值計算正確。

驗(yàn)證模型輸出:在訓(xùn)練的不同階段暫停,檢查模型的輸出,確保模型按照預(yù)期進(jìn)行訓(xùn)練。

二、生成launch.json文件

launch.json 文件配置了一個調(diào)試會話,用于調(diào)試 train.py 腳本,傳遞了多個命令行參數(shù),并設(shè)置了必要的環(huán)境變量。通過這種配置,你可以在 VSCode 中啟動并調(diào)試你的訓(xùn)練腳本,并方便地設(shè)置斷點(diǎn)、檢查變量等。

2.1 打開項目文件夾

在 VSCode 中打開包含你的項目文件的文件夾。

2.2 創(chuàng)建launch.json文件

點(diǎn)擊左側(cè)活動欄中的“運(yùn)行和調(diào)試”圖標(biāo)(或者按 Ctrl+Shift+D)。

點(diǎn)擊“創(chuàng)建 launch.json 文件”鏈接。如果已經(jīng)存在 launch.json 文件,則直接編輯它。

選擇“Python”作為環(huán)境。

添加一個新配置,類似如下:

2.3 launch.json文件

創(chuàng)建后的launch.json如下:

三、配置launch.json文件

3.1 添加參數(shù)

舉個例子,我自己要執(zhí)行的腳本為tool/train.py,終端中完整的執(zhí)行命令為:

python tools/train.py --config configs/mobileseg/mobileseg_mobilenetv3_cityscapes_1024x512_80k_deit_12090.yml --save_interval 500 --use_ema --do_eval --use_vdl --save_dir output/Train_Result/INF_MobileNetV3_Only_12090

將上面的執(zhí)行命令添加到launch.json文件中,見下:

3.2 參數(shù)解析

針對上面launch.json文件內(nèi)容,具體參數(shù)解析見下:

1. version:
	○ 這是配置文件的版本號。VSCode 使用這個字段來確定配置文件的格式。
2. configurations:
	○ 一個數(shù)組,包含不同的調(diào)試配置。在這個例子中,只定義了一個配置。
3. name:
	○ 配置的名稱。在 VSCode 中,你可以在調(diào)試配置下拉菜單中看到并選擇這個名稱。這里是 "Python: train"。
4. type:
	○ 調(diào)試器的類型。對于 Python 調(diào)試,填寫 "python"。
5. request:
	○ 調(diào)試請求的類型??梢允?"launch"(啟動調(diào)試會話)或 "attach"(附加到正在運(yùn)行的進(jìn)程)。這里是 "launch",表示啟動一個新的調(diào)試會話。
6. program:
	○ 要運(yùn)行的 Python 腳本的路徑。在這個例子中,是 ${workspaceFolder}/tools/train.py,其中 ${workspaceFolder} 是 VSCode 工作區(qū)的根目錄。
7. args:
	○ 傳遞給 Python 腳本的命令行參數(shù)。這里傳遞了幾個參數(shù):
		 --config:指定配置文件路徑。
		 --save_interval:保存間隔。
		 --use_ema:使用 EMA。
		 --do_eval:執(zhí)行評估。
		 --use_vdl:使用 VDL。
		 --save_dir:指定保存目錄。
8. console:
	○ 指定調(diào)試控制臺的類型??梢允?"integratedTerminal"(集成終端)、"externalTerminal"(外部終端)等。這里是 "integratedTerminal",表示在 VSCode 集成終端中運(yùn)行腳本。
9. env:
	○ 指定環(huán)境變量。這里設(shè)置了 PYTHONPATH 環(huán)境變量,值為 ${workspaceFolder}:${workspaceFolder}/tools,確保 Python 可以找到相關(guān)的模塊和包。

上面舉例中的args參數(shù)是我自己的參數(shù),學(xué)者參考替換為自己的執(zhí)行命令參數(shù)。

四、斷點(diǎn)調(diào)試測試

在待執(zhí)行的腳本中先打好斷點(diǎn):

選中待執(zhí)行腳本,在運(yùn)行選項中啟動調(diào)試:

下面是啟動調(diào)試后跳到斷點(diǎn)位置,各個變量參數(shù)信息都在左側(cè)欄,見下:

后續(xù)點(diǎn)擊單步調(diào)試或其它按鈕就可以正常調(diào)試代碼了。

五、總結(jié)

以上就是VSCode中通過launch.json文件打斷點(diǎn)DeBug調(diào)試代碼的詳細(xì)過程,學(xué)者參考博文中例子結(jié)合自己的情況生成launch.json文件后調(diào)試。

到此這篇關(guān)于VSCode中通過launch.json文件打斷點(diǎn)DeBug調(diào)試代碼詳細(xì)圖文教程的文章就介紹到這了,更多相關(guān)VSCode launch.json文件打斷點(diǎn)調(diào)試內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Git如何清除本地緩存

    Git如何清除本地緩存

    這篇文章主要介紹了Git如何清除本地緩存問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • Git撤回已Push的代碼的方法大全

    Git撤回已Push的代碼的方法大全

    在日常的開發(fā)中,我們經(jīng)常使用Git來進(jìn)行版本控制,有時候,我們可能會不小心將錯誤的代碼 Push 到遠(yuǎn)程倉庫,或者想要在本地回退到之前的某個版本重新開發(fā),所以本文給大家介紹了Git 如何撤回已 Push 的代碼,需要的朋友可以參考下
    2025-12-12
  • VsCode配置ssh免密遠(yuǎn)程連接服務(wù)器的實(shí)現(xiàn)步驟

    VsCode配置ssh免密遠(yuǎn)程連接服務(wù)器的實(shí)現(xiàn)步驟

    現(xiàn)在,可以在VSCode中直接通過SSH連接到服務(wù)器,而無需每次輸入密碼,本文主要介紹了VsCode配置ssh免密遠(yuǎn)程連接服務(wù)器的實(shí)現(xiàn)步驟,文中通過示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-08-08
  • VScode敲代碼時自動導(dǎo)入包的解決方案

    VScode敲代碼時自動導(dǎo)入包的解決方案

    這篇文章主要介紹了VScode敲代碼時自動導(dǎo)入包的解決方案,文中通過圖文介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用vscode具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-09-09
  • OpenClaw學(xué)習(xí)筆記:研究官網(wǎng)文檔后整理的架構(gòu)詳解

    OpenClaw學(xué)習(xí)筆記:研究官網(wǎng)文檔后整理的架構(gòu)詳解

    近期openclaw如火如荼,作為當(dāng)下AI領(lǐng)域的C位,有必要對其進(jìn)行了解,前期雖已部署試水,但對其原理不甚了解,查看官網(wǎng)文檔又發(fā)現(xiàn)大量內(nèi)容看不懂,感覺是官網(wǎng)的知識組織方式不夠友好,這里結(jié)合官網(wǎng)文檔和AI問答,整理出其架構(gòu),以便快速理解
    2026-03-03
  • Jenkins?腳本命令行應(yīng)用小結(jié)

    Jenkins?腳本命令行應(yīng)用小結(jié)

    這篇文章主要介紹了Jenkins?腳本命令行應(yīng)用總結(jié),包括批量刪除Jenkins 項目構(gòu)建記錄,非多分支項目及分支項目,文章結(jié)合示例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2022-04-04
  • git如何回退已提交的代碼中的指定文件

    git如何回退已提交的代碼中的指定文件

    在Git中,有多種方法可以回退某個提交中特定文件的內(nèi)容,常見的方法包括使用`git checkout`、`git revert`、`git reset`和`git rebase`,這些方法各有優(yōu)缺點(diǎn),可以根據(jù)具體情況選擇合適的方法,在執(zhí)行這些命令之前,建議先備份工作或使用`git stash`保存未提交的工作
    2025-12-12
  • Jenkins定時構(gòu)建語法規(guī)則及時間設(shè)置

    Jenkins定時構(gòu)建語法規(guī)則及時間設(shè)置

    這篇文章主要為大家介紹了Jenkins定時構(gòu)建時間設(shè)置,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-06-06
  • Git可視化教程之Git Gui的使用

    Git可視化教程之Git Gui的使用

    這篇文章主要介紹了Git可視化教程之Git Gui的使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • 訪客站點(diǎn)停留時間和頁面停留時間的實(shí)現(xiàn)方案

    訪客站點(diǎn)停留時間和頁面停留時間的實(shí)現(xiàn)方案

    這篇文章主要介紹了訪客站點(diǎn)停留時間和頁面停留時間的實(shí)現(xiàn)方案,需要的朋友可以參考下
    2015-01-01

最新評論

怀宁县| 巴塘县| 绍兴市| 阿瓦提县| 福泉市| 治多县| 南昌县| 分宜县| 九寨沟县| 盐亭县| 五华县| 眉山市| 旬邑县| 西吉县| 河北区| 德江县| 宁海县| 格尔木市| 蒙山县| 府谷县| 盐源县| 元朗区| 河北省| 浦城县| 金阳县| 志丹县| 高州市| 城固县| 筠连县| 保亭| 辽阳县| 沙雅县| 屏边| 山西省| 吕梁市| 泗阳县| 金乡县| 贺兰县| 东丽区| 罗城| 雷波县|