Search code examples
visual-studio-debuggingxaf

Unable to step into 3rd party code using debugger


I want to step into the DevExpress XAF code using the debugger.

I have asked about it here but am having problems spotting what I have done wrong.

VS2019 16.2.2 Dev Express XAF 19.1.5 Winforms project The break point is in Program.cs at

winApplication.Start

which is in

DevExpress.ExpressApp.Win.WinApplication

I downloaded the .pdb files and set up the Symbols Symbols set up

I un-checked Tools->Options->Debugging->Enable Just My Code

At the breakpoint Debug->Windows->Modules shows that the Symbol file for mscorlib.dll is loaded.

mscorelib

Exception settings are

Exception settings

[Update]

Lance Li pointed out the cannot find or open the pdb file message cannot find or open the pdb file

When I select Symbol Load Information it mentions the location is

C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\DevExpress.Utils.v19.1\v4.0_19.1.5.0__b88d1754d700e49a\DevExpress.Utils.v19.1.pdb: Cannot find or open the PDB file.

I tried clicking the load all symbols button in the symbols screen but it did not help.

I attempted to locate the pdb but got a message

A matching symbol file was not found in this folder

matching symbol file not found

I tried suspending Resharper and that did not help.

[Update]

I noticed that it is looking for the file in the GAC

In the GAC

I see that there is a copy of mscorlib.pdb in d:\pdb\19.1 Could it be that that somehow re-arranges something to expect to find the Dev Express .pdbs in the GAC?

The source code is on GitHub

[Update]

In the DevExpress question Dennis points out that when he hits F11 Visual Studio asks for a source code path. I think this happened once for me I have selected the default path. Now Visual Studio no longer asks.

I tried re-cloning the application but it did not help. I tried opening up with VS2017 but that did not help.

[Update]

I installed on to a different computer then at the break point I received a dialog box to select the source code.

I located the source at

Directory of C:\Program Files (x86)\DevExpress 19.1\Components\Sources\DevExpress.ExpressApp\DevExpress.ExpressApp\DevExpress.Persistent.Base

Then I was able to step through the Dev Express code on the second computer.

Now to figure out how to correct the behaviour on the first computer.

[Update] I was able to get the Find Source dialog up by the following method. Run to the break point , then select Debug -> Windows -> Modules. Then right click an unloaded module and un-check Always Load Automatically.

After that when I ran again I got the dialog allowing me to locate the source.


Solution

  • My problem was that Visual Studio was looking in the wrong place for the source. Further to that, because it had been told to look in the wrong place automatically then I did not receive a dialog asking me to locate the source.

    So as to receive the Find Source Dialog , the trick was to unckeck the Always Load Automatically option.

    To get at this option, I ran to the break point and then selected Debug -> Windows -> Modules. Then right clicked an unloaded module and un-checked Always Load Automatically.

    A different way could have been to add the correct path to the Solution->Properties->Common Properties-> Directories Containing Source Code