Topic
3 replies Latest Post - ‏2013-01-25T23:10:41Z by SystemAdmin
UV8V_Huy_Viet_Le
UV8V_Huy_Viet_Le
3 Posts
ACCEPTED ANSWER

Pinned topic Purify: Error: A reference to dead code

‏2013-01-10T13:40:16Z |
Hi there,

I'm getting the following error and Purify won't continue.

Purify: While processing file MyApp.exe:
Note: Incremental linking has been allowed.
Incrementally linked programs are not
supported by Purify.
Purify for Windows,
(C) Copyright IBM Corporation. 1992, 2012. All Rights Reserved.
Version 7.0.1.0-003 64-bit ; Build: 20120410.1500;
Windows 7 Enterprise 6.1 7600 Multiprocessor Free
Instrumenting:
MyApp.DLL 4008960 bytes

Purify: While processing file MyApp.DLL:
Error: A reference to dead code was just generated at 0x180195c7c+0x0 to offset 1a19b8

Purify: Error: A reference to dead code was just generated at 0x180195d35+0x0 to offset 1a1990

Purify: Note: Prolog offset too big

Purify: Note: Prolog size too big

...

Purify: Warning: Address 0x83020100 does not appear to be in any block.

Purify: Warning: Address 0x88060504 does not appear to be in any block.

...

The application and dll were build under VS 2010 in 64 bits with the recommended settings.

Any idea what to check?

Regards

Huy
Updated on 2013-01-25T23:10:41Z at 2013-01-25T23:10:41Z by SystemAdmin
  • SystemAdmin
    SystemAdmin
    2948 Posts
    ACCEPTED ANSWER

    Re: Purify: Error: A reference to dead code

    ‏2013-01-10T17:43:14Z  in response to UV8V_Huy_Viet_Le
    Hi Huy,

    1. Try deleting your application and associated .PDB file. Then, be sure to
    disable INCREMENTAL LINKING. Rebuild your application and see if the
    problem persists.

    2. If the problem still exists, please contact IBM Tech Support and provide
    them with a copy of your DLL for further analysis.

    Best regards,
    Don
    • UV8V_Huy_Viet_Le
      UV8V_Huy_Viet_Le
      3 Posts
      ACCEPTED ANSWER

      Re: Purify: Error: A reference to dead code

      ‏2013-01-25T21:55:35Z  in response to SystemAdmin
      1- We tried to rebuild the application from a clean check out and making sure to disable INCREMENTAL LINKING, we don't get the Note: Incremental linking has been allowed. Incrementally linked programs are not supported by Purify.

      But we still get the Error: A reference to dead code was just generated at....

      And Purify won't continue pass the Instrumentation Error dialog box.

      2- Will try to get IBM Tech Support a copy of the Exe and DLLs. But in the mean time if you have any other suggestion, let us know.

      Thanks,
      • SystemAdmin
        SystemAdmin
        2948 Posts
        ACCEPTED ANSWER

        Re: Purify: Error: A reference to dead code

        ‏2013-01-25T23:10:41Z  in response to UV8V_Huy_Viet_Le
        Hi Huy,

        Since you're using the newest version of Purify with a supported version of
        Visual Studio on a supported Windows OS --- you're doing everything right.
        So the best course of action is to go ahead and contact Tech Support. In the
        meantime, you can probably use the -purify-exclude-must option to have Purify
        ignore MyApp.dll. This would theoretically allow you to Purify the rest of
        the application (minus MyApp.dll). Of course, I'm making this suggestion
        without really knowing how important MyApp.dll is to your application. It's
        possible that 99% of your code is in that DLL, and in that case, it doesn't
        make sense to use -purify-exclude-must. To "exclude" MyApp.dll from being
        "fully instrumented", just do the following:

        1. Start Purify from the START MENU.
        (e.g., Start -> Programs -> IBM Rational -> IBM Rational PurifyPlus -> Purify)
        2. Click RUN on the Welcome Screen (if it pops up)
        3. Browse to locate your EXE, then hit the SETTINGS... button.
        4. Click on the POWERCHECK tab.
        5. Click on the CONFIGURE button.
        6. Click "CLEAR CACHE" to delete all files in the PurifyPlus cache dir.
        7. Click on the FILES tab.
        8. Under "Additional Options" enter the following:

        -purify-exclude-must=MyApp.dll

        Best regards,
        Don