Я установил файл launch.json VSCode, как показано ниже, который работает для C++ коды .exe и правильно загружает python38.pdb. Однако он останавливается только на точках останова C++ и ни на одном скрипте Python.
Детали программы:
Я написал программу на C++, выполняющую скрипт Python. с C-api, предоставляемым Python.
Действие отладки:
Что я делал при отладке, это привязывался к работающему исполняемому файлу C++.
Открывает скрипт py в пользовательском интерфейсе .Exe. и запускает его.
VSCode останавливается только на точках останова C++, как показано на изображениях.
Вопрос: Как заставить vscode отлаживать сценарий Python вместе с C++ коды?
Мой файл launch.json
Код: Выделить всё
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "(Windows) 附加",
"type": "cppvsdbg",
"request": "attach",
"processId": "${command:pickProcess}",
"logging": {
"moduleLoad": true,
"trace": true,
"engineLogging": true
},
"symbolSearchPath": "E:/VS_ProJectS/msdiBIMPlatform-0.2/5Framwork/PythonProxy/;E:/VS_ProJectS/msdiBIMPlatform-0.2/1Foundation/ThirdParty/bin/;E:/VS_ProJectS/msdiBIMPlatform-0.2/x64/Release/;", // Point to the location of the Python symbol
"sourceFileMap": {
"E:/VS_ProJectS/msdiBIMPlatform-0.2/x64/Release/QtMainWindow.exe": "E:/VS_ProJectS/msdiBIMPlatform-0.2/5Framwork/PythonProxy/CreateTripod.py"
}
},
{
"name": "(Windows) 启动",
"type": "cppvsdbg",
"request": "launch",
"program": "E:/VS_ProJectS/msdiBIMPlatform-0.2/x64/Release/QtMainWindow.exe",
"args": [],
"stopAtEntry": false,
"cwd": "E:/VS_ProJectS/msdiPythonTest_Release/5Framwork/PythonProxy",
"environment": [
{
"name": "PYTHONHOME",
"value": "E:/VS_ProJectS/msdiBIMPlatform-0.2/1Foundation/ThirdParty/bin/" // Set this to the location of your desired python installation
},
{
"name": "PYTHONPATH",
"value": "E:/VS_ProJectS/msdiBIMPlatform-0.2/5Framwork/PythonProxy/;E:/VS_ProJectS/msdiBIMPlatform-0.2/1Foundation/ThirdParty/bin/Lib/;E:/VS_ProJectS/msdiBIMPlatform-0.2/x64/Release/;E:/VS_ProJectS/msdiBIMPlatform-0.2/1Foundation/ThirdParty/bin/Lib/site-packages/;" // Set this to the location of additional Python libraries, if necessary
}
],
"console": "externalTerminal"
},
{
"name": "(Python) Debug Python Script in C++",
"type": "debugpy",
"request": "launch",
"program": "E:/VS_ProJectS/msdiBIMPlatform-0.2/5Framwork/PythonProxy/CreateTripod.py",
"console": "integratedTerminal",
"stopOnEntry": true,
"env": {
"PYTHONHOME": "E:/VS_ProJectS/msdiBIMPlatform-0.2/1Foundation/ThirdParty/bin/",
"PYTHONPATH": "E:/VS_ProJectS/msdiBIMPlatform-0.2/5Framwork/PythonProxy/;E:/VS_ProJectS/msdiBIMPlatform-0.2/1Foundation/ThirdParty/bin/Lib/;E:/VS_ProJectS/msdiBIMPlatform-0.2/x64/Release/;E:/VS_ProJectS/msdiBIMPlatform-0.2/1Foundation/ThirdParty/bin/Lib/site-packages/;"
}
}
]
Вот изображение, когда точки останова c-python-api C++ достигаются при запуске сценария py.

Вот изображение неактивных точек останова, установленных в скрипте Python.

Дальнейшие попытки:
изменил файл launch.json на это
Код: Выделить всё
{
"version": "0.2.0",
"configurations": [
{
"name": "Python: Attach to C++ (Python process)",
"type": "debugpy",
"request": "attach",
"processId": "${command:pickProcess}",
"subProcess": false,
"justMyCode": false
},
{
"name": "Python: Current File",
"type": "debugpy",
"request": "launch",
"program": "${file}",
"console": "integratedTerminal"
},
{
"name": "(Windows) Attach C++",
"type": "cppvsdbg",
"request": "attach",
"processId": "${command:pickProcess}"
}
]
}
Подробнее здесь: https://stackoverflow.com/questions/792 ... -in-vscode
Мобильная версия