How do I remedy "The breakpoint will not currently be hit. No symbols have been loaded for this document." warning?

Asked 2023-09-20 20:59:00 View 732,862

A C# desktop application (on the Visual Studio Express edition) worked, but then it didn't work 5 seconds later.

I tried the following:

  • Ensure debug configuration, debug flag, and full debug information are set on all assemblies.
  • Delete all bin and obj folders and all DLL files related to the project from my entire machine.
  • Recreate projects causing the problem from scratch.
  • Reboot.

I have two Windows Forms projects in the solution. One of them loads the debug information, one doesn't. They both refer to the assembly I'm trying to get debug information on in exactly the same way in the project file. Any ideas?


I want to add here, mostly for myself when I come back to review this question, that symbols are not loaded until the assembly is loaded, and the assembly is not loaded until it is needed. If the breakpoint is in a library that is only used in one function in your main assembly, the symbols will not be loaded (and it will show the breakpoint as not being hit) until that function is called.

  • Made them both load debug info. And try to unload one of the projects you do not run at the moment. - anyone
  • When debugging, goto to the Debug, Windows, Modules view. This will show info about loaded modules and symbol status. You can right click a module and try to load the symbols from another location. - anyone
  • Express edition does not have Modules view. - anyone
  • Good point about assemblies not loaded until needed. The debugger will show that the breakpoint won't be hit, but the display will change/your breakpoint WILL be hit once the assembly is loaded. A cheesy workaround this UI issue would be to make a call to the assembly at program start to force the assembly to be loaded. - anyone
  • I particularly like how this happens out of no where after doing nothing that would remotely cause everything to break and now I have to search through 500 non-working stack overflow suggestions to figure out why I cant suddenly debug code anymore after everything working like usual forever. Love it! - anyone

Answers

Start debugging, as soon as you've arrived at a breakpoint or used Debug > Break All, use Debug > Windows > Modules. You'll see a list of all the assemblies that are loaded into the process. Locate the one you want to get debug info for. Right-click it and select Symbol Load Information. You'll get a dialog that lists all the directories where it looked for the .pdb file for the assembly. Verify that list against the actual .pdb location. Make sure it doesn't find an old one.

In normal projects, the assembly and its .pdb file should always have been copied by the IDE into the same folder as your .exe, i.e. the bin\Debug folder of your project. Make sure you remove one from the GAC if you've been playing with it.

Answered   2023-09-20 20:59:00

  • The question is about express edition, to which this answer does not apply, unfortunately. Actually none of the answers work for me, I also tried removing the Debug folder and rebuilding. - anyone
  • What can I do if my library .pdb file in bin\Debug of main project, but in modules I dont see this assembly? And I can not debug library... stackoverflow.com/questions/73359928/… - anyone

Check to make sure that you are not in release but in Debug.

When in debug:

First try rebuilding your project by right mouse click the project > Rebuild If that doesn't work, try a clean of the project (right mouse click on the project > clean).

If that didn't work check this:

  1. Right mouse click your project
  2. Select [Properties]
  3. Select the [Build] tab
  4. Make sure [Define DEBUG constant] and [Define TRACE constant] are checked
  5. Make sure [Optimize Code] is unchecked
  6. Click the [Advanced] button at the bottom of the Build tabpage
  7. Make sure that [Debug Info:] is set to [full]
  8. Click [OK] and rebuild the project ;-)

(step 7 generates the .pdb files, these are the debugging symbols)

Answered   2023-09-20 20:59:00

  • In C++, we can enable "generate minimal debug info for release", where the .pdb file acts like so-called "source-maps" (known from JavaScript), but without losing any optimization or performance. - anyone
  • Cleaning the project did it for me - anyone

Uncheck the "Enable Just My Code" option in the

Tools/Options/Debugging/General

Answered   2023-09-20 20:59:00

  • Just to be clear: In VS 2017, this setting is specifically in the Tool, Options dialog under the Debugging, General pane (there is no "Debug" pane, to be accurate). The checkbox is called "Enable Just My Code" not "Just My Code". - anyone

Just something simple to try - you may have tried it already. Right click the Solution in solution explorer, click "clean solution", this deletes all the compiled and temporary files associated with a solution.

Do a rebuild of the solution and try to debug again.

I've also had troubles with breakpoints multiple projects in a solution - some compiled as x86, some as x64.

Answered   2023-09-20 20:59:00

  • For me it was the solution as well. But a hint for the others: be aware - if you have a web application where IIS is set to your project folder, you must stop IIS before you clean/build your application, as the DLL is loaded by IIS - therefore it is not able to delete the DLLs and the debugger will still use your previous bytecode. - anyone

The selected answer led me to fix my problem. But I need to do a few things more:

Even with "Debug" selected in the dropdown:

enter image description here

And in the project Properties > Build:

