just in time debugging что это такое

Отключение JIT-отладки

Диалоговое окно JIT-отладки может открываться при возникновении ошибок в используемом приложении, препятствуя его работе.

JIT-отладчик позволяет быстро запустить Visual Studio для устранения ошибки. Для просмотра подробных сведений об ошибке или попытки отладки нужно установить среду Visual Studio или другой отладчик.

Если вы уже являетесь пользователем Visual Studio и после возникновения ошибки намерены выполнить отладку с помощью JIT-отладчика, перейдите к этой статье. Если вам не удается исправить ошибку или вы хотите запретить открытие JIT-отладчика, вы можете отключить JIT-отладку из Visual Studio.

Если набор средств Visual Studio был ранее установлен, но теперь его нет, придется нужно будет JIT-отладку через реестр Windows.

Если набор средств Visual Studio не установлен, для отключения JIT-отладки можно отключить отладку скриптов или отладку на стороне сервера.

Если вы пытаетесь запустить веб-приложение, отключите отладку скриптов.

Если вы размещаете веб-приложение ASP.NET в IIS, отключите отладку на стороне сервера, выполнив следующие действия:

Возможно, отключение JIT-отладки позволит приложению преодолеть ошибку и работать нормально.

Если необработанная ошибка в приложении сохранится, может отобразиться сообщение об ошибке либо приложение может перестать отвечать или аварийно завершить работу. В этом случае нормальная работа приложения будет невозможна без исправления ошибки. Попробуйте связаться с теми, кто отвечает за это приложение, и попросить исправить ошибку.

Источник

Как остановить сообщения «Just In Time Debugging», блокирующие buildserver

наш buildserver (TeamCity, очень рекомендуется) запускает целую кучу тестов на нашей готовой программе c++.

один раз в целом тест вызывает сбой нашей программы, часто вызывая диалог VisualStudio, предлагающий мне justintime отладить сбой. Диалог останавливает продвижение buildserver. Вместо сборки, отмеченной как failed, она просто зависает. Я отключил функцию отладки Just In Time в VisualStudio, но когда она отключена, вы все равно получаете сообщение «не удалось Justintime отладить это, вы можете включить его в настройках».

кто-нибудь знает способ гарантировать, что любое необработанное исключение в программе не приведет к модальному диалогу?

5 ответов

после установки Visual Studio на сервере поведение по умолчанию при необработанном исключение происходит, чтобы показать диалоговое окно исключения, которое требует вмешательства пользователя либо начните отладку точно в срок, либо проигнорируйте исключение. Это может быть нежелательно для Работа без присмотра. Формировать сервер, чтобы больше не показывать диалог, когда возникает необработанное исключение (поведение по умолчанию перед установкой Visual Studio), используйте редактор реестра для удаления следующих разделов реестра:

в 64-разрядной операционной системе также удалите следующие разделы реестра:

удалить (или переименовать) c:\windows\system32\vsjitdebugger.исполняемый.

Я попытался удалить ключи реестра, и я попытался снять все флажки в параметрах Visual Studio, но ни один из них не работал.

чтобы быть ясным, моя ситуация не была C++. Я использовал Micro Focus COBOL для Visual Studio 2010, и с помощью предложений реестра и параметров VS мне удалось избавиться от «хотите отлаживать?»диалог, но это привело к другому диалогу, чтобы задержать мой автоматический процесс:

Visual Studio Just-In-Time Debugger

необработанное исключение (‘COBOL runtime: обнаружена ошибка’) произошло в CASDBC.exe [3564]. Отладка Just-In-Time это исключение завершилось со следующей ошибкой: не установлен отладчик только в режиме отладки. В Visual Studio, Просто-В-Время отладка может быть включена из Tools/Options/Debugging / Just-In-Time.

Проверьте индекс документации для » Just-in-time отладки, ошибки для подробная информация.

в моем случае, на сервере win2012, я попробовал:

и он все-таки подошел!

Я перезагрузился и т. д. Делал мой веб-сайт в IIS stall, пока диалог не был подтвержден!

окончательное решение, которое действительно работало: в панели управления, в программах: удален «Microsoft Visual Studion 2010 Shell (Isolated)» удалил это, и проблема разрешенный.

