Welcome to the new Parasoft forums! We hope you will enjoy the site and try out some of the new features, like sharing an idea you may have for one of our products or following a category.

Memory/ImageList.cc:206 assertion failed

LegacyForum
LegacyForum Posts: 1,664 ✭✭
edited December 2016 in Insure++
Possible Insure crash
I have an application that dynamically loads shared libraries and resolves an init function table. When I run it with insure it crashes with the error "Memory/ImageList.cc:206 assetion failed".

Is this an insure problem or something wrong with my application?

I have stripped the application down and found that the error occurs when I load the library using the following method:

dlopen (libname.sl)

dlclose()

dlopen(libname.sl)

dlclose()

The error occurs on the second call to dlopen, I have tried using shl_load and receive the same error. I have also tried removing the init function within the library and I still receive the same error.

If I run without insure everything works OK.

Any ideas apprechiated,

Comments

  • LegacyForum
    LegacyForum Posts: 1,664 ✭✭
    Phil,

    Some versions of Insure++ on some platforms do not deal well with unloading shared libraries. It looks like you are using Insure++ 6.1.x. What platform are you running on?
  • LegacyForum
    LegacyForum Posts: 1,664 ✭✭
    I am running insure 6.1.2 (Build 2003-04-02) on HPUX V11
  • LegacyForum
    LegacyForum Posts: 1,664 ✭✭
    I believe this relates to an open case 32986 on linux and solaris linking with

    -Wl,-z,nodelete

    would allow you to workaround this. However on HP I don't see any way around it other than keeping the library open with insure . You could do something like

    #ifndef __INSURE__
    dlclose(libname.sl);
    #endif

    so that it would not be closed with insure but then you'd have to make sure it's not already openned before openning it again. As it is that's about the only way I can see working around it right now though.