Analyzers
Support for Analyzers (Intel VTune™ Profiler, Intel Advisor, Intel Inspector)
Announcements
This community is designed for sharing of public information. Please do not share Intel or third-party confidential information here.
4682 Discussions

Support for third-party memory managers

rachidh
Beginner
174 Views
Understanding the support, if any, in Inspector XE to mask detecting use of recycled memory by third party memory managers as data sharing violations.

Firstly, did such support make it into the latest release? If so, can someone shed any details. Thanks!
0 Kudos
3 Replies
Peter_W_Intel
Employee
174 Views
Intel Inspector XE 2011 can detect memory errors & thread errors in all modules at runtime (native code only), including 3rd-party libraries, system libraries, etc. This is default operation.

The user can select all modules in report, or select interest of module in report, like as below.


Regards, Peter
Vladimir_T_Intel
Moderator
174 Views
Quoting rachidh
Firstly, did such support make it into the latest release? If so, can someone shed any details. Thanks!

Hi,

Not at the moment. You might have found some user API functions in the ittnotify.h that are similar to what youre asking for. However, we do not claim support of that functionality for the current release.

Please, provide your particular examples on how you think the 3-rd party/custom memory managers have to be supported by Inspector XE, just for better understanding of what you expect.

Matthew_F_Intel
Employee
174 Views
Intel Inspector XE uses a race detection algorithm that correctly recognizes the use of mutexes to perform ownership transfers.

If the third party memory manager is thread safe and correctly synchronized with system APIs then we will recognize that the thread that frees the memory and the thread that later allocates (recycles) the memory acquired the lock protecting the memory manager in a well defined order. We will not report a race on the recycled memory.

If Inspector XE is reporting races on data that is managed by a third-party memory manager then there are three possibilities:

1. there is actually a race in the program.
2. the third-party memory manager has a synchronization bug.
3. the third-party memory manager is correctly synchronized, but is using hand-crafted synchronization routines that Inspector XE is not automatically recognizing as being synchronization routines.

The best thing to do in thelast case is to "teach" Inspector XE about the synchronization routines using the itt annotation API. (The same API that was available in Thread Checker 3.1).
Reply