Archived

This forum has been archived. Please start a new discussion on GitHub.

Error detected by Purify

We are evaluating ICE for use in Talk Project for a possible migration from OAA.

In the "Printer Demo", one client(with one proxy) with one server in the same machine(using 127.0.0.1 as IP); Purify reports the following (one ABW error, two UMC warnings):

This is the error:

[E] BSW: Beyond stack write in IceInternal::Buffer::Container::swap(Container::Buffer::IceInternal&) {1 occurrence}

Writing 26 bytes to 0x0013ee90 (top of stack is at 0x033fe62c))

Address 0x0013ee90 points into a thread's stack

Address 0x0013ee90 is 1347515577 bytes above the frame pointer in IceInternal::Buffer::Container::swap(Container::Buffer::IceInternal&)

Thread ID: 0x1300

Error location

[C:\Ice-3.1.0\bin\ice31.dll ip=0x100179B4]

??? [ip=0x00010001]

callthreadstartex [f:\rtm\vctools\crt_bld\self_x86\crt\src\threadex.c:348]

threadstartex [f:\rtm\vctools\crt_bld\self_x86\crt\src\threadex.c:326]

Complete report is attached.

Is this a real error? Has similiar been reported?
We get the same error in our ice demo application with has 4 proxies in a client with 4 different servers.

We are running a Windows 2003 Server SP1 Standard Edition.
Microsoft Visual Studio 2005 Versión 8.0.50727.42
Purify is version 7.0.0.0 build 6311

Comments

  • bernard
    bernard Jupiter, FL
    Hi,

    Did you try to Purify a debug version of this demo (and your application)? Do you get the same Purify error/warnings?

    Cheers,
    Bernard
  • Thanks for your quick reply.

    We used a release build with debug information and the following options:

    /INCREMENTAL:NO
    /FIXED:NO
    Basic Runtime Checks = "Default"
    /Zi

    Regards,
    Jesús.
  • bernard
    bernard Jupiter, FL
    Hi Jesus,

    By debug build, I meant with objects compiled with /MDd and linked with the *D.lib Ice libraries.

    You can only get meaningful Purify results when the *.pdb files are present, and we include the .pdb files only for the debug (/MDd, *D.dll/lib) files in our binary distributions.

    When Purifying, I recommend to first use the debug build (/MDd, *D.lib libraries). Then, if you later suspect a release-only memory problem, you should make your own special Ice release build (/MD) with debug info stored in PDB files.

    Cheers,
    Bernard
  • Thanks again for your quick reply.

    We rebuilt the client with all debug libraries and getting *.pdb files and the error has gone! So we have the Ice source and we will look into rebuilding a release version with debug information. If it works we will try with our demo.

    Thank you very much.
    Jesús.