[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