Visual Studio - точки останова отладчика перемещаются и больше не попадают в те строки, которые должны - PullRequest
10 голосов
/ 06 января 2011

В настоящее время я вижу странность в функциях в одной из моих программ в визуальной студии актерского мастерства.VS позволяет мне устанавливать точки останова в определенных точках файла, но затем в режиме отладки он перемещает эти точки останова в пробелы и комментарии.

Вещи, которые я уже пробовал:

  1. Удалил файл PDB и перестроил.
  2. Удалил файл EXE и перестроил.
  3. Перестроил весь проект.(Очистить, перестроить)
  4. Проверено, что оптимизация выключена.
  5. Проверено, совпадает ли путь отладки с выходным путем сборки.
  6. "Требовать, чтобы исходные файлы точно совпадалифлаг оригинальной версии "проверен.

В случае, если с моим кодом просто что-то странное, вызывающее это, вот функция, в которой это происходит:

bool BManager::Record(string _strFile)
{
   bool bSuccess = false;
   CBitmap * bitmap = new CBitmap();
   HBITMAP  handle = NULL;
   HPALETTE hPalette = NULL;
   //LoadBitmapFromBMPFile( (LPTSTR)_strFile.c_str(), &handle, &hPalette);
   ofstream out;
   out.open(_strFile.c_str());

   handle = (HBITMAP)LoadImage(NULL, (LPTSTR)_strFile.c_str(), IMAGE_BITMAP, 0, 0, LR_CREATEDIBSECTION | LR_DEFAULTSIZE | LR_LOADFROMFILE);

   bitmap->FromHandle(handle);
   bSuccess = ImageBitmap_Record(bitmap);
   delete bitmap;
   bitmap = NULL;
   CloseHandle(handle);
   return bSuccess;
}

Есть мысли?

Ответы [ 5 ]

4 голосов
/ 22 января 2013

Я обнаружил, что конец строки может вызвать такую ​​проблему. После того, как я случайно изменил некоторые строки из каретки в стиле Windows на карету в стиле Linux, точка отладки больше не попадает в линию. Чтобы решить эту проблему, я использовал notepad ++ для исправления EOL

4 голосов
/ 06 января 2011

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

3 голосов
/ 06 января 2011

Когда я вижу подобные вещи, первое, что я всегда делаю, это открываю окно Debug-> Modules и проверяю, что отлаживаемый бинарный файл был загружен из того места, которое, я думаю, должно быть.

0 голосов
/ 25 октября 2011

У меня была та же проблема, и я обошел ее, создав новое «решение» в VS и импортировав в него существующие файлы .h и .cpp.

Проблемы с отладкой исчезли.

Я уверен, что проблема была где-то в настройках конфигурации.

0 голосов
/ 06 января 2011

Вот несколько идей:

  1. Ваш исходный файл был изменен с момента последнего запуска отладчика.
  2. Ваш код был оптимизирован и, возможно, некоторые строки были удалены компилятором черезОптимизация.
  3. VS не любит фактическую строку, которой назначена точка останова.Ему всегда нравится последняя строка оператора, распределенная по нескольким строкам.
  4. Исходный файл, который вы отображаете, отличается от исходного файла, который был скомпилирован (они могут быть из двух разных папок).
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...