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