DebugBreak не ломается - PullRequest
       30

DebugBreak не ломается

16 голосов
/ 25 июня 2009

Я пишу класс на C ++, который я не могу отладить с помощью F5. Код будет запускаться из другого «сервиса», который будет его вызывать. В прошлом я использовал __debugbreak(), и когда у меня появилось окно, сообщающее, что выбрано исключение, выбранное для его отладки.

Недавно я обновился до Windows 7, и некоторое время он продолжал работать.

Сегодня, когда я попытался отладить часть моего кода вместо показанного обычного диалогового окна, которое сообщает мне, что VSTestHost перестал работать и позволяет мне отлаживать приложение, я получил другой диалог, предлагающий отправить данные в Microsoft для анализа.

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

Ответы [ 4 ]

23 голосов
/ 25 июня 2009

Наконец я нашел причину проблемы. Это причина Vista / Win7:

  1. Открыть Центр управления Action
  2. Перейти к настройкам Action Center
  3. Перейти к настройкам отчетов о проблемах
  4. Выберите «Каждый раз, когда возникает проблема, спрашивайте меня перед проверкой решения»

Хотя это больше ИТ-решение / вопрос, я мучился с этой проблемой весь день и хотел поделиться этим решением с другими разработчиками, которые сталкиваются с этой проблемой.

8 голосов
/ 08 июля 2018

Я наконец нашел решение для Windows 10 здесь: https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/enabling-postmortem-debugging

А также: https://docs.microsoft.com/en-us/windows/desktop/Debug/configuring-automatic-debugging

Чтобы включить автоматический запуск отладчика, необходимо добавить значение реестра:

  • ключ HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug, значение Auto = 1 (типа REG_DWORD)

Настроенный отладчик задается значением Debugger (тип REG_SZ); установка Visual Studio устанавливает это:

"C:\WINDOWS\system32\vsjitdebugger.exe" -p %ld -e %ld

Обратите внимание, что в 64-битной ОС это работает только для 64-битных исполняемых файлов. Чтобы включить такое же поведение в 32-битных исполняемых файлах, задайте те же значения в этом ключе:

  • HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows NT\CurrentVersion\AeDebug
1 голос
/ 25 июня 2009

В этом случае ...

http://community.codesmithtools.com/blogs/blake/archive/2009/06/03/tips-amp-tricks-debugging-codesmith-on-microsoft-windows-7.aspx

Вот краткий обзор того, что вам нужно сделать, чтобы включить отладку на компьютере под управлением Microsoft Windows 7:

Обновите параметр отладчика Just-In-Time DbgJITDebugLaunchSetting. Параметр находится в реестре по адресу [HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft.NETFramework].
Установите значение DbgJITDebugLaunchSetting равным 2. Если вы используете 64-битную операционную систему, вы также должны установить тот же ключ (DbgJITDebugLaunchSetting) в этой папке [HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ Microsoft.NETFramework] в 2. Если у вас возникнут какие-либо проблемы, попробуйте запустить CodeSmith Studio и Visual Studio от имени администратора. Теперь, когда CodeSmith входит в точку останова, вы увидите что-то вроде этого:

0 голосов
/ 25 июня 2009

Вы можете попробовать отладку> присоединить к процессу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...