Drilling down into references assembly code?

Hi,

I just download the trial of ANTS Profiler and I am a bit confused. I am used to DevPartner Studio's Profiler, and I am hoping that maybe I am just not understanding how to properly use this tool.

Basically, I have an application that references several external assemblies that provide Windows Forms controls. One of these controls has a problem where it is doing some animation and it's performing rather slowly. So I thought ANTS would help me track this down. Unfortunately, I can't get the profiler to give me any really useful information.


The Profiler shows me which methods are slow, but I can't walk into them. I can only see the source code for methods that are actually in the exe. It does not show source code for any methods that are inside the dll's referenced by the exe, even though these are built in DEBUG.

So, I have no idea where the method is being called from or what child methods it is calling that are causing the slowness. ANTS will not even show me the source code for any methods except those directly referenced by the exe I am running. Anything in a referenced assembly is not shown.

This seems epecially bizarre, since ANTS must be gathering information about these methods. It just doesn't show them in the results.

Am I doing something wrong? Or is ANTS really that limited?

Comments

  • Brian DonahueBrian Donahue Posts: 6,590 Bronze 1
    Hello,

    There are a few possibilities there. One is that the third-party assemblies are not the debug assemblies. I believe that the assemblies themselves also need to be built as debug in addition to the pdb being available. This should help you find the assemblies' source code, but it should be in the same location as when the assemblies were originally built.

    If all else fails, have the project to profile all methods rather than the ones with source. This will provide you with the component's method timings, although the source code view may or may not be available for them.
  • Hello,

    There are a few possibilities there. One is that the third-party assemblies are not the debug assemblies. I believe that the assemblies themselves also need to be built as debug in addition to the pdb being available. This should help you find the assemblies' source code, but it should be in the same location as when the assemblies were originally built.

    If all else fails, have the project to profile all methods rather than the ones with source. This will provide you with the component's method timings, although the source code view may or may not be available for them.

    The third-party assemblies in this case are assemblies I am building on my machine. They are definately being built in DEBUG mode. The PDB files are there and everything works fine. I can even run the application with a breakpoint and step into the code inside one of the referenced assemblies. But ANTS still won't show me source code for anything outside the executable. Could this be a compatability issue because I am using Visual Studio 2005?

    Oddly enough, I am comparing several performance profilers and I tried the one from JetBrains and theirs appears to have the same problem.
  • Brian DonahueBrian Donahue Posts: 6,590 Bronze 1
    When you profile all methods (not only the ones with source), then you see all methods from the third-party component?
This discussion has been closed.