Как отладить DLL в Visual Studio, которую я вызываю из Python, используя ctypes? - PullRequest
0 голосов
/ 14 мая 2019

Я кодирую C ++ DLL в Visual Studio, которую я вызываю из Python, используя ctypes.Вызов функций и возврат результатов работает просто отлично.Тем не менее, я не понял, как отлаживать код C ++, когда он вызывается из Python.Я сделал очевидную вещь, то есть начал отлаживать код Python (в настоящее время использующий PyScripter, но он пока не установлен), а затем подключил отладчик VS к процессу Python.Я также проверил идентификатор процесса в TaskManager, чтобы убедиться, что я подключен к правильному процессу.Кажется, это работает, то есть VS не жалуется, точки останова в коде C ++ остаются полными красными точками (это означает, что точки останова могут быть достигнуты), а команда «Detach ...» в меню «Отладка» активна.Однако, когда Python в конце концов вызывает одну из функций C ++, точка останова - это , а не хит.Функция возвращает правильный результат, но выполнение не останавливается в точке останова.Кто-нибудь имеет опыт в этом и может мне помочь?Спасибо!

1 Ответ

0 голосов
/ 15 мая 2019

На странице документации для отладки в смешанном режиме подробно изложено это, но краткая версия:

Когда у вас есть проект

Открыть свойства проекта,перейдите на вкладку «Отладка» и выберите Включить отладку собственного кода .Теперь, когда вы нажмете F5, вы окажетесь в режиме, который позволяет вам отлаживать код Python и C / C ++ естественным образом.

Когда вы присоединяетесь к запущенному процессу

Перед подключением нажмите Выберите кнопку, чтобы выбрать отладочные движки.Вы можете выбрать оба Native и Python вместе (по умолчанию он выберет только Python, если обнаружит Python в процессе).

Screen shot of the Select Code Type dialog from Microsoft's documentation

...