python — отладка из PyCharm в код Visual Studio C ++

В настоящее время я пытаюсь отладить проблемы в Кафе для Windows PyCaffe.

Из-за ошибка в инструментах Python для Visual Studio, PTVS не работает, поэтому я использую PyCharm и пытаюсь подключиться к процессу PyCaffe через Visual Studio 2013. То есть я запускаю отладчик PyCharm на скрипте Python с точкой останова, установленной в точке, где я вызываю точку входа Python в PyCaffe.

Я отлаживаю скрипт Python в PyCharm, который вызывает модули, написанные на C ++, в VS. Я хочу отладить эти модули в C ++. Поэтому я пытаюсь подключиться к процессам PyCharm или Python с точками останова, установленными в VS.

Проблема в том, что точка останова не срабатывает в точке входа в PyCaffe в коде Visual Studio C ++.

Кто-нибудь успешно добился такого рода работы или есть альтернативный способ сделать это?

0

Решение

Я столкнулся с подобной проблемой несколько лет назад, пытаясь
отладка желаемого драйвера пользовательского режима загружалась автоматически из RPC, решение, которое я нашел, было:

  1. Загрузите инструмент отладки для Windows (в зависимости от вашей системы x86 или x64), если хотите, бесплатно, с сайта Microsoft Download.
  2. Добавьте «__asm ​​int 3» (это инструкция asm для аппаратной точки останова) в том месте кода C, где вы хотите, чтобы точка останова вступила в силу.
  3. Скомпилируйте программу C, обычно с отладочной информацией (эта часть важна, потому что помогает отладчику найти исходный файл), это не должно создавать никаких проблем.
  4. Присоедините отладчик к запущенному процессу (в моем случае это был процесс проводника), в вашем случае это должен быть процесс, который выполняет первый вызов библиотеки, например, если PyCharm создает процесс для нового кода Python, отладчик должен быть привязанный к этому процессу (вы можете управлять этим, установив точку останова в python, желание даст вам время для выполнения процесса присоединения), для меня самым простым способом было выяснить это — позволить сбою процесса, потому что «__asm ​​int 3» вызвать сбой процесса, если отладчик не подключен, вы можете воспользоваться этим ожиданием сбоя, и когда в Windows отобразится экран «Процесс … обнаружена проблема, которую необходимо закрыть», вы знаете, кто является процессом что вы ищете.

Это может быть больно в первый раз, но для меня довольно эффективно, потому что вы
можно увидеть поток данных из одной программы в другую,

1

Другие решения

Мы присоединяемся к одному процессу и разрешаем устанавливать точки останова в коде, который не запускается из отладчика VS. Но одна важная проблема заключается в том, что мы часто отлаживаем / запускаем приложение в VS, например, мы отлаживаем веб-код, который выполняется под IIS, мы подключаемся к процессу IIS или другим.

Ваш проект отличается от приведенного выше примера, вы запускаете / отлаживаете свое приложение в Pycharm (не VS), но вы хотите использовать VS Attach для обработки функции, поэтому оно будет иметь ограничение. Как вы сказали, что вы отлаживаете скрипт в PyCharm и хотите вызвать C ++, вы должны проверить, поддерживает ли PyCharm аналогичную функцию, такую ​​как инструмент присоединения в VS.

0

По вопросам рекламы [email protected]