Я пытаюсь отладить переменную в моем коде. Я использую точку останова, но когда моя мышь перебирает любую из переменных, присутствующих в "locals", это локальное окно внезапно закрывается без какого-либо предупреждения. Также многие строки пустые. Это ошибка?
В окне просмотра содержится сообщение об ошибке "Оценка функции была прервана". Вероятно, это означает, что одно из отображаемых свойств имеет бесконечную рекурсию, например:
readonly bool isSigned;
public bool IsSigned { get { return IsSigned; } }
Исправьте бесконечную рекурсию, и проблема должна исчезнуть:
readonly bool isSigned;
public bool IsSigned { get { return isSigned; } }
Вы можете поймать StackOverflowException
когда оно выбрано с помощью Visual Studio, выбрав в строке меню "Отладка" → "Исключения" → "Найти..." → введите "stackoverflow" → отметьте "Брошено" для System.StackOverflowException
→ "ОК"
Если "Исключения" не отображаются в меню "Отладка" вашей версии Visual Studio, следуйте инструкциям для добавления команды "Исключения" в меню "Отладка" для вашей версии VS.
update Просто проверено, похоже, что Visual Studio не будет разбиваться на StackOverflowException
если оно появится в окне просмотра. Если вы не можете найти ошибку при проверке кода, что вам нужно сделать, чтобы найти бесконечную рекурсию, нужно удалить все в окне просмотра, а затем добавить строку или строки в ваш фактический код, чтобы получить доступ к свойствам, которые могут вызвать рекурсия, checkaoprimeiroradiobuttonG
в вашем случае, например
var tmp1 = checkaoprimeiroradiobuttonG;
var tmp2 = desactivabetaoadicionalG;
В этом случае рекурсия должна быть поймана.
Application.Exit
? Может ли при оценке одного из свойств переполнение стека? Может ли оценка одного из свойств быть заблокирована из-за оператораlock
? Может ли оценка одного из свойств пытаться и не доставлять сообщения? Поскольку отображение объектов в окне наблюдения вызываетToString()
по всем их отраженным свойствам, на самом деле любой код может быть вызван.