{"id":1211,"date":"2011-05-18T18:47:41","date_gmt":"2011-05-18T16:47:41","guid":{"rendered":"https:\/\/alax.info\/blog\/?p=1211"},"modified":"2012-04-27T13:18:43","modified_gmt":"2012-04-27T11:18:43","slug":"logprocessexceptions-automatically-create-minidump-files-on-c-exception-in-monitored-process","status":"publish","type":"post","link":"https:\/\/alax.info\/blog\/1211","title":{"rendered":"LogProcessExceptions: Automatically Create Minidump Files on C++ Exception in Monitored Process"},"content":{"rendered":"<p>LogProcessExceptions utility implements a very basic debugger which attaches (see <a href=\"http:\/\/msdn.microsoft.com\/en-us\/library\/ms679295%28VS.85%29.aspx\">DebugActiveProcess<\/a> on MSDN) to a running process and monitors its exceptions. Once exception takes place the utility creates a minidump file for the process (see <a href=\"http:\/\/msdn.microsoft.com\/en-us\/library\/ms680360%28VS.85%29.aspx\">MiniDumpWriteDump<\/a> on MSDN) so that exception condition could be investigated off-site using debugger.<\/p>\n<p>If you throw C++ exceptions in your C++ code in exceptional cases which indicate necessity to log the condition and possibly check it later, the utility will get the vital information for the application running at production location in environment without fully featured debugger (note that the utility is a simple download-and-run &#8220;wizard&#8221; style application, with no installation required), or will simply track the error letting the application continue execution without pretty much of an interruption.<\/p>\n<p>The tool will prompt for debuggee process, and follow with minidump type choices and the debugging operation.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-1212\" title=\"Log Process Exceptions - Processes\" src=\"https:\/\/alax.info\/blog\/wp-content\/uploads\/2011\/05\/Image001.png\" alt=\"\" width=\"513\" height=\"400\" srcset=\"https:\/\/alax.info\/blog\/wp-content\/uploads\/2011\/05\/Image001.png 513w, https:\/\/alax.info\/blog\/wp-content\/uploads\/2011\/05\/Image001-320x249.png 320w\" sizes=\"auto, (max-width: 513px) 100vw, 513px\" \/><\/p>\n<p><!--more--><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-1213\" title=\"Log Process Exceptions - Minidupm Type\" src=\"https:\/\/alax.info\/blog\/wp-content\/uploads\/2011\/05\/Image0031.png\" alt=\"\" width=\"513\" height=\"400\" srcset=\"https:\/\/alax.info\/blog\/wp-content\/uploads\/2011\/05\/Image0031.png 513w, https:\/\/alax.info\/blog\/wp-content\/uploads\/2011\/05\/Image0031-320x249.png 320w\" sizes=\"auto, (max-width: 513px) 100vw, 513px\" \/> <img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-1214\" title=\"Log Process Exceptions - Operation\" src=\"https:\/\/alax.info\/blog\/wp-content\/uploads\/2011\/05\/Image0041.png\" alt=\"\" width=\"513\" height=\"400\" srcset=\"https:\/\/alax.info\/blog\/wp-content\/uploads\/2011\/05\/Image0041.png 513w, https:\/\/alax.info\/blog\/wp-content\/uploads\/2011\/05\/Image0041-320x249.png 320w\" sizes=\"auto, (max-width: 513px) 100vw, 513px\" \/><\/p>\n<p>Minidump files are created automatically with the name file including:<\/p>\n<ul>\n<li>Excecutable Name<\/li>\n<li>Process Identifier<\/li>\n<li>Ordinal Number<\/li>\n<li>Exception Code<\/li>\n<li>C++\/ATL Exception HRESULT Code (esp. for <a href=\"http:\/\/msdn.microsoft.com\/en-us\/library\/9b1a94tx%28VS.80%29.aspx\">CAtlException<\/a> exceptions)<\/li>\n<\/ul>\n<p>The utility is expected to work with Windows XP operating system and more recent.<\/p>\n<p>Download links:<\/p>\n<ul>\n<li>Partial Visual C++ .NET 2010 source code: <a href=\"https:\/\/www.alax.info\/trac\/public\/browser\/trunk\/Utilities\/LogProcessExceptions\">Trac<\/a>, <a href=\"https:\/\/www.alax.info\/svn\/public\/trunk\/Utilities\/LogProcessExceptions\/\">Subversion<\/a><\/li>\n<li>Binaries: Win32 &#8211; <a href=\"https:\/\/www.alax.info\/svn\/public\/trunk\/Utilities\/LogProcessExceptions\/_Bin\/Win32\/Release\/LogProcessExceptions.exe\">LogProcessExceptions.exe<\/a>, x64 &#8211; <a href=\"https:\/\/www.alax.info\/svn\/public\/trunk\/Utilities\/LogProcessExceptions\/_Bin\/x64\/Release\/LogProcessExceptions.exe\">LogProcessExceptions.exe<\/a><\/li>\n<\/ul>\n<p>Artwork credits: <a href=\"http:\/\/cristoildiablo.deviantart.com\/\">http:\/\/cristoildiablo.deviantart.com\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>LogProcessExceptions utility implements a very basic debugger which attaches (see DebugActiveProcess on MSDN) to a running process and monitors its exceptions. Once exception takes place the utility creates a minidump file for the process (see MiniDumpWriteDump on MSDN) so that exception condition could be investigated off-site using debugger. If you throw C++ exceptions in your&hellip; <\/p>\n<p><a class=\"moretag\" href=\"https:\/\/alax.info\/blog\/1211\">Read the full article<\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[11,21,2],"tags":[293,487,38,218,154,161,292,346,347,132],"class_list":["post-1211","post","type-post","status-publish","format-standard","hentry","category-atl","category-seriously","category-utilities","tag-dmp","tag-atl","tag-c","tag-debug","tag-debugger","tag-exception","tag-minidump","tag-support","tag-troubleshooting","tag-utility"],"_links":{"self":[{"href":"https:\/\/alax.info\/blog\/wp-json\/wp\/v2\/posts\/1211","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/alax.info\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/alax.info\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/alax.info\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/alax.info\/blog\/wp-json\/wp\/v2\/comments?post=1211"}],"version-history":[{"count":0,"href":"https:\/\/alax.info\/blog\/wp-json\/wp\/v2\/posts\/1211\/revisions"}],"wp:attachment":[{"href":"https:\/\/alax.info\/blog\/wp-json\/wp\/v2\/media?parent=1211"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/alax.info\/blog\/wp-json\/wp\/v2\/categories?post=1211"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/alax.info\/blog\/wp-json\/wp\/v2\/tags?post=1211"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}