Отладка управляемого кода .NET, вызываемого из неуправляемого C ++ - PullRequest
3 голосов
/ 19 августа 2011

Я ознакомился с решениями, доступными в SO, но пока ничего не решило мою проблему. Мой стартовый проект - неуправляемый проект C ++ (назовем его TestWrapper). Цель состоит в том, чтобы TestWrapper вызывал управляемый проект C ++, который затем вызывает мой проект C #. Это работает нормально, и у меня нет проблем с его запуском.

Однако в моем коде на C # произошло исключение. По какой-то причине точки останова не попадают, и фактический разрыв отладки происходит внутри ntdll.dll. Я попытался щелкнуть правой кнопкой мыши по проекту C # и включить неуправляемую отладку, но это не решает проблему. Если бы кто-то мог указать мне на решение, я был бы чрезвычайно благодарен.

Я иду вперед и включу макет проекта:

TestWrapper (unmanaged C++) -> ManagedWrapper (managed C++) -> MyCSharpProject (C#)

У меня такое чувство, что оно заключается в конфигурации отладки, но я недостаточно осведомлен, чтобы даже знать, с чего начать.

Ответы [ 2 ]

7 голосов
/ 19 августа 2011

Отладчик должен определить при запуске, отлаживает ли он собственный, управляемый или собственный + управляемый код.Следовательно, вы должны изменить настройки отладчика в стартовом проекте, а не библиотеки DLL, в которых возникают проблемы.Попробуйте выполнить следующие действия:

  • Щелкните правой кнопкой мыши проект и выберите «Свойства»
  • Перейдите в Свойства конфигурации -> Отладка
  • Переключите тип отладчика на Mixed

Это немного вводит в заблуждение, что настройки отладчика даже включены в проекты DLL в Visual Studio.Это не имеет никакого влияния на систему.

1 голос
/ 19 августа 2011

Одной из идей может быть отладка приложения из среды C #. Если вы используете экспресс, вы можете установить автозагрузку приложения, добавив пару строк в ваш файл csproj

<StartAction>Program</StartAction>
<StartProgram>..path to your app..</StartProgram>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...