(работает ли среда SQL Management Studio. Я не знаю!)

в окне для вопроса

вы хотите отлаживать с помощью выбранного отладчика?

клик да (откроется в новом окне) > опции (Меню верхнего ряда)> DEBUG

затем в новом окне удалить ТИК который показывает ВКЛЮЧИТЬ КАК РАЗ ВОВРЕМЯ ОТЛАДЧИК. После отключения как раз вовремя отладчик закройте окно или нажмите OK Ваш проблема будет решена. Я пробовал это и избавился от КАК РАЗ ВОВРЕМЯ ВСПЛЫВАЮТ сообщения.

Источник

Страница «JIT-отладка», папка «Отладка», диалоговое окно «Параметры»

Чтобы получить доступ к странице JIT, перейдите к меню Сервис и щелкните пункт Параметры. В диалоговом окне Параметры разверните узел Отладка и выберите JIT. Эта страница позволяет включить JIT-отладку для управляемого кода, машинного кода и скриптов. Дополнительные сведения см. в разделе JIT-отладка.

JIT-отладку можно разрешить для программ следующих типов:

JIT-отладка — это технология отладки программы, запускаемой вне Visual Studio. Программу, созданную в Visual Studio, можно выполнять вне среды Visual Studio. Если включена JIT-отладка, сбой программы вызовет появление диалогового окна с вопросом о том, необходимо ли выполнить отладку.

Читайте также:  регион дзержинска нижегородской области какой

Связанные предупреждения

При посещении этой страницы из диалогового окна Параметры можно увидеть предупреждающее сообщение, например следующего содержания:

В качестве JIT-отладчика был зарегистрирован другой отладчик. Для восстановления включите JIT-отладку или запустите средство восстановления Visual Studio.

Это сообщение возникает, если в качестве JIT-отладчика установлен другой отладчик, возможно, отладчик Visual Studio более старой версии.

Также возможно отображение следующего сообщения:

Обнаружены ошибки регистрации JIT-отладки. Для восстановления включите JIT-отладку или запустите средство восстановления Visual Studio.

Если отобразилось любое из этих предупреждений, для JIT-отладки с Visual Studio 2012 необходимы права администратора до тех пор, пока проблема не будет устранена. Если попытаться разрешить проблему, не имея прав администратора, возникает следующее сообщение об ошибке:

Отказано в доступе. Администратор должен включить JIT-отладку или восстановить установку Visual Studio.

Источник

Отладка с помощью JIT-отладчика в Visual Studio

JIT-отладка автоматически запускает Visual Studio при возникновении ошибок или сбоев в приложении, запущенном вне Visual Studio. С помощью JIT-отладки можно тестировать приложения за пределами Visual Studio и открыть Visual Studio, чтобы начать отладку в случае проблемы.

JIT-отладка работает для классических приложений Windows. Она не работает для универсальных приложений Windows или управляемого кода, размещенного в приложении машинного кода, например для визуализаторов.

Если вы просто хотите запретить отображение диалогового окна JIT-отладчика, но у вас не установлена Visual Studio, см. раздел Отключение JIT-отладчика. Если набор средств Visual Studio был ранее установлен, но теперь его нет, придется отключить JIT-отладку через реестр Windows.

Включение или отключение JIT-отладки в Visual Studio

Чтобы включить или отключить JIT-отладку, необходимо запустить Visual Studio от имени администратора. Включение или отключение JIT-отладки устанавливает раздел реестра. Для его изменения требуются права администратора. Откройте Visual Studio с правами администратора, щелкнув приложение Visual Studio правой кнопкой мыши и выбрав Запуск от имени администратора.

JIT-отладку можно настроить в диалоговом окне Visual Studio Сервис > Параметры (или Отладка > Параметры).

Включение или отключение JIT–отладки

В меню Сервис или Отладка выберите Параметры > Отладка > JIT.

В поле Включить JIT-отладку для этих типов кода выберите типы кода, которым требуется JIT-отладка: Управляемый, Собственный и (или) Скрипт.

Нажмите кнопку ОК.

