Hi Girish,

girish.prabhakarrao at wipro.com wrote:
>
> Hi,
>
> I am trying to fix leaks in my C++ app code.
>
> Purify reports the following
>
> ? MLK: 12800 bytes leaked in 4 blocks
>
> This memory was allocated from:
>
> malloc [rtlib.o]
>
> c2n6Fi_Pv___1 [libCrun.so.1]
>
> void*operator new(unsigned) [rtlib.o]
>
> MyMethod * ctrRef;
>
> => ctrRef = new MyMethod( argstoThread );
>
> Block of 3200 bytes (4 times); last block at 0x2d7518
>
>
> I generated a core file by using a gcore and ran a dis command. My 
> intention is to find out what is the data structure which is not 
> getting deleted.
>
> However I am unable to figure out the structure. Any pointers??????
>
> What does illtrap mean?
>
> >* 0x2d7518::dis*
>
> 0x2d74f0: 0xa5ff53f1
>
> 0x2d74f4: illtrap 0xc80
>
The address you are looking at here (0x2d7518) is not code. I don't know
purify, but I suspect this is the address of a block of data that has 
not been freed.
Based on the output above from purify, I suspect MyMethod structures
are not getting freed. If you have CTF info in the object file, you should
be able to do:

2d7518::print MyMethod

to print out the data structure. If this doesn't work, maybe try looking 
at the dump with
dbx. If that doesn't work, in mdb use

2d7518,10/X

And look at the output and match it up with the MyMethod structure. 
illtrap is not
(generally) a valid instruction. As far as leaks are concerned, where is 
ctrRef deleted
in the code?

max


Reply via email to