enter image description here

The Visual Studio was not loading symbols to a specific project. So in that dropdown I select "Configuration Manager" and saw that the settings to my web project was incorrect:

enter image description here

enter image description here

Then I set that to "Debug" and it started to generate the .pdb file. BUT I need to manually copy the PDB and DLL and put in the folder that VS was looking (here is where the selected answer helped me):

enter image description here

Answered   2023-09-20 20:59:00

  • Key for me was that the 'Deploy' box wasn't checked, thus the pdb wasn't being re-deployed after building - anyone

Sometimes, even though it gives you this error, the Breakpoint still gets hit, so just ignore the error.

This happens fairly often in the Views of an MVC web app, i.e. .cshtml.

Answered   2023-09-20 20:59:00

  • Similar issue. I ended up cleaning solution, rebuilding, and crucially had to restart visual studio afterwards. Then razor breakpoints got hit. - anyone

I was able to fix the error by simply setting the option in the 'Attach to Process' to 'Automatically determine the type of code to debug' option as shown in the attached screenshot.

Simply follow the steps below:

 - Go to **Debug** from the menu bar 
 - Click on **Attach to Process** 
 - Near the **Attach to** option, click on the **Select** button 
 - The **Select Code Type** window will appear 
 - Now select the option **Automatically determine the type of code 
   to debug** and click the OK button.

Fixed Debugging Error

Answered   2023-09-20 20:59:00

  • For others who have tried everything on this page, I fixed my issue by switching to 'Managed (v4.5, v4.0) code'! - anyone
  • I had "automatically determine..." set. It does not work. I fixed by setting "Managed (.net Core, .NET 5+) + Managed (Native compilation) + Native. - anyone
  • Great! That was my solution for this issue. It's very frustrating that Microsoft doesn't mention this anywhere in the debug symbol documentation. - anyone

Check if your .pbd file is missing in your bin/Debug folder. If it is then go to "Properties" of your project, selected "Build" and then "Advanced" at the bottom. Choose "full" under "Debug info" in the new window that appeared. This was my issue and solved it for me.

Showing where to find the setting

Answered   2023-09-20 20:59:00

Debug > Windows > Modules to see what modules were being loaded put me in the right direction.

In my case IIS Express seemed to be loading a different DLL from the temporary ASP.NET files.

The solution?

  1. Browse to C:\Users\<YOUR USER>\AppData\Local\Temp\Temporary ASP.NET Files\vs
  2. Delete everything in this directory!

Answered   2023-09-20 20:59:00

In my case "Optimize Code" was checked in my project properties. This caused VS to see my assembly as "not my code", and in turn, it did not load symbols for it.

The solution was to uncheck this. Location of Optimize Code checkbox

Answered   2023-09-20 20:59:00

Try running visual studio as an administrator within windows.

Answered   2023-09-20 20:59:00

You need to enable "Generate debug info" in compiler settings

Answered   2023-09-20 20:59:00

I tried everything mentioned above, but nothing worked. [Clean solution, and check for PDB files etc.]

Even publishing the same solution did not resolve the issue.

Then I went to back to what I usually do to resolve (fool this stubborn Visual Studio)

All I did was to make a deliberate change in code and publish the solution. Then I reverted the change and published again.

Voila [PDB files rid of evil spirits].. Not a smart resolution, but this did work.. :-|

Answered   2023-09-20 20:59:00

  • I experienced the same scenario and this worked for me. Thanks - anyone

We found the cause of our problem. This code was using the "CodeBehind" attribute in the Page directive of the .aspx file instead of the "CodeFile" attribute (ASP.NET 2.0 and beyond). After days of desperation, a simple search and replace solved the problem.

Answered   2023-09-20 20:59:00

Webapplications (IIS Express) only:

  • Rightclick IIS Express Tray and close the IIS.
  • Clean Solution

IIS Tray

Answered   2023-09-20 20:59:00

Option "Start debugging, Debug + Windows + Modules" does not exist in Microsoft Visual Studio Express 2013 edition.

Unchecking "Use Managed Compatibility Mode" in Tools Options Debugging fixes this.

Answered   2023-09-20 20:59:00

1. Clean solution and Rebuild
2. Check the configuration is set to Debug
3. Make sure that the PDB file is in the Debug folder it self
4. From Debug menu click Enable All Break points

Answered   2023-09-20 20:59:00

  1. Make sure you're in Debug and not in release by choosing debug in the dropdown menu, as shown in the picture below.

enter image description here

  1. Then, try cleaning your project by clicking the right button in your mouse on the solution in the solution explorer window and choosing Clean solution.

enter image description here

  1. Then rebuild your solution by clicking the right button in your mouse on the solution in the solution explorer window and choose Rebuild solution

enter image description here

Answered   2023-09-20 20:59:00