Если вы включили JIT-отладчик, но он не открывается при сбоях или ошибках приложения, см. раздел Устранение неполадок с JIT-отладкой.

Отключение JIT-отладки из реестра Windows

JIT-отладка может оставаться включенной даже после удаления Visual Studio с компьютера. Если Visual Studio больше не установлена, JIT-отладку можно отключить, отредактировав реестр Windows.

Отключение JIT-отладки путем редактирования реестра

В меню Windows Пуск запустите редактор реестра (regedit.exe).

В окне Редактор реестра найдите и удалите следующие записи реестра.

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\DbgManagedDebugger

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug\Debugger

Если на компьютере установлена 64-разрядная операционная система, также удалите следующие записи реестра.

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\DbgManagedDebugger

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\AeDebug\Debugger

Будьте внимательны, чтобы не удалить или не изменить другие разделы реестра.

Закройте окно Редактор реестра.

Включение JIT-отладки для приложений Windows Forms

По умолчанию в приложениях Windows Forms есть обработчик исключений верхнего уровня, который позволяет приложению продолжить работу, если оно может быть восстановлено. Если приложение Windows Forms выдает необработанное исключение, отображается следующее диалоговое окно:

Чтобы включить JIT-отладку вместо стандартной обработки ошибок Windows Forms, добавьте следующие параметры.

Для получения дополнительной информации см. DebuggableAttribute.

Использование JIT-отладки

В этом примере рассматривается JIT-отладка, когда приложение выдает ошибку.

Для выполнения инструкций необходимо установить Visual Studio. Если у вас нет Visual Studio, вы можете скачать бесплатный выпуск Visual Studio Community.

Убедитесь, что JIT-отладка включена в разделе Сервис > Параметры > Отладка > JIT.

В этом примере вы создадите консольное приложение C# в Visual Studio, которое создает исключение NullReferenceException.

В Visual Studio создайте консольное приложение C# (Файл > Создать > Проект > Visual C# > Консольное приложение) с именем ThrowsNullException. Сведения о создании проектов в Visual Studio см. в разделе Пошаговое руководство. Создание простого приложения.

Когда проект откроется в Visual Studio, откройте файл Program.cs. Замените метод Main() следующим кодом, который выводит строку на консоль, а затем создает исключение NullReferenceException:

Чтобы выполнить сборку решения, выберите конфигурацию Отладка (по умолчанию) или Выпуск, а затем нажмите Сборка > Перестроить решение.

Дополнительные сведения о конфигурациях сборки см. в разделе Общие сведения о конфигурациях сборки.

Откройте созданное приложение ThrowsNullException.exe в папке проекта C# ( . \ThrowsNullException\ThrowsNullException\bin\Debug или . \ThrowsNullException\ThrowsNullException\bin\Release).

Вы увидите следующее окно команд:

Откроется диалоговое окно Выбор JIT-отладчика.

Нажмите кнопку ОК.

Проект ThrowsNullException открывается в новом экземпляре Visual Studio, а выполнение остановлено в строке, вызвавшей исключение:

Теперь можно начать отладку. При отладке реального приложения необходимо выяснить, почему код создает исключение.

Если приложение содержит ненадежный код, появляется диалоговое окно предупреждения системы безопасности, позволяющее решить, следует ли продолжить отладку. Перед продолжением отладки решите, доверяете ли вы данному коду. Этот код написан вами самостоятельно? Если приложение выполняется на удаленном компьютере, узнаете ли вы имя процесса? Если приложение выполняется локально, учитывайте возможность выполнения такого вредоносного кода на вашем компьютере. Если вы решили, что код заслуживает доверия, нажмите ОК. В противном случае нажмите кнопку Отмена.

Читайте также:  при какой температуре носить дутики

Устранение неполадок с JIT-отладкой

Если JIT-отладка не запускается при сбое приложения, даже если она включена в Visual Studio:

Отчеты об ошибках Windows могут взять на себя обработку ошибок на компьютере.

Чтобы устранить эту проблему, используйте редактор реестра, чтобы добавить значение DWORD Отключено с параметром Данные значения, равным 1, для следующих разделов реестра:

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\Windows Error Reporting

