<p>For many years I have used two great tools <a href="http://www.compuware.com/products/devpartner/visualc.htm" rel="noreferrer">BoundsChecker</a> &amp; <a href="http://www-01.ibm.com/software/awdtools/purify/win/" rel="noreferrer">Purify</a>, but the developers of these applications have let me down, they no longer put effort into maintaining them or developing them. We have corporate accounts with both companies, and they both tell me that they have no intention of producing versions to support 64 bit applications.</p>

<p>Can anyone recommend either open source or commercial alternatives that support 64 bit native C++/MFC applications?</p>

[{'answer_id': 49682, 'author': 'Adam Davis', 'author_id': 2915, 'author_profile': 'https://Stackoverflow.com/users/2915', 'pm_score': 0, 'selected': False, 'text': "<p>I've used bounds checking and other dynamic analysis tools, and while the architectures are different it's the code that you're checking - in theory you could run bounds checking on any backend and the result would be the same - the code either steps outside its bounds or it does not.</p>\n\n<p>The only complications are addressing more than 4GB of memory space, dealing with pieces of code you can't cross-compile to a 32-bit architecture (64 bit object files for which you have no source, etc), and general 64 bit migration issues (platform specific code such as checking for 0xFFFFFFFF instead of -1)</p>\n\n<p>What other problems are you running into doing bounds checking on your program?  Are you unable to compile a 32 bit version?</p>\n\n<p>It's not your ideal solution, certainly, and one should always check the code they're going to run, but in this case you might not have a choice, unless you want to do your own bounds checking (which is a good idea in any case...).</p>\n\n<p>-Adam</p>\n"}, {'answer_id': 51203, 'author': 'svec', 'author_id': 103, 'author_profile': 'https://Stackoverflow.com/users/103', 'pm_score': 2, 'selected': False, 'text': '<p>Parasoft has a tool called Insure++ (link: <a href="http://www.parasoft.com/jsp/products/quick_facts.jsp?product=Insure" rel="nofollow noreferrer">http://www.parasoft.com/jsp/products/quick_facts.jsp?product=Insure</a>) which says it\'ll do that.</p>\n\n<p>I\'ve used Insure++ on 32-bit and 64-bit apps on Linux and it worked okay.  It sometimes got confused when it was trying to parse template/stl code and would fall over.</p>\n\n<p>That url says it works on 32- and 64-bit windows, good luck!</p>\n'}, {'answer_id': 204185, 'author': 'Community', 'author_id': -1, 'author_profile': 'https://Stackoverflow.com/users/-1', 'pm_score': 0, 'selected': False, 'text': '<p>it is my understanding that BC 9.0 will support WOW64</p>\n'}, {'answer_id': 771916, 'author': 'Community', 'author_id': -1, 'author_profile': 'https://Stackoverflow.com/users/-1', 'pm_score': 3, 'selected': False, 'text': '<p>Viva64 (<a href="http://www.viva64.com/viva64-tool/" rel="noreferrer">http://www.viva64.com/viva64-tool/</a>) tool provides detection of errors typical of 64-bit Windows applications. Viva64 is a lint-like static analyzer of C/C++ code. Viva64 integrates into Visual Studio 2005/2008 environment and provides user-friendly interface to test your software projects.</p>\n'}, {'answer_id': 920100, 'author': 'titanae', 'author_id': 2387, 'author_profile': 'https://Stackoverflow.com/users/2387', 'pm_score': 2, 'selected': False, 'text': '<p>BoundsChecker 9.01 now supports VC2008 and x64 bit, at last.</p>\n'}, {'answer_id': 3028290, 'author': 'C.J.', 'author_id': 321866, 'author_profile': 'https://Stackoverflow.com/users/321866', 'pm_score': 2, 'selected': False, 'text': "<p>insure++ only workse if you instrument your code. I once tried it. It took about 5 minutes to compile about 1000 lines of code. Since the project that I needed to compile was huge, I quickly determined that Insure++ was not going to work.</p>\n\n<p>Not to mention their reporting, or output from Insure++ is pretty archaic. also the runtime performance penalty was attrocious. </p>\n\n<p>Note about boundschecker from numega/compuware/other_new_company: Don't buy it. It's only profiles 32 bit apps. It does NOT do 64 bit apps. It can be installed on a 64 bit OS though. I stopped using it years ago on our app. I do use it on CppUnit Tests though... sometimes.</p>\n\n<p>In general I'm completely disgusted with all the native memory leak tools out there. They all don't work, or just lock up your application on shutdown. </p>\n"}, {'answer_id': 3353495, 'author': 'Jay DeSouza', 'author_id': 404579, 'author_profile': 'https://Stackoverflow.com/users/404579', 'pm_score': 1, 'selected': False, 'text': '<p>Intel(R) Parallel Inspector (<a href="http://software.intel.com/en-us/intel-parallel-inspector/" rel="nofollow noreferrer">http://software.intel.com/en-us/intel-parallel-inspector/</a>) is a threading and memory-checking plugin tool to Microsoft* Visual Studio; it supports 32-bit and 64-bit C/C++ on Windows.  It\'s a commercial application with a 30-day free evaluation.</p>\n\n<p>Disclosure: I work for Intel.</p>\n'}, {'answer_id': 3485315, 'author': 'Rick Papo', 'author_id': 420658, 'author_profile': 'https://Stackoverflow.com/users/420658', 'pm_score': 2, 'selected': False, 'text': "<p>FYI: BoundsChecker 10.0 runs on Windows XP through Windows 7, on both 32 and 64 bit versions.  It supports WOW64 applications, and it also supports Visual Studio 2010.  In fact, we released VS2010 support within 30 days of Microsoft's release.</p>\n\n<p>We are catching up with our backlog.  We were very late getting the VS2005 and VS2008 support out (with BC 9.0, Fall 2008), but there were a variety of reasons why this happened.  The miracle was that we got it out at all.</p>\n\n<p>BoundsChecker 10.5, when it comes out, should have some more goodies.  Stay tuned.</p>\n\n<p>Disclosure: I work for MicroFocus.</p>\n"}, {'answer_id': 6572316, 'author': 'lrascao', 'author_id': 648012, 'author_profile': 'https://Stackoverflow.com/users/648012', 'pm_score': 0, 'selected': False, 'text': '<p>Application verifier, for x64 and x86, detects heap corruption\n<a href="http://www.microsoft.com/download/en/details.aspx?id=20028" rel="nofollow">http://www.microsoft.com/download/en/details.aspx?id=20028</a></p>\n'}, {'answer_id': 11451621, 'author': 'mheyman', 'author_id': 240845, 'author_profile': 'https://Stackoverflow.com/users/240845', 'pm_score': 0, 'selected': False, 'text': '<p>From <a href="http://www-01.ibm.com/support/docview.wss?uid=swg21303078" rel="nofollow noreferrer">IBM PurifyPlus support for 64-bit versions of Microsoft Windows</a>:</p>\n<blockquote>\n<p>Technote (FAQ)</p>\n<p>Question</p>\n<p>Is IBM Rational PurifyPlus supported on 64-bit versions of Microsoft Windows?</p>\n<p>Cause</p>\n<p>64-bit versions of Microsoft Windows are getting popular.</p>\n<p>Answer</p>\n<p>Beginning with version 7.0.1 iFix 003, PurifyPlus supports testing 64 bit applications on Windows.</p>\n<p>More information about iFix 003 can be found in the following technote <a href="https://www.ibm.com/support/entdocview.wss?uid=swg24032602" rel="nofollow noreferrer">IBM Rational PurifyPlus for Windows v7.0.1.0-003</a></p>\n</blockquote>\n<p>You install this version of Purify and you get a &quot;<em>Purify (for 64-bit applications)</em>&quot; entry in your start menu.</p>\n'}]
['https://Stackoverflow.com/questions/49610', 'https://Stackoverflow.com', 'https://Stackoverflow.com/users/2387/']