{"id":18,"date":"2006-08-01T11:12:29","date_gmt":"2006-08-01T16:12:29","guid":{"rendered":"http:\/\/www.nynaeve.net\/?p=18"},"modified":"2019-12-13T17:41:40","modified_gmt":"2019-12-13T22:41:40","slug":"dont-forget-to-turn-off-your-debug-prints-when-you-ship-your-product","status":"publish","type":"post","link":"http:\/\/www.nynaeve.net\/?p=18","title":{"rendered":"Don&#8217;t forget to turn off your debug prints when you ship your product"},"content":{"rendered":"<p>One thing that really annoys me when I am debugging a problem is when people ship their products with debug prints on in the release versions.<\/p>\n<p>This just sucks, it really does.\u00c2\u00a0 It&#8217;s hard to pay attention to debug prints for things that matter if half of the third party software on your computer is compiled with debug prints enabled.\u00c2\u00a0 One example of a particularly annoying offender of this is the HGFS (host-guest filesystem) network filesystem provider shipped by VMware.\u00c2\u00a0 Now, I love VMware, but it&#8217;s really, <em>really<\/em> annoying that every single VM in existance with VMware Tools installed has built in debug print spam from every process that touches the network provider stack.<\/p>\n<p>So, change those DbgPrint calls to KdPrint if you are working on a driver, and if you&#8217;re in user mode, make sure that OutputDebugString calls aren&#8217;t compiled in if you are in release mode.\u00c2\u00a0 Alternatively, leave them there but make sure that they are off by default unless you set a special configuration or registry parameter.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>One thing that really annoys me when I am debugging a problem is when people ship their products with debug prints on in the release versions. This just sucks, it really does.\u00c2\u00a0 It&#8217;s hard to pay attention to debug prints for things that matter if half of the third party software on your computer is [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[4,5],"tags":[],"_links":{"self":[{"href":"http:\/\/www.nynaeve.net\/index.php?rest_route=\/wp\/v2\/posts\/18"}],"collection":[{"href":"http:\/\/www.nynaeve.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.nynaeve.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.nynaeve.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.nynaeve.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=18"}],"version-history":[{"count":1,"href":"http:\/\/www.nynaeve.net\/index.php?rest_route=\/wp\/v2\/posts\/18\/revisions"}],"predecessor-version":[{"id":662,"href":"http:\/\/www.nynaeve.net\/index.php?rest_route=\/wp\/v2\/posts\/18\/revisions\/662"}],"wp:attachment":[{"href":"http:\/\/www.nynaeve.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=18"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.nynaeve.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=18"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.nynaeve.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=18"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}