Check are the following two setting the same in Visual Studio:

Right click test project, go to Properties, Build tab, and look at Platform target

Mine are all set to "Any CPU" so x64

enter image description here

On the Main Menu bar, go to Test, Test Settings, Default Processor Architecture

Mine was set to X86

enter image description here

Changing this to X64 to match above setting made the built in Visual Studio menu “Debug Test(s)” work and hit breakpoints that were previously ignored with the message “The breakpoint will not currently be hit. No symbols have been loaded for this document”.

Update:

For Visual Studio 2019 the menus have been moved around a bit: enter image description here

Answered   2023-09-20 20:59:00

I also had the same issue what I rebuild the whole solution (including refereced projects) in x86( or x64)

Even though I set all of my projects to x86 from Configuration Manager (Build->ConfigManager) some of my projects were not set to x86.

So Just to make sure right click on the project and follow

project -> properties -> Debug Tab, verify Configuration and Platform.

Answered   2023-09-20 20:59:00

Instead of doing all these things just Close and reopen

Answered   2023-09-20 20:59:00

The .dll where I want to stop debugger and the associated .pdb files where copied near the .exe file. Those files had an older date so I thought they weren't updated in the runtime. I manually deleted them, Visual Studio create another pair AND put this new pair near the .exe. Now the breakpoint works!

Maybe Visual Studio cannot copy and REPLACE existing files (.dll and .pdb) near the .exe since there are another there. So if I deleted manually then VS could create new one near .exe.

I think that the root cause of the problem is that the Visual Studio use another file in runtime, no the file from the project, with the stop.

Answered   2023-09-20 20:59:00

Project Properties (then select your build config) > Build Tab > Advanced... > Debug Info (dropdown)

Set to 'all' or 'pdb-only' then rebuild

Answered   2023-09-20 20:59:00

  • i did pdb_only, also clean and restart browser - anyone

This took me a while tried other options above and for some strange reason debugging stopped working.

Tool -> Options -> Debugging -> General -> (untick) "Require source files to exactly match the original version" option

Answered   2023-09-20 20:59:00

I was integrating a C# application with a static library using VS10 - which I'm new to.

I wrote a managed code dll to interface them. I could set breakpoints everywhere but the static lib.

I got the message described above - no symbols have been loaded for this document. I tried many of the suggestions above.

I could see that the symbols weren't being loaded. I finally noticed a check box Configuration Debug, Enable unmanaged code debugging.

That allowed me to set breakpoints in the static lib functions.

Answered   2023-09-20 20:59:00

After trying a bunch of these, the thing that ultimately worked for me was this:

In Debug > Options > General, uncheck Enable Edit and Continue.

Answered   2023-09-20 20:59:00

  • I ran into the same problem a few days later and the above solution didn't knock it out for me this time. I'm running my solution using docker-compose and it turns out the problem was with the dockerfile of my project. Whatever VS originally dumped into that file wasn't building the image correctly or putting it in the right place. - anyone
  • I can not change this setting, it's grayed out. I am running VS as administrator. - anyone

In my case, I was compiling a class library (DLL).

No modules seem to be loaded in Debug -> Modules, so I couldn't even load the symbols manually.

My solution was to add this line to my code:

System.Diagnostics.Debugger.Launch();

Once this code is reached, an exception is triggered and .NET Framework shows a dialog box asking which Visual Studio (i.e. new instance of VS 2008, new instance of VS 2013, etc) you want to use to debug the program.

You can choose the existing instance of VS with your project loaded.

This will attach the process to your VS session and load all symbols, and now you can debug your project.

Of course, the compilation has to be done using the Debug configuration, not Release.

Answered   2023-09-20 20:59:00

For an ASP.Net application, check the properties of the site, ASP.NET tab. Ensure that the correct ASP.NET version is selected.

Answered   2023-09-20 20:59:00

this happened to me after copy paste another webservice asmx file into an existing webservice, resulting in the same error when trying to debug the recently added service, to be able to debug I had to start without debug, then attach to the process. its weird but its the only way i found to be able to debug.

Answered   2023-09-20 20:59:00

I think the source if this error is, the debug symbols have a hard time surfacing to the solution after building for release.

I tried all the other answers -- generally, regenerating .pdb symbols or checking their location, cleaning and rebuilding project, ensuring active configuration is not Release etc.

What eventually worked for me is right-clicking on the project in solution explorer > Debug > Start new instance.

Answered   2023-09-20 20:59:00

  • his kludgy. But I will take kludgy now if that is the best that I can get. Your solution is working. But for me I needed to test a WebApi DLL. For that to debug right I need two instances of Visual Studio open in order to debug them correctly because debug start new instance apparently doesn't let you run two different instances at the same time - the last one supersedes the first one. – But that does't work. So I need another fix. John Foll - anyone