Отладка C # на Intel C ++ в разных проектах - PullRequest
1 голос
/ 12 мая 2009

Аналогично этой проблеме здесь:

Старый вопрос об отладке C #

Я пытаюсь отладить библиотеку, которая используется в нескольких проектах и ​​скомпилирована с использованием компилятора Intel C ++ v 11 (т.е. не стандартного компилятора) в Visual Studio 2008. Текущая платформа, которую я использую для отладки, - это C # Программа, которая вызывает метод C ++ через ap / invoke.

Есть ли способ отладки в коде C ++ (который был скомпилирован в режиме отладки), если не выполнять что-то вроде запуска какого-то огромного цикла в коде C ++ и присоединения отладчика к процессу? Прямо сейчас код C # просто перешагивает вызов C ++.

Я настроил его так, чтобы я мог отлаживать управляемый и неуправляемый / нативный код, а также отлаживать «не мой код», но эти настройки, похоже, не имеют значения.

Я действительно очень хочу избежать добавления проекта C ++ в проект C #; как я уже сказал, это библиотека, которая вызывается несколькими программами, поэтому это может иметь серьезные последствия для этих других программ и обслуживания.

Ответы [ 2 ]

0 голосов
/ 10 сентября 2011

Ответ: Задайте исполняемый и отладочный каталог отладки для DLL, а затем попытайтесь отладить из DLL как отдельный проект. То есть загрузите проект intel в один файл sln, а затем поместите проект C # в другой файл sln.

Затем, когда вы попытаетесь отладить dll с помощью f5 / кнопки отладки, исполняемый файл запустится, и код будет выполняться, вплоть до установленных вами точек останова.

Убедитесь, что у вас есть шаг после сборки, чтобы поместить dll в тот же каталог, что и ваш исполняемый файл C #; в противном случае DLL будет не синхронизирован с кодом, который фактически выполняется, и результаты будут странными (т. е. точки останова не выстраиваются и т. д.).

Кроме того, при таком подходе вы потеряете возможность редактирования и продолжения (или, если есть способ сохранить его, я об этом не знаю), но по крайней мере вы добьетесь отладки.

(ответ опубликован для @Dmitri Nesteruk)

0 голосов
/ 12 июня 2009

Я помню, что в первые годы разработки WPF (сам проект, в то время я работал в MSFT), нам приходилось использовать два отладчика, WindDbg для собственного кода и автономный отладчик .Net (не помню что называется) и установить точки останова в обоих. Не уверен, что VS поддерживает это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...