(Для 64-разрядных компьютеров): HKEY_LOCAL_MACHINE\Software\WOW6432Node\Microsoft\Windows\Windows Error Reporting

Известная проблема Windows может привести к сбою JIT-отладчика.

Исправление состоит в том, чтобы добавить значение DWORD из раздела Видимые с параметром Значение данных, равным 1, в следующие разделы реестра.

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug

(Для 64-разрядных компьютеров): HKEY_LOCAL_MACHINE\Software\WOW6432Node\Microsoft\Windows NT\CurrentVersion\AeDebug

Во время JIT-отладки могут отображаться следующие сообщения об ошибках.

Не удалось подключиться к аварийному процессу. Указанная программа не является программой Windows или MS–DOS.

Отладчик попытался подключиться к процессу, выполняющемуся под именем другого пользователя.

Чтобы обойти эту проблему, запустите Visual Studio, откройте диалоговое окно Отладка > Присоединение к процессу (или нажмите сочетание клавиш CTRL + ALT + P) и найдите процесс, для которого требуется выполнить отладку, в списке Доступные процессы. Если имя процесса неизвестно, найдите идентификатор процесса в диалоговом окне JIT-отладчик Visual Studio. Выберите процесс в списке Доступные процессы и щелкните Присоединить. Выберите Нет, чтобы закрыть диалоговое окно JIT-отладчика.

Не удалось запустить отладчик, так как пользователь не вошел в систему.

В консоли нет пользователей, выполнивших вход, а также отсутствует сеанс пользователя, в котором следовало бы отображать диалоговое окно JIT-отладки.

Для решения этой проблемы необходимо войти в компьютер.

Класс не зарегистрирован.

Отладчик пытался создать класс COM, который не зарегистрирован, вероятно, из-за проблем с установкой.

Чтобы решить эту проблему, используйте Visual Studio Installer для переустановки или исправления установки Visual Studio.

Источник

Debug using the Just-In-Time Debugger in Visual Studio

Just-In-Time debugging can launch Visual Studio automatically when an app running outside Visual Studio errors or crashes. With Just-In-Time debugging, you can test apps outside of Visual Studio, and open Visual Studio to begin debugging when a problem occurs.

Just-In-Time debugging works for Windows desktop apps. It does not work for Universal Windows Apps, or for managed code that is hosted in a native application, such as Visualizers.

If you just want to stop the Just-In-Time Debugger dialog box from appearing, but don’t have Visual Studio installed, see Disable the Just-In-Time Debugger. If you once had Visual Studio installed, you may need to disable Just-In-Time debugging from the Windows registry.

Enable or disable Just-In-Time debugging in Visual Studio

To enable or disable Just-In-Time debugging, you must be running Visual Studio as an administrator. Enabling or disabling Just-In-Time debugging sets a registry key, and administrator privileges may be required to change that key. To open Visual Studio as an administrator, right-click the Visual Studio app and choose Run as administrator.

You can configure Just-In-Time debugging from the Visual Studio Tools > Options (or Debug > Options) dialog box.

To enable or disable Just-In-Time debugging:

On the Tools or Debug menu, select Options > Debugging > Just-In-Time.

In the Enable Just-In-Time debugging for these types of code box, select the types of code you want Just-In-Time debugging to debug: Managed, Native, and/or Script.

Select OK.

If you enable the Just-In-Time debugger, but it doesn’t open when an app crashes or errors, see Troubleshoot Just-In-Time debugging.

Disable Just-In-Time debugging from the Windows registry

Just-In-Time debugging may still be enabled even if Visual Studio is no longer installed on your computer. If Visual Studio is no longer installed, you can disable Just-In-Time debugging by editing the Windows registry.

To disable Just-In-Time debugging by editing the registry:

From the Windows Start menu, run the Registry Editor (regedit.exe).

In the Registry Editor window, locate and delete the following registry entries:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\DbgManagedDebugger

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug\Debugger

If your computer is running a 64-bit operating system, also delete the following registry entries:

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\DbgManagedDebugger

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\AeDebug\Debugger

Make sure not to delete or change any other registry keys.

Close the Registry Editor window.

