Community
cancel
Showing results for 
Search instead for 
Did you mean: 
mullervki
Beginner
166 Views

Inspector using gigabytes

Hello,

I downloaded an evaluation version of Intel Inspector 2015 for Linux. I tried testing it on a small program but the memory usage went up to 25GB until I killed it. I then just compiled the program below:

#include <stdio.h>

int
main()
{
   int a, b;

   a = 1;
   b = a;
   printf("b= %d\n",b);
   return 0;
}

In other words, the program is tiny just to test Inspector itself. I'm running Inspector from the command line using

/opt/intel/inspector_xe_2015.1.0.366509/bin64/inspxe-cl -collect mi3 -knob analyze-stack=true -knob detect-leaks-on-exit=true -knob detect-resource-leaks=true -knob enable-memory-growth-detection=true -knob enable-on-demand-leak-detection=true -knob remove-duplicates=true -knob still-allocated-memory=true -knob stack-depth=16 -module-filter-mode=include -result-dir=exam1.inspector exam1.x

The arguments above is what I've been using on a 2013 version of Inspector for Windows 64.

I tried registering for Premier support but it says I have no access to it. It's impossible to navigate to a location where I can enable myself to use the Premier support I'm entitled to. If somebody know how to resolve this memory issue, or how I can get to Premier support I would appreciate it.

0 Kudos
7 Replies
Mark_D_Intel
Employee
166 Views

Which Linux distribution, compiler version, and compile options are you using?  I tried this simple example, but could not reproduce the behavior you describe.

 

Mark

mullervki
Beginner
166 Views

Hi Mark,

Here's the information:

Compiler and Linux:gcc version 4.1.2 20080704 (Red Hat 4.1.2-48), Red Hat Enterprise Linux Client release 5.5 (Tikanga).

%: uname -a
Linux shasta 2.6.18-194.17.4.el5 #1 SMP Wed Oct 20 13:03:08 EDT 2010 x86_64 x86_64 x86_64 GNU/Linux

I wonder: 1) Must I use the Intel compiler for Inspector to work properly? 2) I know I have an old version of Red Hat Linux. I wonder whether this could also be an issue...

Thanks.

 

mullervki
Beginner
166 Views

Well, I went ahead and did a test using the Intel compiler. Everything ran in a second. Thanks for asking about the versions. I suppose my version of gcc is not compatible with this version of Inspector.

Mark_D_Intel
Employee
166 Views

The Intel compiler is not required for Inspector - gcc should work fine.

The test I tried was on RH5.10 with gcc 4.1.2-54, and it worked fine.

mullervki
Beginner
166 Views

Hmm... interesting. Maybe I'm not setting my environment properly. If downloaded the cluster evaluation - I figured, it's probably the most complete.

Which csh scripts do I need to run in order to properly set my environment to run Inspector?

mullervki
Beginner
166 Views

It appears I managed to eliminate the memory growth by commenting out the "feenableexcept" call. But I still have some basic problems with Inspector. I created a simple code by setting b=a, then printing b. But I never initialize a... on purpose; I just want to see whether Inspector is doing its job.

This is a detection on the stack, but I cannot get Inspector to detect this memory problem. Here is my command line:

inspxe-cl -collect mi3 -knob detect-uninit-read=true -knob revert-uninit=false -knob analyze-stack=true -knob detect-leaks-on-exit=true -knob enable-memory-growth-detection=true -knob enable-on-demand-leak-detection=true -knob remove-duplicates=true -knob still-allocated-memory=true -knob stack-depth=16 -module-filter-mode=include -knob detect-resource-leaks=true

I believe that by setting "analyze-stack=true" this should detect the problem. Any suggestions?

Thanks.

Mark_D_Intel
Employee
166 Views

The algorithm for reporting uninitialized reads has changed in the 2015 product, in order to reduce false positives.  It will report an uninit read when the value is used, but not when it is merely copied from one location to another.   You can use  "-knob revert-uninit=true" to return to the uninit detection used in the 2013 version.

 

For example

    int a;
    int b;
    int c;
    b = a;   //  'b' not used, will not be reported by default.  
             //   With "-knob revert-uninit=true", the uninit access of 'a' be reported.

    c = a;   // The use of the uninit value of 'c' will be detected on the 'if', and reported here
    if (c == 1) {
       // ...
    }

 

Reply