Topic
  • 3 replies
  • Latest Post - ‏2013-02-18T03:24:04Z by eliot_shao
eliot_shao
eliot_shao
2 Posts

Pinned topic Purify 7.0.1 load incorrect DLL

‏2013-01-04T09:24:29Z |
I'm using PurifyPlus version 7.0.1.0-003 64-bit Build: 20120410.1500 on 64-bit Win7 Prof. The program I'm trying to investigate has dependency on xml4c_5_8.dll, which is located in the same directory of the program. While trying to run my program, I always got the following error. It seems Purify searched for the DLL in directory other than my program's directory by default, and as a result, a 32-bit DLL has been located. Is there a way to change Purify's search path?

Purify: While processing file c:\program files (x86)\ibm\rationalsdlc\common\XML4C_5_8.DLL:
Error: Executable file is in an incompatible format
(may be 16-Bit).
Thanks in advance!
Eliot
Updated on 2013-02-18T03:24:04Z at 2013-02-18T03:24:04Z by eliot_shao
  • SystemAdmin
    SystemAdmin
    2948 Posts

    Re: Purify 7.0.1 load incorrect DLL

    ‏2013-02-05T23:21:32Z  
    I have a problem that shows very similar behavior to what you describe. I’m using the same version of PurifyPlus (7.0.1.0-003 64-bit same build) on Windows 7 Enterprise SP1. I am running a Java program using 64-bit Java 1.6.0_37. The command I’m using to run the Java program works fine from a DOS command prompt. However, when I run it in PurifyPlus, it has 2 dependencies that it trips up on – verify.dll and java.dll, which are provided by the Java Runtime Environment. When PurifyPlus instruments these DLLs, it brings up a window with the following content
    Instrumentation Error
    “There was an error instrumenting C:\Program Files\Java\jdk1.6.0_37\jre\bin\verify.dll”

    Instrumentation log:
    . . .
    Purify: While processing file C:\Program Files (x86)\Java\jdk1.6.0_37\jre\bin\client\JVM.DLL:
    Error: Executable file is in an incompatible format
    (may be 16-Bit).

    A similar message is brought up for java.dll. Not sure why PurifyPlus brought in a 32-bit JVM.DLL – I agree that it appears Purify is searching for DLLs in additional paths, especially since my program works from a DOS command prompt.
    Any progress or answers?
  • SystemAdmin
    SystemAdmin
    2948 Posts

    Re: Purify 7.0.1 load incorrect DLL

    ‏2013-02-06T16:12:02Z  
    I have a problem that shows very similar behavior to what you describe. I’m using the same version of PurifyPlus (7.0.1.0-003 64-bit same build) on Windows 7 Enterprise SP1. I am running a Java program using 64-bit Java 1.6.0_37. The command I’m using to run the Java program works fine from a DOS command prompt. However, when I run it in PurifyPlus, it has 2 dependencies that it trips up on – verify.dll and java.dll, which are provided by the Java Runtime Environment. When PurifyPlus instruments these DLLs, it brings up a window with the following content
    Instrumentation Error
    “There was an error instrumenting C:\Program Files\Java\jdk1.6.0_37\jre\bin\verify.dll”

    Instrumentation log:
    . . .
    Purify: While processing file C:\Program Files (x86)\Java\jdk1.6.0_37\jre\bin\client\JVM.DLL:
    Error: Executable file is in an incompatible format
    (may be 16-Bit).

    A similar message is brought up for java.dll. Not sure why PurifyPlus brought in a 32-bit JVM.DLL – I agree that it appears Purify is searching for DLLs in additional paths, especially since my program works from a DOS command prompt.
    Any progress or answers?
    For the issue of loading the incorrect verify.dll and java.dll, I discovered a solution. In my System Path on Windows 7, I had the following:

    <other stuff>…;C:\Program Files (x86)\Rational\common; C:\Program Files (x86)\Java\jdk1.6.0_37\jre\bin\client; C:\appl\IBM\RationalPurifyPlus

    I think these are added in installing PurifyPlus. I removed the "Java jdk" reference, leaving:
    <other stuff>…;C:\Program Files (x86)\Rational\common; C:\appl\IBM\RationalPurifyPlus

    After saving the updated Path and bringing up 64-bit Purify, it brought in the correct verify.dll and java.dll. This solution may also relate to the original post on this thread as well. Now on to the next problem I'm having in getting Purify to work with my application ...
  • eliot_shao
    eliot_shao
    2 Posts

    Re: Purify 7.0.1 load incorrect DLL

    ‏2013-02-18T03:24:04Z  
    For the issue of loading the incorrect verify.dll and java.dll, I discovered a solution. In my System Path on Windows 7, I had the following:

    <other stuff>…;C:\Program Files (x86)\Rational\common; C:\Program Files (x86)\Java\jdk1.6.0_37\jre\bin\client; C:\appl\IBM\RationalPurifyPlus

    I think these are added in installing PurifyPlus. I removed the "Java jdk" reference, leaving:
    <other stuff>…;C:\Program Files (x86)\Rational\common; C:\appl\IBM\RationalPurifyPlus

    After saving the updated Path and bringing up 64-bit Purify, it brought in the correct verify.dll and java.dll. This solution may also relate to the original post on this thread as well. Now on to the next problem I'm having in getting Purify to work with my application ...
    Thanks for sharing your solution!

    Here is the environment variables setting on my Windows 7. I used to think that path to "RationalSDLC\common" leads to incorrect DLLs, but it seems not.

    The PATH for system variables on my Windows 7 looks like:
    ... C:\Program Files (x86)\IBM\RationalSDLC\common; ... C:\Program Files\IBM\RationalPurifyPlus; ...

    The PATH for my user variables looks like:
    ... C:\Java\6.0.0_7\bin; ...

    I need to keep path of JDK as some of my applications rely on that to load, so it is moved to my user variables. For now correct DLLs can be instrumented by Purify Plus.

    Maybe Purify Plus should provides an option to set JDK environment, just like what eclipse does, to avoid instrumenting incorrect DLLs.