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“,随后再次启动调试即可。