17

For many years I have used two great tools BoundsChecker & Purify, 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.

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

Zifre
  • 26,504
  • 11
  • 85
  • 105
titanae
  • 2,259
  • 2
  • 21
  • 31

10 Answers10

5

Viva64 (http://www.viva64.com/viva64-tool/) 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.

4

Parasoft has a tool called Insure++ (link: http://www.parasoft.com/jsp/products/quick_facts.jsp?product=Insure) which says it'll do that.

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.

That url says it works on 32- and 64-bit windows, good luck!

svec
  • 3,477
  • 2
  • 27
  • 28
  • Parasoft is the kind of company where you need to be contacted to evaluate the product. No downloads :| – sorin Apr 08 '10 at 17:06
  • Insure++ works though, if you have a few days to do your build, and a few hours to start up your application as well. – C.J. Aug 07 '10 at 01:47
2

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.

Not to mention their reporting, or output from Insure++ is pretty archaic. also the runtime performance penalty was attrocious.

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.

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.

C.J.
  • 15,637
  • 9
  • 61
  • 77
2

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.

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.

BoundsChecker 10.5, when it comes out, should have some more goodies. Stay tuned.

Disclosure: I work for MicroFocus.

Rick Papo
  • 369
  • 1
  • 2
  • 10
  • We are now accepting beta testers for DPS 10.5. The BoundsChecker component (Error Detection) now supports X64 applications. The only X86 functions not yet supported in X64 are .NET and Deadlock Analysis. – Rick Papo Oct 01 '10 at 10:22
  • DPS 10.5 was released for sale February 4th. It's been remarkably stable since. We are working on a websync, 10.5.1, which supports Windows 7 SP1, Windows XP64 SP2 and Visual Studio 2010 SP1. – Rick Papo Apr 07 '11 at 11:31
  • If anybody has questions concerning Micro Focus DevPartner Studio or BoundsChecker, please visit our forum at http://community.microfocus.com/Forums/9_DevPartner. – Rick Papo Jul 14 '11 at 18:04
  • The support forum has changed location and server. It is now at http://community.microfocus.com/ – Rick Papo Aug 02 '12 at 20:49
  • Insure++ v2020.1 for Windows is now in Alpha. Disclosure: yada yada yada. I've had fun reading all of this. Stay well, everyone, during this Great Pandemic. I stay home all day and work on Insra and the new Insure::Ldr in insurert.dll. It is literally all that I do nowadays, and I couldn't be happier. :-) – Leif Strand Jul 27 '20 at 17:52
  • Yeah, and we're still alive too. DevPartner Studio (DPS) 12.0 is available in it's BoundChecker-only form, and the rest of the product should be available this year while DPS 11.4 holds down the fort. The new version boasts a new installer, and has been rebuilt with new tooling. Visual Studio 2008 is no longer supported by M$, after all. – Rick Papo Jul 27 '20 at 23:02
2

BoundsChecker 9.01 now supports VC2008 and x64 bit, at last.

titanae
  • 2,259
  • 2
  • 21
  • 31
  • well it now installs on x64 machines, its a start! hopefully it will one day work with x64 code too. – titanae Jan 06 '10 at 04:28
  • I don't think they ever will. – C.J. Jun 15 '10 at 04:43
  • I recently asked MicroFocus for a demo (via web interface) but still no response... – mmmmmmmm Jun 22 '11 at 06:15
  • I know this is a bit late for Rudiger, but if anybody else winds up in this boat, please message myself or Matt Schuetze . . . or, for that matter, Chris Johnson, who knows how to get ahold of us now. – Rick Papo Dec 31 '11 at 11:14
1

Intel(R) Parallel Inspector (http://software.intel.com/en-us/intel-parallel-inspector/) 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.

Disclosure: I work for Intel.

  • And [here](https://software.intel.com/sites/default/files/m/d/4/1/d/8/Pointer_Checker-Webinar.pdf) is a 2012 technical presentation for it, which I found more upfront about slow-downs etc. than similar info on (a lot) of other commercial tools. – Fizz Feb 15 '15 at 16:58
  • The most thing about it is that Intel keeps changing what it's called. [Here](https://software.intel.com/en-us/articles/find-windows-memory-errors-with-intel-inspector-xe) is the info for the 2014 version. – Fizz Feb 15 '15 at 17:07
0

From IBM PurifyPlus support for 64-bit versions of Microsoft Windows:

Technote (FAQ)

Question

Is IBM Rational PurifyPlus supported on 64-bit versions of Microsoft Windows?

Cause

64-bit versions of Microsoft Windows are getting popular.

Answer

Beginning with version 7.0.1 iFix 003, PurifyPlus supports testing 64 bit applications on Windows.

More information about iFix 003 can be found in the following technote IBM Rational PurifyPlus for Windows v7.0.1.0-003

You install this version of Purify and you get a "Purify (for 64-bit applications)" entry in your start menu.

Community
  • 1
  • 1
mheyman
  • 4,211
  • 37
  • 34
  • Purify for Windows X64 was released a few months ago, it seems. There are still signs of life over there . . . – Rick Papo Jul 14 '12 at 10:25
0

it is my understanding that BC 9.0 will support WOW64

0

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.

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)

What other problems are you running into doing bounds checking on your program? Are you unable to compile a 32 bit version?

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...).

-Adam

Adam Davis
  • 91,931
  • 60
  • 264
  • 330
0

Application verifier, for x64 and x86, detects heap corruption http://www.microsoft.com/download/en/details.aspx?id=20028

lrascao
  • 29
  • 4
  • 1
    It indeed does, but provides extremely little information that would lead to discovering the cause of the corruption. I have used AV in solving a problem within BoundsChecker itself, but I had to provide all the context clues myself. AV simply announces the corruption and it's location, and then terminates the program. – Rick Papo Dec 30 '11 at 01:13
  • For a more detailed commentary, see [link](http://community.microfocus.com/blogs/28_DevPartner). – Rick Papo Dec 30 '11 at 01:33