& quot; Точка останова в настоящее время не будет достигнута & quot; ошибка при отладке приложения в смешанном режиме (c # и неуправляемый c ++)

При отладке приложения в смешанном режиме в VS2010 точка останова, установленная в строке кода, содержащейся в неуправляемом исходном файле c ++ dll (вызываемом из управляемого класса оболочки c #), показывает печально известное «точка останова в настоящее время не будет достигнута. загружается для этого документа «информационное сообщение при наведении курсора мыши на точку останова в рассматриваемой строке. Сама точка останова — красный круг с желтым информационным треугольником вместо обычного сплошного красного шара. Конечно, точка останова не срабатывает при запуске отладчика. Большинство ответов, которые я нашел для этого предупреждения, указывают, что точка останова не была установлена ​​должным образом, или что ожидаемая dll не загружается, или что связанный файл pdb не находится в правильном расположении и т. Д. И т. Д. Это не эта проблема. Приложение действительно загружает и выполняет ссылочную DLL правильно. Я проверил, что правильный файл pdb, с той же датой файла, что и его dll, находится в рабочем каталоге исполняемого файла вместе с самой целевой dll. Отладчик просто не загружает символы для dll, и dll не отображается в списке модулей.

Ни одно из решений, которые я нашел в Интернете, не решило эту проблему. DLL не отображается в списке модулей, доступных в меню «Отладка-> Windows-> Модули» … хотя он фактически загружен. Точки останова, установленные в классе оболочки, работают правильно.

Удаление каталогов bin и obj, очистка и сборка решения также не помогают.

0

Решение

Решением этой проблемы было установить флаг «Включить отладку неуправляемого кода», расположенный на вкладке «Отладка» страницы свойств приложения.

7

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

Вы не нажимаете на код, и в вашем списке модулей не отображается dll, потому что он не загружается программой. Так что, что бы ни вызывала ваша обертка в C #, это не так — или, возможно, это не вызывается правильно.

-1

Немного неясно, в чем заключается ваша ошибка, но если вы получаете сообщение о том, что «точка останова в настоящий момент не будет достигнута», это означает именно то, что говорится — вы не достигли установленной вами точки останова. Попробуйте заглянуть в свою программу и посмотреть, где находятся точки останова (они должны быть красными точками на полях), а затем посмотреть, действительно ли вы добираетесь до них.

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