Я разрабатывал провайдер учетных данных нашей компании для Windows 10 уже почти год.
Теперь я столкнулся с проблемой.Я обычно не задаю вопросы на форумах, блогах, потому что в большинстве случаев я нахожу решение, но на этот раз я уже месяц бьюсь над проблемой и нашел корень проблемы.
Краткое описание самой проблемы: поставщик учетных данных использует комбинированный список, который раньше работал без проблем.Теперь я переписал весь код для управления большим обновлением, но в систему попала странная ошибка.Ошибка возникает только в определенном сценарии.Я разрабатываю и тестирую код на своем персональном ноутбуке.
Сценарий:
1) Ноутбук подключен к моему монитору / источнику питания и т. Д.
2) Я заставляю его идти спать.
3) Я отключаю все кабели (включая питание).
4) Я просыпаюсь от сна.
Чем не работает выпадающий списокне показывает выбранный по умолчанию элемент, он пуст.Когда я его опускаю, он показывает все необходимые предметы.Чем кредитр проваливается и перезапускается, тогда все в порядке.
Я знаю, что в подобных «странных» сценариях в большинстве случаев утечка памяти или что-то связанное вызывает проблему.Когда я проверяю просмотрщик событий, он показывает мне c0000005, что является нарушением прав доступа.Я начал отлаживать, где нарушение.После этого я обнаружил, что программа ссылается на массив списка элементов списка (на самом деле вектор в моем случае) с очень и очень высоким показателем (причиной может быть нарушение диапазона).Фактический индекс, очевидно, хранится в переменной selectedComboItemIndex (DWORD).
Мне было любопытно, когда он изменился на это странное число, чем я обнаружил неожиданное поведение.Метод SetComboBoxSelectedValue случайным образом вызывается один раз (когда происходит ошибка) с невероятно высоким значением индекса.Я даже не вызываю этот метод в своем коде, поэтому понятия не имею, почему он вызывается.Вызов происходит, даже когда я не выпадаю из выпадающего списка.
Я даю ему шанс, что это может быть ошибкой в самом кредпрове.Как вы думаете?Вы видели эту проблему раньше?
Заранее спасибо!