Topic
3 replies Latest Post - ‏2013-02-08T17:38:07Z by SystemAdmin
SystemAdmin
SystemAdmin
2948 Posts
ACCEPTED ANSWER

Pinned topic Prolog offset too big and Prolog size too big

‏2013-02-06T18:06:56Z |
I’m using 64-bit version of PurifyPlus (7.0.1.0-003 64-bit Build 20120410.1500) 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, in running it in PurifyPlus, I get the following error:

Instrumenting:
geoduck.dll 11757568 bytes

Purify: While processing file C:\Geoduck\devel\MathCore\native\windows\win64\geoduck.dll:
Note: Prolog offset too big

Purify: Note: Prolog size too big

Purify: Note: Prolog offset too big

Purify: Note: Prolog size too big

... 'offset' and 'size' error messages are repeated multiple times.

This DLL is one of the main DLLs for the application I'm trying to run through Purify.
What can be done to get Purify to work with my DLL?
Updated on 2013-02-08T17:38:07Z at 2013-02-08T17:38:07Z by SystemAdmin
  • SystemAdmin
    SystemAdmin
    2948 Posts
    ACCEPTED ANSWER

    Re: Prolog offset too big and Prolog size too big

    ‏2013-02-06T20:15:58Z  in response to SystemAdmin
    Hi mcart,

    Are you saying your Java program loads a C/C++ dll?

    1. First, try instrumenting your DLL in "standalone" mode. Specifically,
    open a CMD prompt and type the following:

    DOS> purify /run=nogeoduck.dll

    My guess is that you'll still get the instrumentation errors. If that's
    the case, please contact Tech Support (1-800-IBM-SERV) and report this
    issue. Be sure to have your IBM Customer Number handy when you call. If
    possible, be prepared to give Tech Support a copy of your dll.

    2. Also, note that the only real way to Purify a C/C++ dll loaded by a Java
    application is to use Selective Instrumentation. This may not be possible
    in all cases. For more information about Selective Instrumentation:

    http://www-01.ibm.com/support/docview.wss?uid=swg21194331

    Best regards,
    Don
    • SystemAdmin
      SystemAdmin
      2948 Posts
      ACCEPTED ANSWER

      Re: Prolog offset too big and Prolog size too big

      ‏2013-02-08T15:47:35Z  in response to SystemAdmin
      Our Java application uses native C and C++ code through JNI. We want to use Purify to analyze our memory usage at the C and C++ levels.

      I tried #1, and it had the same instrumentation errors. Unfortunately, the DLL can not be distributed outside the company, so we would not be able to give a copy to Tech Support.

      As for #2, the build process for our application is very complex and relies on many libraries. It looks like the Selective instrumentation involves compiling using the /MT option instead of /MD, which in our case would not be trivial (and, as you suggest, may not be possible). We are looking into this.

      Let me know of any other ideas.
      Thanks,
      Mike
      • SystemAdmin
        SystemAdmin
        2948 Posts
        ACCEPTED ANSWER

        Re: Prolog offset too big and Prolog size too big

        ‏2013-02-08T17:38:07Z  in response to SystemAdmin
        In the meantime, I came across the solution (from looking at the article on "PurifyPlus Performance and Scalability", http://www.ibm.com/developerworks/rational/library/07/0313_cherkasov/).

        SOLUTION: use the additional option -large-address-aware=yes, which is set on the "File" tab in the "Executable Settings". This resolved my "too big" issue.