Micro Focus DevPartner* BoundsChecker software contains tools to help you find memory issues in your code. Intel® Inspector XE has that same functionality but also supports additional operating systems (Linux* and Microsoft Windows*), languages (C, C++, Microsoft .NET*, Fortran), and direct integration into the debugger while also providing a substantially more powerful GUI. This additional functionality makes it well worth considering making a change to the Intel® Inspector XE.
BoundsChecker Tools versus Intel Inspector XE
Error Types Detected
BoundsChecker software has two primary modes: ActiveCheck and FinalCheck. ActiveCheck is the subset of functionality that can run without compile-time instrumentation, so it can run on your existing binaries. FinalCheck uses compile-time instrumentation. This adds detection of buffer overflows and uninitialized memory accesses, so only files recompiled with BoundsChecker software are checked for these issues.
All Intel Inspector XE analyses are based on your existing binaries with no need for a special recompile:
In addition to the types of errors that Boundschecker tools can find, the Intel Inspector XE discovers data races and can be used for real-time memory analysis. In addition, the Intel Inspector XE discovers deadlocks and uninitialized memory access errors without a special recompile.
The two error types not available in Boundschecker tools can be particularly crucial, depending on your source. Real-time access to information about memory changes is a very powerful tool. It allows for better tracking of memory in specific sections of the code, or on applications like daemons or system processes that do not have a natural termination. Data race detection is an essential part of debugging threaded code.
Intel Inspector XE provides a richer set of GUI features:
These features, especially Problem Sets and Filters, allow you to drill down to specific issues you are interested in more quickly and discover all of the information about the error, instead of just this particular expression of it. The persistent state information allows you to keep track of issues that were discovered previously and focus on new issues or discover regressions quickly. State and suppression information can also be shared across a team, making it simple for one set of results to be worked on by multiple engineers (essentially for very large software applications).
BoundsChecker tools and the Intel Inspector XE both support suppressing on the location of the error. Intel Inspector XE, however, goes a step further and allows you to suppress based on any location in the source code stack or multiple frames in the source code. All of this functionality is available in a handy GUI dialog box. If you would rather create your own suppressions, you can hand-edit your own suppression file, and the suppression format is fully documented in the Intel Inspector XE help.
One of the problems with dynamic analysis, which both BoundsChecker tools and the Intel Inspector XE use, is that it has a hard time providing you with full context. When you see problems, the application is usually finished, or at least past that point. To assist with this, the Intel Inspector XE integrates with your debugger (Microsoft Visual Studio* debugger on the Microsoft Windows* OS, GNU gdb* on the Linux* OS). You can right-click on an issue in the results pane and select Debug This Problem, and the tool immediately reruns and breaks at that issue. Alternatively, you can run your analysis with the debugger running in the background and break on any problem, or not start the Intel Inspector XE analysis until you hit a breakpoint. These features are enabled from our configuration pane:
Transitioning from BoundsChecker Tools to Intel Inspector XE
The transition from BoundsChecker tools to the Intel Inspector XE is straightforward. You can buy the Intel Inspector XE or download a 30-day evaluation version from https://software.intel.com/en-us/intel-inspector-xe. In that same location you can also find videos that give a good overview of the tool, access to a full version of online help, and many articles that give insight into how to get the most out of your tool. This is also where you go to locate our user forums, which are monitored by both Intel personnel and our community of devoted users. The forums, and product support, should be able to answer any question you may have in a timely fashion.
So now that you have the tool installed, what next? Intel Inspector XE uses binary instrumentation (like the ActiveCheck portion of BoundsChecker software), which means that you do not need to recompile your sources. So you are mostly ready to go.
Preparing Your Project Files
At this point you can just run from the command line (use inspxe-cl –help or see product documentation for more information) or, if you have a complex setup, use project properties to help you get the exact command line you are looking for.
Choose Project Properties from the File menu to set up information about the source, symbol information, and the name/parameters of the application:
Next, use the Configure Analysis Type pane to specify the type of analysis you want to do and select/deselect options. Next, either click Start to run the analysis in the GUI, or take advantage of the Command Line button in the lower right corner to get the exact command you need to run this analysis from the command line.
Intel Inspector XE provides access to the powerful memory and thread correctness information that you are used to finding with BoundsChecker tools, but also provides support for more operating systems, more languages, and debugger integration. Our team support allows you to take the same result and use it across a large project or a widespread team without losing information
* Other names and brands may be claimed as the property of others.