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