"Assertion failed": Array visualizer error when using Win32 build

"Assertion failed": Array visualizer error when using Win32 build

Hi

I am using WinXP64, VS2005, IVF11.1.065. I have added
appropriate include and lib directories for the Array Visualizer. While
it is a known issue that "view array" remain greyed out on x64, I can
call AV library routines in x64 build. However, for Win32 build I get
the following error:

Assertion failed: ((HRESULT)(hr) >= 0),
file ../AvCRT/RootObj.cpp, line 48.

This happens when I am trying
the any of the AV samples with Win32 build. As mentioned earlier x64
build won't have this problem. Is this also a known issue?

Abhi

5 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.

It sounds like the call is failing due to a registration issue. Did you install the av_dev_ia32 download? (the 32 and 64 bit components of AV are separate downloads) If not, download and install it. If it is already installed, try going to \Program Files (x86)\Intel\Array Visualizer\bin and running regall.bat.John

Hi John

Many thanks for the answer.

Here is what I have --

(1) Long (long) time back I had downloaded av_dev_em64t.zip and av_dev_ia32.zip. On the WinXP64, I used the former. This has created a folder \Program Files\Intel\Array Visualizer\ i.e. the installation does not go to (x86) which is expected for 64bit programs.

(2) In Array Visualizer\lib and \include directories, there are sub-directories named em64t and Itanium while the directory itself has files which I think are for 32-bit. {Nevertheless, I had also rebuilt these libraries using 32-bit Fortran enviroment.}

(3) Using Tools --> Option from Visual Studio, I have added the paths to AV libraries and modules (include). {I did add \em64t for x64 and the parent lib or include for the 32-bit.}

(3) If I open a sample from \Samples\Fortran the 32-bit will fail with the Assertion failed error. In these samples, there are "hard-wired" paths to AV. For x64, I added \em64t to include and additional library path in project properties. The sample then works.

If I try to run setup.exe form the av_dev_ia32, it tells me that another version of the product is installed and I cannot install it.

I will now try the regall from \Program Files\Intel\Array Visualizer\bin as you suggested and report if it works.

Abhi

No luck there. Using regall (either by double clicking or by opening it through win32 and x64 IVF command prompts) echoes -- Registering AV dlls, ocxs, and exes and then avflexlm is not recognized as an internal or external command ....

I am (may be stupidly) worried if unregall and regall will mess up AV in x64 application which is currently working.

Abhi

I think I have managed to get it working.

Gist: (a) Save both platform installs. (b) First run appropriate regall.

Details:-

(0) Uninstalled previous version of AV.

(1) Installed AV using setup.exe from em64t.

(2) Made a copy of the entire folder Program Files\Intel\Array
Visualizer.

(3) Tested that (a) one sample works in x64 build (needed to add \em64t to lib and include as mentioned above). (b) it does not work in Win32 build (assertion failed).

(4) Uninstalled this (64 bit) version. This removed the installed folder except for the sample I had touched in step (3). I manually deleted the sample folder and the parent AV folder; however I had the copy retained.

(4) Installed using setupexe from ia32. There was no problem.

(5) Verified that a sample works. (This needs no modifications to lib and include paths since default is Win32 Debug build.) The sample does not work in x64 build. (Assertion failed.)

(6) Now I executed unregall from Program Files (x86)\Intel\Array Visualizer\bin folder i.e. the one from ia32 install. The Win32 sample stoped working.

(7) Renamed copy of em64t install folders from (2) appropriately. Thus, I had two Array Visualizer folders, one in Program Files (x86) and one in Program Files.

(8) In Visual Studio Tools-->Options -->Intel Fortran, added proper paths to the x64 and Win32 Libraries and Includes for the AV.

Now to run a particular version I use regall from the appropriate \bin folder and it works! I first run unregall from both just to be sure. I have removed hard-wired (../../..lib) paths from the sample, and it picks these from those set in (8).

Abhi

Login to leave a comment.