Enable Just-In-Time debugging of a Windows Form

By default, Windows Form apps have a top-level exception handler that lets the app keep running if it can recover. If a Windows Forms app throws an unhandled exception, it shows the following dialog:

Читайте также:  что делает зеленая карточка в футболе

To enable Just-In-Time debugging instead of standard Windows Form error handling, add these settings:

In a C++ Windows Form application, also set DebuggableAttribute to true in a .config file or in your code. If you compile with /Zi and without /Og, the compiler sets this attribute for you. If you want to debug a non-optimized release build, however, you must set DebuggableAttribute by adding the following line in your app’s AssemblyInfo.cpp file:

Use Just-In-Time debugging

This example walks you through Just-In-Time debugging when an app throws an error.

You must have Visual Studio installed to follow these steps. If you don’t have Visual Studio, you can download the free Visual Studio Community Edition.

Make sure Just-In-Time debugging is enabled in Tools > Options > Debugging > Just-In-Time.

For this example, you’ll make a C# console app in Visual Studio that throws a NullReferenceException.

In Visual Studio, create a C# console app (File > New > Project > Visual C# > Console Application) named ThrowsNullException. For more information about creating projects in Visual Studio, see Walkthrough: Create a simple application.

When the project opens in Visual Studio, open the Program.cs file. Replace the Main() method with the following code, which prints a line to the console and then throws a NullReferenceException:

To build the solution, choose either the Debug (default) or Release configuration, and then select Build > Rebuild Solution.

For more information about build configurations, see Understanding build configurations.

Open the built app ThrowsNullException.exe in your C# project folder (. \ThrowsNullException\ThrowsNullException\bin\Debug or . \ThrowsNullException\ThrowsNullException\bin\Release).

You should see the following command window:

The Choose Just-In-Time Debugger dialog opens.

Select OK.

The ThrowsNullException project opens in a new instance of Visual Studio, with execution stopped at the line that threw the exception:

You can start debugging at this point. If you were debugging a real app, you would need to find out why the code is throwing the exception.

If your app contains untrusted code, a security warning dialog box appears, enabling you to decide whether to proceed with debugging. Before you continue debugging, decide whether you trust the code. Did you write the code yourself? If the application is running on a remote machine, do you recognize the name of the process? If the app is running locally, consider the possibility of malicious code running on your computer. If you decide the code is trustworthy, select OK. Otherwise, select Cancel.

Troubleshoot Just-In-Time debugging

If Just-In-Time debugging doesn’t start when an app crashes, even though it is enabled in Visual Studio:

Windows Error Reporting could be taking over the error handling on your computer.

To fix this issue, use Registry Editor to add a DWORD Value of Disabled, with Value data of 1, to the following registry keys:

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\Windows Error Reporting

(For 64-bit machines): HKEY_LOCAL_MACHINE\Software\WOW6432Node\Microsoft\Windows\Windows Error Reporting

A known Windows issue may be causing the Just-In-Time debugger to fail.

The fix is to add a DWORD Value of Auto, with Value data of 1, to the following registry keys:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug

(For 64-bit machines): HKEY_LOCAL_MACHINE\Software\WOW6432Node\Microsoft\Windows NT\CurrentVersion\AeDebug

You might see the following error messages during Just-In-Time debugging:

Unable to attach to the crashing process. The specified program is not a Windows or MS-DOS program.

The debugger tried to attach to a process running under another user.

To work around this problem, in Visual Studio, open Debug > Attach to Process (or press Ctrl + Alt + P), and find the process you want to debug in the Available Processes list. If you do not know the name of the process, find the Process ID in the Visual Studio Just-In-Time Debugger dialog. Select the process in the Available Processes list, and select Attach. Select No to dismiss the Just-In-Time debugger dialog.

Debugger could not be started because no user is logged on.

There is no user logged onto the console, so there is no user session to display the Just-In-Time debugging dialog.

To fix this problem, log onto the machine.

Class not registered.

The debugger tried to create a COM class that is not registered, probably due to an installation problem.

To fix this problem, use the Visual Studio Installer to reinstall or repair your Visual Studio installation.

Источник

Сказочный портал