{"id":910,"date":"2015-05-17T19:36:42","date_gmt":"2015-05-17T17:36:42","guid":{"rendered":"https:\/\/www.vioreliftode.com\/?p=910"},"modified":"2016-04-14T13:24:20","modified_gmt":"2016-04-14T11:24:20","slug":"annoyed-by-visual-studio-just-in-time-debugger","status":"publish","type":"post","link":"https:\/\/www.vioreliftode.com\/index.php\/annoyed-by-visual-studio-just-in-time-debugger\/","title":{"rendered":"Annoyed by Visual Studio Just-In-Time Debugger"},"content":{"rendered":"<input class=\"fooboxshare_post_id\" type=\"hidden\" value=\"910\"\/><p>The purpose of Just-In-Time is to allow you to debug an application who recently crashed while Visual Studio IDE was not launched and configured to debug that particular application.<\/p>\n<p>&nbsp;<\/p>\n<p>Much shorter, Just-In-Time is a cool functionality for the developers, but as sysadmin you usually don&#8217;t expect and need to deal with Visual Studio Just-In-Time Debugger popup window on production servers. However there are situations when for example a simple SQL Server Management Studio installation on the production server will enable it.<\/p>\n<p>&nbsp;<\/p>\n<p><em>As you can see in the bellow screenshot, I recently encountered it when I manually installed the \u200bMay 2015 CU for Project Server 2013. I didn&#8217;t got the DisableJITDebuger.reg with me at that moment and started browse some articles to find out how. Now I post it here and will be more handy next time (as long as I have internet connectivity \ud83d\ude42 ).<\/em><br \/>\n<a href=\"https:\/\/www.vioreliftode.com\/wp-content\/uploads\/2015\/05\/Annoyed_By_Visual_Studio_Just_In_Time_Debugger_01.png\"><img loading=\"lazy\" class=\"alignleft size-full wp-image-912\" src=\"https:\/\/www.vioreliftode.com\/wp-content\/uploads\/2015\/05\/Annoyed_By_Visual_Studio_Just_In_Time_Debugger_01.png\" alt=\"Annoyed_By_Visual_Studio_Just_In_Time_Debugger_01\" width=\"755\" height=\"504\" srcset=\"https:\/\/www.vioreliftode.com\/wp-content\/uploads\/2015\/05\/Annoyed_By_Visual_Studio_Just_In_Time_Debugger_01.png 755w, https:\/\/www.vioreliftode.com\/wp-content\/uploads\/2015\/05\/Annoyed_By_Visual_Studio_Just_In_Time_Debugger_01-300x200.png 300w\" sizes=\"(max-width: 755px) 100vw, 755px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>The bad part with Visual Studio Just-In-Time Debugger is that in some scenarios it can increase your server maintenance time. For example you are manually installing a patch who can\u00a0get stuck to a phase where \u2026 let&#8217;s say it requires to communicate with a particular .NET application. If that .NET application crashed and the Visual Studio Just-In-Time Debugger triggered, than your patch installation will probably wait that .NET application to &#8220;do something&#8221;, but that .NET application is waiting to be debugged. \u000bIt depends a lot on how well the patch installer is behaving in such situations (either silently continue, or is waiting &#8211; case in which no progress will be done until the sysadmin clicks the &#8220;No&#8221; button of the Visual Studio Just-In-Time Debugger window).<br \/>\nI personally got the situation where I started in parallel the same patch installation and on one server the installation finished, while the other was still in &#8220;progress&#8221; waiting me with the Just-In-Time Debugger popup window.<\/p>\n<p>&nbsp;<\/p>\n<p>The good part is the Visual Studio Just-In-Time Debugger can be disabled and I encourage to do it on the production servers (unless for a well-defined reason debugging is required there).<\/p>\n<p>&nbsp;<\/p>\n<p>Visual Studio Just-In-Time Debugger can be disabled from Windows Registry<br \/>\n<a href=\"\/wp-content\/uploads\/2015\/05\/DisableJITDebuger.zip\" target=\"_blank\">DisableJITDebuger.reg<\/a><\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\nWindows Registry Editor Version 5.00\r\n\r\n[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\.NETFramework]\r\n&quot;DbgManagedDebugger&quot;=-\r\n&quot;DbgJITDebugLaunchSetting&quot;=dword:00000001\r\n\r\n[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\AeDebug]\r\n&quot;Debugger&quot;=-\r\n\r\n[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\Microsoft\\.NETFramework]\r\n&quot;DbgManagedDebugger&quot;=-\r\n&quot;DbgJITDebugLaunchSetting&quot;=dword:00000001\r\n\r\n[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\Microsoft\\Windows NT\\CurrentVersion\\AeDebug]\r\n&quot;Debugger&quot;=-\r\n<\/pre>\n<p>I am pretty sure you would not need to enable Visual Studio Just-In-Time Debugger back, but just in case somebody needs it\u2026<br \/>\n<em>please adjust the paths according with your OS installation (usually required for dual boot systems)<\/em><br \/>\n<a href=\"\/wp-content\/uploads\/2015\/05\/EnableJITDebuger.zip\" target=\"_blank\">EnableJITDebuger.reg<\/a><\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\nWindows Registry Editor Version 5.00\r\n\r\n[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\.NETFramework]\r\n&quot;DbgManagedDebugger&quot;=&quot;\\&quot;C:\\\\Windows\\\\system32\\\\vsjitdebugger.exe\\&quot; PID %d APPDOM %d EXTEXT \\&quot;%s\\&quot; EVTHDL %d&quot;\r\n&quot;DbgJITDebugLaunchSetting&quot;=dword:00000010\r\n\r\n[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\AeDebug]\r\n&quot;Debugger&quot;=&quot;\\&quot;C:\\\\Windows\\\\system32\\\\vsjitdebugger.exe\\&quot; -p %ld -e %ld&quot;\r\n\r\n[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\Microsoft\\.NETFramework]\r\n&quot;DbgManagedDebugger&quot;=&quot;\\&quot;C:\\\\Windows\\\\system32\\\\vsjitdebugger.exe\\&quot; PID %d APPDOM %d EXTEXT \\&quot;%s\\&quot; EVTHDL %d&quot;\r\n&quot;DbgJITDebugLaunchSetting&quot;=dword:00000010\r\n\r\n[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\Microsoft\\Windows NT\\CurrentVersion\\AeDebug]\r\n&quot;Debugger&quot;=&quot;\\&quot;C:\\\\Windows\\\\system32\\\\vsjitdebugger.exe\\&quot; -p %ld -e %ld&quot;\r\n<\/pre>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>The purpose of Just-In-Time is to allow you to debug an application who recently crashed while Visual Studio IDE was not launched and configured to debug that particular application. &nbsp; Much shorter, Just-In-Time is a cool functionality for the developers, but as sysadmin you usually don&#8217;t expect and need to deal with Visual Studio Just-In-Time &hellip; <a href=\"https:\/\/www.vioreliftode.com\/index.php\/annoyed-by-visual-studio-just-in-time-debugger\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Annoyed by Visual Studio Just-In-Time Debugger<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"spay_email":"","jetpack_publicize_message":"Annoyed by Visual Studio #Just-In-Time Debugger https:\/\/wp.me\/p4NfDd-eG","jetpack_is_tweetstorm":false},"categories":[32],"tags":[83],"jetpack_featured_media_url":"","jetpack_publicize_connections":[],"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p4NfDd-eG","_links":{"self":[{"href":"https:\/\/www.vioreliftode.com\/index.php\/wp-json\/wp\/v2\/posts\/910"}],"collection":[{"href":"https:\/\/www.vioreliftode.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.vioreliftode.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.vioreliftode.com\/index.php\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.vioreliftode.com\/index.php\/wp-json\/wp\/v2\/comments?post=910"}],"version-history":[{"count":0,"href":"https:\/\/www.vioreliftode.com\/index.php\/wp-json\/wp\/v2\/posts\/910\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.vioreliftode.com\/index.php\/wp-json\/wp\/v2\/media?parent=910"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.vioreliftode.com\/index.php\/wp-json\/wp\/v2\/categories?post=910"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.vioreliftode.com\/index.php\/wp-json\/wp\/v2\/tags?post=910"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}