- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I have a function that allocates memory like :
void funcA(void* args)
{
char* memory_leak = (char*)malloc(1000);
}
now I create a thread on this function, which therefore must allocate the mentioned memory, and exit.
My application is multi-threaded and I have created one more thread on this function.
But when I run Intel Inspector on my application, it doesnt show this as a memory leak.
I ran both mi1 and mi2 level of memory analysis but this leak was not detected.
Any ideas ?
- Tags:
- CC++
- Debugging
- Development Tools
- Fortran
- Intel® Inspector
- Optimization
- Parallel Computing
- Vectorization
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Sorry that I cannot reproduce the problem you reported. Use your example code -
1. g++ -g test0.cpp -o test0 -lpthread
2. # inspxe-cl -version
	Intel(R) Inspector XE 2013 Update 9 (build 328075) Command Line tool
	Copyright (C) 2009-2013 Intel Corporation. All rights reserved.
3.# inspxe-cl -version
	Intel(R) Inspector XE 2013 Update 9 (build 328075) Command Line tool
	Copyright (C) 2009-2013 Intel Corporation. All rights reserved.
	[root@snb01 problem_report]# ^C
	[root@snb01 problem_report]# inspxe-cl -collect mi2 -- ./test0
	  
	1 new problem(s) found 
	    1 Memory leak problem(s) detected 
4. # inspxe-cl -collect mi2 -- ./test0
	  
	1 new problem(s) found 
	    1 Memory leak problem(s) detected 
	[root@snb01 problem_report]# ^C
	[root@snb01 problem_report]# inspxe-cl -report problems
	P1: Error: Memory leak
	 P1.50: Memory leak: 16000 Bytes: New
	  /home/peter/problem_report/test0.cpp(12): Error X50: Allocation site: Function funcA: Module /home/peter/problem_report/test0
--------------------------------------------------------------------------------------------------------------------------------------
#include <stdio.h>
	#include <stdlib.h>
	#include <pthread.h>
#define NUM_THREADS 16
	void * funcA(void* args)
{
char* memory_leak = (char*)malloc(1000);
}
int main()
	{
	        int i;
	        pthread_t h[NUM_THREADS];
        for (i = 0; i < NUM_THREADS; ++i)
	        {
	                pthread_create(&h, 0, funcA, NULL);
}
        for (i = 0; i < NUM_THREADS; ++i)
	            pthread_join (h, 0);
        return 0;
	}
 
					
				
				
			
		
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page
