Как отлаживать хост-код в смешанной программе на C ++?

0

Мои рабочие платформы - VS2010 и Nsight 3.1.

С Nsight точки останова могут быть установлены в ядре cuda, и отладчик работает хорошо. Если точки останова заданы в главном коде, Nsight просто игнорирует их.

Я не знаю, можно ли установить точки останова в главном коде и использовать отладчик, предоставленный VS2010. Я попытался, но программа останавливается, когда она встречает первую функцию cudaMalloc. Может кто-нибудь, пожалуйста, скажите мне, как отлаживать код хоста в смешанной программе cuda и c++?

Большое спасибо.

Теги:
debugging
cuda
nsight

1 ответ

2
Лучший ответ

Боюсь, вы не могли отлаживать как CUDA, так и c++ программу на VS. Вот обходной путь. Надеюсь, это может помочь вам

  1. Запустите командную строку Windows. Установите NSIGHT_CUDA_DEBUGGER = 1
  2. В этой командной строке выполните свое приложение CUDA (здесь я предполагаю, что это долгосрочное исполнение).
  3. Откройте VS. Меню "Инструменты" → "Присоединить к процессу". Выберите транспорт в качестве отладчика процессора Nsight и присоедините к своему приложению. Затем вы можете отлаживать код CUDA
  4. Откройте другой VS. Выберите транспорт по умолчанию. Прикрепите к приложению, тогда вы можете отладить c++ код
  5. Обратите внимание, что если приложение приостановлено VS, оно не может быть отлажено другим VS. Вы должны возобновить текущий, а затем переключиться на другой.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню