2014-08-23 3 views
1

Я пытаюсь отладить переменную в моем коде. Я использую точку останова, но когда моя мышь перебирает любую из переменных, присутствующих в «locals», это локальное окно внезапно закрывается без какого-либо предупреждения. Также многие строки пустые. Это ошибка?Breakpoint внезапно закрывает окно «locals»

enter image description here

+0

Ваше расположение окон должно быть довольно беспорядочным, трудно объяснить причинами этой неудачи. Возможно, пришло время использовать команду «Скрыть окно Windows +». –

+0

Может ли код, поддерживающий одно из указанных свойств, вызывать 'Application.Exit'? Может ли оценка одного из свойств иметь переполнение стека? Может ли быть заблокировано одно из свойств из-за инструкции 'lock'? Могла ли оценка одного из свойств пытаться и не перекачивать сообщения? Поскольку отображение объектов в окне просмотра вызывает 'ToString()' во всех их отраженных свойствах, действительно, любой код может быть вызван. – dbc

ответ

1

Ваше окно часы содержит сообщение об ошибке «Функция оценки была прервана.» Это, вероятно, означает, что один из свойств, отображаемых имеет бесконечную рекурсию, например так:

readonly bool isSigned; 
    public bool IsSigned { get { return IsSigned; } } 

Фикс бесконечную рекурсию и проблема должна уйти:

readonly bool isSigned; 
    public bool IsSigned { get { return isSigned; } } 

Вы можете поймать StackOverflowException когда оно брошено с помощью Visual Studio, выбрав в строке меню "Debug" -> "Исключения" -> "Найти ..." -> тип "StackOverflow" -> установите флажок "Брошенный" для System.StackOverflowException -> "OK"

enter image description here

Если «Исключения» не отображаются в меню «Отладка» вашей версии Visual Studio, следуйте инструкциям для To add the Exceptions command to the Debug menu для вашей версии VS.

обновление Только что проверено, похоже, что Visual Studio не сломается на StackOverflowException, если он заброшен в окне часов. Если вы не можете найти ошибку при проверке кода, то, что вам нужно сделать, чтобы найти бесконечную рекурсию, должно быть удалить все в окне часов, а затем добавить строку или строки в свой фактический код для доступа к свойствам, которые могут быть вызывая рекурсию, checkaoprimeiroradiobuttonG в вашем случае, например

var tmp1 = checkaoprimeiroradiobuttonG; 
var tmp2 = desactivabetaoadicionalG; 

В этом случае рекурсия должна быть поймана.

+0

У меня нет окна ожиданий http://puu.sh/b4tBW/d3141427e8.png – ng80092a

+0

@ ng80092a - Инструкции для этого в VS2010 приведены здесь: http://msdn.microsoft.com/en-us/library /d14azbfh%28v=vs.100%29.aspx – dbc

+0

@ ng80092a - Следуйте инструкциям в разделе «Добавить команду« Исключения »в меню« Отладка »» на странице http://msdn.microsoft.com/en-us/library/ d14azbfh% 2 =% против 100 29.aspx # addexceptionscommand – dbc

Смежные вопросы