6

I've set the options "Use symbol server" and just to be certain the correct symbols were loaded, I removed the symbol cache. When running my ASP.NET application I saw the popup telling me the symbols were being downloaded.

I've disabled "Just my code", and enabled "Enable .NET Framework source stepping". In the past this was enough to be able to step through .NET code libraries.

When I break using IntelliTrace, all non-usercode in the call stack is greyed out. Checking the modules-window it says for instance for System.Web.Dll and mscorlib "Symbols not loaded" for System..dll and System.Xml.dll it says "Symbols loaded".

Normally you can then right-click and select "Load symbols", but this is grayed out. Any idea to get this working again?

http://www.undermyhat.org/blog/wp-content/uploads/2011/03/Grayed-out-Load-Symbols.png

Abel
  • 56,041
  • 24
  • 146
  • 247

2 Answers2

3

Because Symbol loading can be slllloowww and you aren't always interested in every symbol table, there's an option to Load a particular one manually. The reason that is greyed out is because you are loading them automatically. Here's a screen shot with manual set and the option enabled.Load Auto

To get in this state, I setup my Symbol Settings to load all symbols Except, and I added NHibernate to the list. When I break in NHibernate, the Symbols are greyed out and can be loaded manually: NHibernate View

I then I have the option to load them: enter image description here

Ritch Melton
  • 11,498
  • 4
  • 41
  • 54
  • +1 because you pointed me in the right direction. But the solution appears different. What you proposed, I had tried already, but without success. However, why it didn't load the symbols was because (1) I clicked on an exception in the history of IntelliTrace and (2) the program had already crashed with an uncatchable exception (ASPX compile error). Breaking on an arbitrary function (using Break on Function) worked, and then I could load the symbols as I was used to do. Shall we upgrade your answer or shall I add mine? – Abel Mar 07 '11 at 02:42
  • I'll try to merge them for reference sake. – Ritch Melton Mar 07 '11 at 02:46
  • 1
    Actually, lets leave them separate and you can add yours and mark it. That'll make the most sense. – Ritch Melton Mar 07 '11 at 02:47
3

Ritch's answer pointed me in the right direction, but it wasn't the solution. Here's what was happening:

When you click Call Stack in a history-event of IntelliTrace, this will show the stack-trace. Normally, in a stack-trace you can right-click and load symbols, however:

  • From an IntelliTrace historic event, this will always be disabled. Break normally in your code, and this will work;
  • You can't even load symbols from the Modules View when in a historic event (also grayed out);
  • When a module is specified as "always load manually" (aptly named "Default", see screenshot in Ritch's post) it will not automatically be loaded. When you then load it by hand, it still won't be possible to step into framework code (at least, it wasn't possible for me, possibly a VS 2010 bug). To solve this:
    • select "Always load automatically" (note: you won't see a checkmark signifying that you selected this!) and
    • break execution and
    • (arguably) stop the development web server (this helped for me in some cases)
    • start debugging again.

To be honest, I find this relatively unclear behavior of Visual Studio. In the past, I apparently was lucky enough to have the settings set correctly. This is not "it just works", but only if you meticulously go through the correct procedure, it'll work as expected.

Community
  • 1
  • 1
Abel
  • 56,041
  • 24
  • 146
  • 247