Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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.

like image 321
Kirsten Avatar asked Sep 02 '25 09:09

Kirsten


1 Answers

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

like image 172
Kirsten Avatar answered Sep 04 '25 02:09

Kirsten