[omniORB] purify

Ted McFadden mcfadden@dstc.edu.au
Fri, 31 Jul 1998 13:00:37 +1000


Boris Khanales wrote:
> 
> I have following purify report.
> Any idea?
> 
> 1.
> 
>       IPR: Invalid pointer read....
>       This is occurring while in thread 17:
>             ImrDiMessageNode::~ImrDiMessageNode(void) [bufferedStream.h:634]
............
>             _VeCtOr_dElEtE_ [libC.a]
>             _vector_delete_ [rtlib.o]

This looked familiar and may apply to your situation:

It looks like purify is having trouble determining what's a valid
address for 
a given thread. We have seen similar messages on other programs when
multithreaded
apps call delete [] on SOLARIS. If the delete[] is in the main thread we
don't
see the error. Something simple that is known not to be corrupting like:

struct ForceIPW_IPR {    // simple struct default ctor/dtor
     std::string xyz;
     int value;
};

Code Fragment
....
ForceIPW_IPR *arrayof=new ForceIPW_IPR[10];
delete [] arrayof;
......

That fragment causes IPW/IPR errors in 
threads 2-N, but not in thread 1 of an App
under SOLARIS. (purify does have some thread options that
can be set but I haven't found the right settings
for our apps)

It does not generate any IPW/IPR for any
thread under NT.

Hope this is relevant,

Cheers,
Ted.

-- 
Ted Mc Fadden | mcfadden@dstc.edu.au | http://www.dstc.edu.au
DSTC Pty Ltd, Level 7, Gehrmann Labs | +61 7 3365 4310
The University of Queensland, Brisbane, QLD 4072 Australia