Как отлаживать скрипт Python, вызываемый исполняемым файлом C++ в VSCode?Python

Программы на Python
Ответить
Anonymous
 Как отлаживать скрипт Python, вызываемый исполняемым файлом C++ в VSCode?

Сообщение Anonymous »

У меня есть исполняемый файл C++, который вызывает скрипт Python. Я хочу отладить скрипт Python в VSCode, как если бы исполняемый файл C++ (.exe) запускал тот же скрипт Python.
Я установил файл 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}"
}
]
}
Хотя я могу отлаживать скрипт Python с помощью запуска «Python: Current File», это отдельный скрипт Python, использующий отладчик Python debugpy. Этот процесс отладки Python не интегрирован в процесс отладки C++, и оба они просто выполняются независимо друг от друга.

Подробнее здесь: https://stackoverflow.com/questions/792 ... -in-vscode
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»