{"id":28,"date":"2006-08-10T08:57:27","date_gmt":"2006-08-10T13:57:27","guid":{"rendered":"http:\/\/www.nynaeve.net\/?p=28"},"modified":"2019-12-13T17:41:39","modified_gmt":"2019-12-13T22:41:39","slug":"setting-a-default-symbol-path-for-all-dbghelp-programs","status":"publish","type":"post","link":"http:\/\/www.nynaeve.net\/?p=28","title":{"rendered":"Setting a default symbol path for all DbgHelp programs"},"content":{"rendered":"<p>If you&#8217;re like me, then you have lots of programs you use on a regular basis which utilize DbgHelp to manage symbol access.\u00c2\u00a0 Unfortunately, each of these programs typically has its own convention for managing a persisted symbol path, and it can get to be very annoying to update the paths for every single program you use when you need to change your symbol path.<\/p>\n<p>Fortunately, there is a solution:\u00c2\u00a0 A little-used (nowadays) environment variable called &#8220;_NT_SYMBOL_PATH&#8221;.\u00c2\u00a0 DbgHelp will add this to the list of symbol paths searched for symbols automatically, without any special configuration needed by programs using it (in most cases; it is possible to programmatically suppress this behavior, but most programs do not do this as it is a bad idea to block this behavior).<\/p>\n<p>How does this environment variable help you consolidate your symbol paths?\u00c2\u00a0 Well, there is an option in the System property sheet (under Control Panel) to set default\u00c2\u00a0environment variables for your user or the local machine.\u00c2\u00a0 You can use this to set a default value for _NT_SYMBOL_PATH for your user, which means that all of your programs using DbgHelp will now have a default symbol search path.<\/p>\n<p>You can give _NT_SYMBOL_PATH any value that you could pass to &#8220;.sympath&#8221; or save in a WinDbg workspace, including symbol server references.<\/p>\n<p>Note that if you give _NT_SYMBOL_PATH a symbol server reference, you need to make sure that programs using DbgHelp can find symsrv.dll, which means placing it in your path if those programs do not already have a copy in their directories.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>If you&#8217;re like me, then you have lots of programs you use on a regular basis which utilize DbgHelp to manage symbol access.\u00c2\u00a0 Unfortunately, each of these programs typically has its own convention for managing a persisted symbol path, and it can get to be very annoying to update the paths for every single program [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[2],"tags":[],"_links":{"self":[{"href":"http:\/\/www.nynaeve.net\/index.php?rest_route=\/wp\/v2\/posts\/28"}],"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=28"}],"version-history":[{"count":1,"href":"http:\/\/www.nynaeve.net\/index.php?rest_route=\/wp\/v2\/posts\/28\/revisions"}],"predecessor-version":[{"id":655,"href":"http:\/\/www.nynaeve.net\/index.php?rest_route=\/wp\/v2\/posts\/28\/revisions\/655"}],"wp:attachment":[{"href":"http:\/\/www.nynaeve.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=28"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.nynaeve.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=28"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.nynaeve.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=28"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}