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.

Building on One machine to run on another with the same architecture

LegacyForum
LegacyForum Posts: 1,664 ✭✭
edited February 2017 in Insure++
In order to build on one machine and run on another machine of
the same architecture

First the concerns for all Unix based platforms

The bin and lib directories have to have been created
on the run machine in the same directory tree as on the build
machine. So if you were running on a Solaris machine and on
your build machine you have created /usr/local/insure in this
location you should have both of these on your run machine.

/usr/local/insure/bin
/usr/local/insure/lib

In your bin directory the following binaries have to
have been copied from your build machine.

gus insra islave pslic psrcdump

On 64 bit architectures you will also need

gus_64 islave_64

Then in your base directory /usr/local/insure in this example.
You will need to make sure that you have a .psrc file with
a runtime license or entries telling it where Licenseserver
is running as well as the various options you want set.

Some platform specific concerns:

On Linux Solaris HP

copy all of Insure's libraries from the lib directory on
the build machine to the lib directory you created on
the run machine.

For Linux or Solaris set the environment variable
LD_LIBRARY_PATH to include the lib directory

For HP set the environment variable SHLIB_PATH to
include the lib directory.


On AIX

The concerns are if the machines have the same basic oslevel
Type

oslevel

on both machines to determine if the same thing is returned.

And if they are the same oslevel do they have different libc's
and/or libpthread libraries. Insure creates it's libraries
below what amounts to

<your base insure directory>/lib.aix5/`oslevel`

And if you have one machine that oslevel returns 5.1.0.0 and
one that returns 5.2.0.0 you would merely

cd <your base insure directory>
slibclean
./configure aixlibs

on both of those machines and you would end up with directories of

<your base insure directory>/lib.aix5/5.1.0.0
<your base insure directory>/lib.aix5/5.2.0.0

and this present's no problem as it only requires that we build
with the correct -blibpath set.

But if machine A and machine B both return the same value
for oslevel and have different libraries installed then the
replacement libraries that insure has to create will not be
compatible.


However you could workaround this by first configuring
for an individual Developer then

cd <your base insure directory>
cp -R lib.aix5 Developer.lib.aix5

Then Developer would need to set his LIBPATH for anything
that he built with insure like

env LIBPATH=<your base insure directory>/Developer.lib:<your base insure directory>/Developer.lib5/5.2.0.0 ./a.out


On Windows:

First, consider, can you simply install a copy of Insure++
on the target machine and get a runtime license for that
installation?

That is by far the easiest approach.

If Visual Studio is not on the target machine, the easiest
way to get Insure++ to successfully install on the target is
to have it first invoke msdev through a network share. e.g. run

\\ahost\shared-C\Program\ Files\Microsoft\ Visual\ Studio\Common\msdev98\bin\msd
ev.exe

and then close DevStudio.

If the network share is still available when Insure++ is
installed, the installation should proceed normally, even
though DevStudio is not technically installed on the target.

If for some reason the above is not acceptable and the two
machines have the same exact OS, proceed with the following steps:

1. Copy the instrumented executables and the pdbs from host to target.
e.g. copy \\ahost\myprogram.exe C:\myprogram.exe ;
copy \\ahost\myprogram.pdb C:\myprogram.pdb

2. Copy required executables from host to target
(note that the directory must be named bin.Win32).:

insure.dll, vahfer.dll InsureSpy.exe gus.exe mspdb60.dll
msdia20.dll or msdia71.dll if using vc7 compiled executables,
insfixreg.exe InsurePanel.exe InsureVc7Addin.dll insure.exe
(insfixreg.exe checks for the existence of InsureVc7AddIn.dll
insure.exe, and InsureSpy).

e.g. copy \\ahost\Program\ Files\Parasoft\Insure++\bin.Win32\Inject.exe C:
\Insure\bin.Win32

3. You will probably also want to copy optional executables from
host to target:

islave.exe psrcdump.exe Insra.exe TCA.exe Inuse.exe inject.exe

4. Copy the ins.reg files from the host to the target.
Note that these must be located in a directory called lib.Win32
that is a sibling directory to the Insure_bin directory.

e.g. copy \\ahost\Program\ Files\Parasoft\Insure++\lib.Win32\ins.reg
C:\Insure\lib.Win32

copy \\ahost\Program\ Files\Parasoft\Insure++\lib.Win32\Win32\ins.reg
C:\Insure\lib.Win32\Win32

copy \\ahost\Program\ Files\Parasoft\Insure++\lib.Win32\MSVC++-5.0\ins.reg
C:\Insure\lib.Win32\MSVC++-5.0

copy \\ahost\Program\ Files\Parasoft\Insure++\lib.Win32\MSVC++-6.0\ins.reg
C:\Insure\lib.Win32\MSVC++-6.0

copy \\ahost\Program\ Files\Parasoft\Insure++\lib.Win32\MSVC++-7.0\ins.reg
C:\Insure\lib.Win32\MSVC++-7.0

copy \\ahost\Program\ Files\Parasoft\Insure++\lib.Win32\MSVC++-7.1\ins.reg
C:\Insure\lib.Win32\MSVC++-7.1

5. When the target machine has any version of Visual Studio installed:
A. Copy the necessary libtql* and tql files from the host.
e.g. copy \\ahost\Program\ Files\Parasoft\Insure++\lib.Win32\libtql*
C:\Insure\lib.Win32

copy \\ahost\Program\ Files\Parasoft\Insure++\lib.Win32\Win32\*.tql
C:\Insure\lib.Win32\Win32

copy \\ahost\Program\Files\Parasoft\Insure++\lib.Win32\MSVC++-5.0\*.tql
C:\Insure\lib.Win32\MSVC++-5.0
B. run
insfixreg.exe -install
from the command line.
This will create the lrt cache.

6. When the target machine does not have any Visual Studio installed.
A. run insfixreg -nospy -nointegration on the target machine.
B. Copy the contents of the lrt-cache on the host to the target
(note1 that target OS must be the same as the host OS)
(note2- the lrt-cache must be located inside the lib.Win32 directory on the target).
e.g.
copy \\ahost\Program\ Files\Parasoft\Insure++\lib.Win32\lrt-cache
C:\Insure\lib.Win32\lrt-cache

7. Optionally set gus-cache in the advanced tab of the InsurePanel.exe
e.g. gus_cache C:\gus-cache

8. Run the executable under inject.exe or InsureSpy.exe.

If the target windows OS is different than the host windows OS we may
be able to create the lrt-cache for you but this would only be done for
existing customers.
This discussion has been closed.