我有一个基于 PowerShell 脚本的简单构建过程,我将 /src 中的一些 Python 源文件复制到 /build 文件夹,以及存储在其他外部子文件夹中的一些数据文件和资产。我想针对此构建文件夹(完整路径:/build/demo/quad/quad.py)运行 VS Code 调试器,但针对 /src 中的文件(在 /src/python/quad.txt 中找到的等效文件)标记我的断点。 py)。
我尝试了各种尝试让 VS code 识别这一点,ChatGPT 已将其指示为类似于 JavaScript 源映射(我不是 Web 开发人员),但到目前为止还没有任何乐趣。这可能吗?
我的 VS Code 工作区文件的相关片段:
"launch": {
"version": "0.2.0",
"configurations": [
{
"name": "QUAD Debugger",
"type": "debugpy",
"request": "launch",
"program": "${workspaceFolder}/build/demo/quad/quad.py",
"console": "integratedTerminal",
"cwd": "${workspaceFolder}/build/demo/quad",
"justMyCode": false,
"presentation": {
"reveal": "always",
"panel": "shared",
"close": true
},
"env": {
"PYTHONPATH": ${workspaceFolder}/src/python${pathSeparator}${env:PYTHONPATH}"}
},
不幸的是,Python 没有与 JavaScript 的源映射直接等效的东西。
如果您想将断点保留在
/src
目录中,
一种解决方法是直接调试 /src
目录中的代码,
并使用文件观察器自动将更改从 /src
复制到 /build
。
这样,您就可以设置断点并单步执行/src
目录中的代码,
每当您保存文件时,更新的代码都会复制到/build
。
以下是如何在 VS Code 中设置文件观察器的示例:
"files.watcherExclude": {
"**/.git/objects/**": true,
"**/.git/subtree-cache/**": true,
"**/node_modules/*/**": true,
"**/build/**": false
},
"files.autoSave": "afterDelay",
"files.autoSaveDelay": 1000
此配置将在您停止输入后 1 秒(1000 毫秒)自动保存您的文件, 并且文件观察器不会忽略
/build
目录,因此更改将自动复制到该目录。