Remote debugging: I have dll + corresponding PDB, but PDB will not be generated for the assembly

hiya Folks,

I have seen the following post: 

Assembly does not contain debug directory : DOTP-6889 (jetbrains.com)     ..However, in the remote location I can see that  "I have dll + corresponding PDB, ie they have identical timeStamps"  Also, these are internal, unsigned dll's..So i'm confused as to why it won't work. Many thanks for any help. PLease let me know if i should clarify..  Many thanks, Chris

4 comments
Comment actions Permalink

Hello,

Could you please let me know why pdb is not generated? The info about it should be specified in tool window Pdb Generation Status (https://www.jetbrains.com/help/resharper/Reference__Project_PDB_Generation.html).

In general, it could be that pdb is actually generated (this will be shown in the tool window), but the debugger takes only that pdb file which is located near the assembly. 
Also please specify in what folder pdb is located and in what folder you want to generate pdb file. 

Thank you.

0
Comment actions Permalink

hiya Angelina,

Thanks for replying. I have made progress. I want to be able to debug the remote code. I believe the simplest way to do this is to use "remote symbols", ie FallbackLoadRemoteManagedPdbs. (we don't have the original source code)

So, i create a consoleApp (the original solution was an MVC application, but i believe i don't need to physically replicate the project or physical directories of my remote deployment??) i do this and the symbols appear to be loaded..

(in the modules window:

userCode = N/A. 

symbolFile = xx.dll( server side symbols)

process = w3wp.exe

when i attach to the remote process, it does attach.

However, i have no idea how to attach a breakpoint to the source code files of the remote dll..ie I can't see the source code in any of the windows..Can you advise on the steps needed to locate the source code that Resharper has decompiled, so that i can attach my breakpoint? Should the code be in the UserCode section? If so, how do i get Resharper to generate the userCode?

I hope i've explained clearly. Please let me know if i should clarify.  Many thanks,  Chris 

 

0
Comment actions Permalink

Hello,

It seems that the problem is caused by missing sources while there's an original pdb file that is used by the debugger. The debugger keeps to use the original pdb which references the missing sources. To be more precise debugger uses the original pdb on the remote machine (where the debug process is started) and ReSharper generates pdb on the user machine.
It still isn't clear what is shown in "PDB generation status" window after you are trying to generate pdb. 
There's an option that could possibly help - please delete pdb on the remote machine and generate a new pdb there. You may use dotPeek/ReSharper/Rider started on the remote machine (not a user machine) for that.

0
Comment actions Permalink

Hiya Angelina,

 

Thanks for replying. I was able to get access to the source code via TFS. Regardless, I was able to use the remote symbols by using the following command on Msvsmon:

  • Msvsmon /FallbackLoadRemoteManagedPdbs 

Thanks for all your help!

Chris

0

Please sign in to leave a comment.