отладка в сборке c ++ / cli vs2010 отладчик показывает, что все собственные поля имеют <неопределенное значение> - PullRequest
3 голосов
/ 12 августа 2011

Кто-нибудь видел это / знает, как получить значения в локальном / автоматическом окне отладчика?

Проект представляет собой проект c ++ в решении c ++.Динамическая библиотека является сборкой WY / CLR.Из-за природы dll я могу только отладить его, подключив к стороннему нативному процессу, который его загружает.

Одна интересная вещь заключается в том, что до включения clr в эти типы dll при подключении, вВ окне вывода я получил бы список всех dll, загруженных в процесс, это были бы c ++ sdk dll среды выполнения, сторонние нативные dll-процедуры и мои dll.Теперь я получаю только dll, связанные с clr в этом окне + мое.Все родные библиотеки времени выполнения больше не отображаются в этом окне.Это почти как отладчик не загружает их для справки.

Ответы [ 2 ]

8 голосов
/ 16 августа 2011

Нашел разрешение.При создании сборок смешанного режима способом, описанным в вопросе, не имеет значения, какой отладчик используется в vs2010.Ide автоматически выберет правильный.Более того, если вы подключаетесь, вы можете одновременно использовать оба .net + native в списке со списком в разделе «attach to:» диалогового окна «Присоединить к процессу».

Что вам абсолютно необходимо убедиться, так это связать эти 3 параметра: / MAP / MAPINFO: EXPORTS / ASSEMBLYDEBUG, расположенный в разделе Linker / Debugging в свойствах проекта.

0 голосов
/ 21 октября 2014

За Сообщение на форуме MSDN.

Отключить настройку:

Свойства -> Свойства конфигурации -> C / C ++ -> Оптимизация -> Оптимизация:Отключено (/ Od)

Включить настройку:

Свойства -> Свойства конфигурации -> Компоновщик-> Отладка-> Создать файл карты: Да (/ MAP)

...