VSCode中安裝以下插件
- ms-python.python:python調試
- ms-python.vscode-pylance:代碼跳轉(非必要)
配置launch.json
在當前工作區,按此路徑.vscode\launch.json新建launch.json文件,并配置以下參數:
- type:python
- request:launch
- console:integratedTerminal
- justMyCode:設置為true,表示只調試自己的python腳本
- program:配置為當前文件即可,${file}
- “args”:配置python腳本所需要傳入的參數。
{// 使用 IntelliSense 了解相關屬性。 // 懸停以查看現有屬性的描述。// 欲了解更多信息,請訪問: https://go.microsoft.com/fwlink/?linkid=830387"version": "0.2.0","configurations": [{"name": "調試當前python腳本","type": "python","request": "launch","console": "integratedTerminal","justMyCode": true,"program": "${file}","args": ["-Y", "PCD","-Y", "LIBRARY","-Y", "FLASH","-Y", "DEPEX","-Y", "BUILD_FLAGS","-Y", "FIXED_ADDRESS","-Y", "HASH","-Y", "COMPILE_INFO","-y", "BuildReport.log","-j", "BuildConsole.log","-p", "OvmfPkg\\OvmfPkgIa32X64.dsc","-a", "IA32","-a", "X64","-b", "NOOPT","-D", "SECURE_BOOT_ENABLE=TRUE","-D", "NETWORK_IP6_ENABLE=TRUE","-D", "NETWORK_HTTP_BOOT_ENABLE=TRUE","-D", "SMM_REQUIRE=TRUE","-D", "DEBUG_ON_SERIAL_PORT","-D", "SOURCE_DEBUG_ENABLE=TRUE","-t", "VS2019"]}]
}
設置斷點
打開需要調試的 python腳本,在行號處,右鍵。選擇“添加斷點”即可
啟動調試
下面以調試EDK2的構建腳本build.py為例。
- 點擊左側工具欄的運行和調試按鈕,調出其控制面板
- 在控制面板右上角,選擇調試當前python腳本,隨后點擊“?”按鈕,啟動調試
首次啟動,會出現如下錯誤:未找到某些module。
發生異常: ModuleNotFoundError
No module named 'AutoGen'File "E:\JasonEDK2\BaseTools\Source\Python\build\build.py", line 34, in <module>from AutoGen.PlatformAutoGen import PlatformAutoGen
ModuleNotFoundError: No module named 'AutoGen'
這是由于未跑edksetup.bat初始化編譯環境導致的。
此時點擊右上角的調試按鈕 “?”中止此次調試,在下圖中的“終端”對話框中執行 ”edksetup.bat“,隨后再次啟動調試即可。