DebugBreak () приводит к зависанию Win7 x64 на одной конкретной машине? Возможна проблема с настройкой? - PullRequest
2 голосов
/ 15 марта 2011

Мы используем DebugBreak () и / или asm int 3 как метод, чтобы остановить нашу инфраструктуру модульного тестирования, когда происходит утверждение.Платформа модульного тестирования работает как приложение в пользовательском режиме.

Мы запускаем win 7 x64, корпоративную версию и, как правило, используем vs2008, но также и Windbg.Обычно, когда вызывается DebugBreak, появляется диалоговое окно «Проверка решений / закрытия / отладки».

На компьютере одного пользователя (Dell T5500, 8 ядер, 12 ГБ) вызов DebugBreak вызывает остановку всей машины.Виджет часов перестает тикать, мышь перестает двигаться, клавиатура перестает реагировать.Диалоговое окно не открывается, хотя мы проверили, настроено ли оно.Нам нужно принудительно завершить работу машины, чтобы сделать что-нибудь еще.

Кто-нибудь знает о каком-либо типе отладки ветра или другой опции отладки JIT, которая может вызвать это?Этот пользователь догадался, что его машина может работать так, как будто она настроена для удаленной отладки, но это не точка останова ядра.Мы часто используем удаленную отладку, но обычно зависает машина, а не отладчик.

1 Ответ

2 голосов
/ 16 марта 2011

Итак, после пересмотра и повторного расследования выясняется, что разработчик давно включил отладчик в своей системе разработки, поэтому DebugBreak фактически остановил ядро.Со своего компьютера:

C:\>bcdedit

Windows Boot Manager<br> --------------------
идентификатор {bootmgr}
раздел устройства = \ Device \ HarddiskVolume1
описание диспетчера загрузки Windows
языковой стандартru-US
наследовать {globalsettings}
по умолчанию {текущий}
время ожидания 30

resumeobject {fdc7f9bc-32c9-11df-8189-b982443308cd}
displayorder {current}
toolsdisplayorder {memdiag}
Windows Boot Loader<br> -------------------
идентификатор {текущий}
раздел устройства = C:
путь \ Windows \ system32 \ winload.exe
описание Windows 7
языковой стандарт en-US
наследовать {bootloadersettings}
последовательность восстановления {fdc7f9c0-32c9-11df-8189-b982443308cd}
recoveryenabled Да
раздел osdevice = C:
systemroot \ Windows
resumeobject {fdc7f9bc-3211df-8189-b982443308cd}
nx OptIn
debug Да

Отключение заставило все работать правильно.Спасибо за ваше время.

...