IC5Notice: We have upgraded developerWorks Community to the latest version of IBM Connections. For more information, read our upgrade FAQ.
Topic
  • 3 replies
  • Latest Post - ‏2013-01-25T23:10:41Z by SystemAdmin
UV8V_Huy_Viet_Le
UV8V_Huy_Viet_Le
3 Posts

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

    Re: Purify: Error: A reference to dead code

    ‏2013-01-10T17:43:14Z  
    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

    Re: Purify: Error: A reference to dead code

    ‏2013-01-25T21:55:35Z  
    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
    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

    Re: Purify: Error: A reference to dead code

    ‏2013-01-25T23:10:41Z  
    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,
    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