locked
Profiler fails to resolve symbol and module names RRS feed

  • Question

  •  

      Hi.  It seems this is a comman subject, it looks like I'm having problems resolving symbols.  Whats happening is after I collect instrumentation performance data, the results show hexadecimal numbers for the module and symbol names.  I was wondering if, given what I've tried, someone can offer some advise.

      Its a tough scenario to setup as the assembly is signed and I'm running on an x64 machine.  Here's my notes on what I've done.  Not that I've substitued <projectPath> and <projectName> below for the actual values.

     

    The following configuration steps were done:

     

    - Tools -> Options -> Performance Tools -> "Automatically serialize symbol information" is set.
    - Tools -> Options -> Debugging -> Symbols:
      - Added "http://msdl.microsoft.com/download/symbols/error.htm" as a symbols path".
      - Set "c:\temp\symbols" as location to cache symbols from symbols server, created that directory.
      - Added "<projectPath>\bin" to symbols path
      - Added C:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\ to symbol path
      - Added C:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\6bb408f1\991e2ec4 to symbol path
    - Modified Solution Properties -> Configuration (Active Build) Platform to be x86  (this is an x64 machine, and initially the project was built x64)
    - Added post-instrumentation step "C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bin\sn" -Ra "C:\<projectPath>\bin\<projectName>.dll" "C:\<projectPath>\key.snk"

    - I've removed the filter from Performance Reports Summary.

     

    The following steps were used in each capture attempt:


    1. Rebuild full application (sometimes I get empty results if I don't don't rebuild first, it seems)
    2. Launched with Profiling paused (I still get a dialog warning that the assembly needs to be resigned, the output indicates calling sn.exe to resign the assembly succeeded)
    3. Ran some pages on the site
    4. Started profiling
    5. Ran the same pages on the site
    5. Stopped Profiling

     

    The following results were copied from the output:

     

    Profiler started
    Instrumenting C:\<projtectPath>\\bin\<projectName>.dll in place
    Info VSP3049: Small functions will be excluded from instrumentation.
    Microsoft (R) VSInstr Post-Link Instrumentation 9.0.21022 x86
    Copyright (C) Microsoft Corp. All rights reserved.
    File to Process:
       C:\<projectPath>\bin\<projectName>.dll --> C:\<projectPath>\bin\<projectName>.dll
    Original file backed up to <projectPath>\bin\<projectName>.orig
    Warning VSP2001 : <projectPath>\bin\<projectName>.dll is a strongly named assembly.  It will need to be re-signed before it can be executed.
    Successfully instrumented file <projectPath>\bin\<projectName>.dll.
    Warning VSP2013 : Instrumenting this image requires it to run as a 32-bit process.  The CLR header flags have been updated to reflect this.
    Running Post-Instrument Step
    Microsoft (R) .NET Framework Strong Name Utility  Version 3.5.21022.8
    Copyright (c) Microsoft Corporation.  All rights reserved.
    Assembly '<projectPath>\bin\<projectName>.dll' successfully re-signed
    Instrumentation Succeeded:C:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\6bb408f1\991e2ec4\App_global.asax.kcwn0-rc.dll
    Successfully attached to process: 3972
    Instrumentation Succeeded:C:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\6bb408f1\991e2ec4\App_Web_rjoomvqw.dll
    Instrumentation Succeeded:C:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\6bb408f1\991e2ec4\App_Web_byevpghe.dll
    Instrumentation Succeeded:C:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\6bb408f1\991e2ec4\App_Web_npll57va.dll
    Instrumentation Succeeded:C:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\6bb408f1\991e2ec4\App_Web_zxrobwhf.dll
    Instrumentation Succeeded:C:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\6bb408f1\991e2ec4\App_Web__1ksjm1h.dll
    VSPerformance Automation warning: Warning VSP2348 : 2 buffer(s) lost in association with process 3972.
    Exited from process: 3972
    Collection file exited: C:\ASM_ITMonitoring\ESM_ITMonitoring\ESM Portal\LCATOMRD080601(9).vsp
    Profiler exited
    Analysis completed successfully
    ===================== Profiling Complete =====================

     

      I have a couple guesses of what is going wrong:

     

      - Perhaps symbols are loading for my DLL, but the sampled data is only being collected for other components I don't have symbols for.

      - Some DLLs are being instrumented/ran from a temporary folder used by ASP.NET, maybe this is confusing the debug symbol lookup (though I added this path to my symbols paths, and it seems the same temporary path is being used on every run)

    Monday, June 2, 2008 1:18 AM

Answers

All replies