[omniORB] Purify: Invalid pointer read/write

Harald Hopfes harald.hopfes@vs.dasa.de
Mon, 08 Feb 1999 15:46:14 +0100


Hello!

I got the following warning:

      Purify or PureCoverage engine: Warning: Unrecognized option
'-mark-wrapped-stacks=yes' ignored.

So it seems that our version is too old (Purify 4.0/Solaris 2.5)
Some other suggestions?

Harald

suzuki@wni.co.jp wrote:

> Older Purify for Solaris have a bug that causes spurious
> detection of IPR/IPW. The problem can be worked around, in our
> environment (Purify 4.1/Solaris 2.6), by adding following options
> to purify command.
>   -mark-wrapped-stacks=yes
> Existing instrumented library needs to be reinstrumented
> with this option, too.
> Hope this helps,
>
> -shinji
>
> > Message-Id: <36BEDC8A.C634680A@vs.dasa.de>
> > Date: Mon, 08 Feb 1999 13:46:03 +0100
> > From: Harald Hopfes <harald.hopfes@vs.dasa.de>
> > Organization: DASA
> > X-Mailer: Mozilla 4.5 [en] (WinNT; I)
> > X-Accept-Language: de,en
> > Mime-Version: 1.0
> > To: omniorb-list@uk.research.att.com
> > Subject: [omniORB] Purify: Invalid pointer read/write
> > Content-Transfer-Encoding: 7bit
> > Content-Length: 2235
> >
> > Hello!
> >
> > When applying Purify to our program, we get the Errors shown
> > further down.
> > We are using OmniORB 2.6.0. Could someone tell me if these errors
> > are fixed in the omniORB 2.7.0 release?
> > Could it be a bug in the template implementation of the Sun
> > Compiler 4.2 ?
> >
> > Thank you!
> >
> > Harald
> >
> > ****  Purify instrumented x_purify
> >   * Purify 4.0 Solaris 2, Copyright (C) 1992-1996 Pure Software
> > Inc. All rights reserved.
> >   * For contact information type: "purify -help"
> >   * For TTY output, use the option "-windows=no"
> >   * Command-line: x_purify
> >   * Options settings: -always-use-cache-dir -threads=yes \
> >     -thread-report-at-exit=yes -max-threads=80 -g++=yes \
> >     -cache-dir=~/purify_cache -purify \
> >     -purify-home=~/purify-4.0-solaris2 \
> >     -real_ild_linker=~/SC4.2/bin/ild -threads=yes \
> >     -thread_stack_change=0x4000 -mt_safe_malloc=yes
> >   * Purify checking enabled.
> >
> > ****  Purify instrumented x_purify (pid 18509)  ****
> > IPW: Invalid pointer write (129 times):
> >   * This is occurring while in thread 18:
> >  IOP::TaggedProfile::TaggedProfile(void) [objectRef.cc]
> >  _VeCtOr_nEw_   [libC.so.5]
> >  _vector_new_   [rtlib.o]
> >  static _CORBA_Sequence<IOP::TaggedProfile>::allocbuf(unsigned
> > long) [seqtemplates.h:186]
> >  _CORBA_Sequence<IOP::TaggedProfile>::length(unsigned long)
> > [seqtemplates.h:150]
> >  _CORBA_Sequence<IOP::TaggedProfile>::operator
> > <<=(NetBufferedStream&) [bufferedStream.h:735]
> >   * Writing 4 bytes to 0xed00ec7c on the stack of thread 18.
> >   * Address 0xed00ec7c is 68 bytes above frame pointer in
> > function IOP::TaggedProfile::TaggedProfile(void).
> >
> > ****  Purify instrumented x_purify (pid 18509)  ****
> > IPR: Invalid pointer read (129 times):
> >   * This is occurring while in thread 18:
> >  IOP::TaggedProfile::TaggedProfile(void) [seqtemplates.h:186]
> >  _VeCtOr_nEw_   [libC.so.5]
> >  _vector_new_   [rtlib.o]
> >  static _CORBA_Sequence<IOP::TaggedProfile>::allocbuf(unsigned
> > long) [seqtemplates.h:186]
> >  _CORBA_Sequence<IOP::TaggedProfile>::length(unsigned long)
> > [seqtemplates.h:150]
> >  _CORBA_Sequence<IOP::TaggedProfile>::operator
> > <<=(NetBufferedStream&) [bufferedStream.h:735]
> >   * Reading 4 bytes from 0xed00ec7c on the stack of thread 18.
> >   * Address 0xed00ec7c is 68 bytes above frame pointer in
> > function IOP::TaggedProfile::TaggedProfile(void).
> >
> >