Visual Studio 2012 отладка в смешанном режиме

У меня есть DLL, созданная из смешанного кода в VS 2012. Эта DLL загружается из .exe, встроенного в родной C ++.

Когда я отлаживаю dll (через F5 из VS 2012), точки останова не попадают. Сообщение:

No executable code is associated with this line. Possible causes include: preprocessor directives or compiler/linker option

Однако, когда я запускаю exe из проводника Windows, а затем выполняю «присоединение к процессу», все точки останова сбиваются.

Я попытался изменить тип отладчика на «Mixed», «Native», «Managed», я также играл с опциями отладки, но результаты были одинаковыми; за исключением случаев, когда тип отладчика «управляемый», точки останова кажутся загруженными (вместо пустого красного круга появляется красный кружок), но они не попадают.

Не могли бы вы дать мне объяснение этого странного явления?

0

Решение

При запуске раздела отладки с ложным путем отладки (это можно установить в свойствах проекта) может случиться так, что pdb не будет загружен, потому что рабочий каталог не находится в исполняемом файле с pdb. Таким образом, никакой информации о местоположении источника нет, и отладчик может ответить: с этой строкой не связан исполняемый код.
При непосредственном запуске приложения рабочий каталог обычно является местом, где находится приложение, попадание загруженной точки останова get в pdb get.
При отладке приложения проверьте, загружен ли соответствующий pdb get, просто чтобы быть уверенным, что все в порядке.

1

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


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