Несовместимость файлов символов
Возможно, ваш файл символов (.pdb) не синхронизирован с вашим исходным кодом. Распространенным симптомом этого является:
- Остановка в точке останова на строке кода
- пошаговое выполнение кода
- Видение остановки указателя отладки на пустой строке кода
При отладке вы никогда не должны видеть остановку указателя отладки в пустой строке, и это будет указывать на то, что у вас где-то есть несоответствие символа / источника.
Такое несоответствие может также привести к пропуску точек останова, как вы видите, но очистка решения обычно исправляет его (и, похоже, вы уже пробовали это).
Конфигурация сборки
Другой вариант (как предлагали другие) заключается в том, что вы не создаете Debug конфигурацию. Хотя можно отлаживать сборку Release, код значительно оптимизирован, что может сделать отладчик странным, например
- При выполнении условия (то есть блока if) может появиться впечатление, что выполняются как if, так и else
- Некоторые биты кода полностью оптимизированы, и вы не можете их взломать
Что вы пытаетесь сломать?
Еще одна важная вещь, которую стоит отметить, - это то, что точки останова не могут быть установлены на каждой строке кода. Например, если ваш код имеет только инициализацию переменной:
long numObjects;
точка останова, как правило, не будет установлена должным образом (хотя обычно она перемещается на следующую строку «реального» кода). Однако, если ваша строка кода инициализирует переменную:
long numObjects = 5;
точка останова может быть установлена .