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

A C# desktop application on the 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.

This question is related to c# .net visual-studio debugging breakpoints

The answer is


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.


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 went through all answers nothing helped much. In my case problem with web.config file. It was <compilation debug="false" strict="true"

I changed to

<compilation debug="true" strict="false". Now I can debug application.


Check if 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 6 generates the .pdb files, these are the debugging symbols)


My experience is in trying to remotely debug a web app I deployed to an AWS server. The problem is that when I deploy to the server, it compiles and creates the exe and pdb files at that time. But the local compiled exe and pdb file does not match the deployed files on the server, so when I attach to the remote process and then try to load symbols in Debug/Windows/Modules for my project's DLL, it finds the local pdb file and I get an error "PDB does not match image."

So after trying all the above suggestions, this is what I did to make breakpoints work:

  • Connect and log in to the remote web server.
  • Go to the folder where the exe and pdb files are kept. In my case, it was C:\inetpub\AspNetCoreWebApps\app.
  • Copy the *.pdb files in that folder.
  • Paste the pdb files to your local computer where it's looking for the project's pdb files. You will find the path in Debug/Windows/Modules, right-click your DLL and select Symbol Load Information...
  • Now you can use Debug/Attach to Process... to attach to the remote process and it should load the symbols since the pdb now matches the remote exe file.

Once you are done remote debugging, you can rebuild the project to restore the current pdb files so you can debug locally.

It may be possible to add a path to the symbol path list that would load the pdbs from the remote server, but if there is I have not found it yet. And that may be more cumbersome than simply copying the pdb files from the remote server to your local VS environment.


My reason was deprecated Telerik OpenAccess ORM. Installed new version then it works. Must download and install. Only NuGet updating did not work. someone else also mentioned it


I had the same problem. I tried EVERYTHING in this post.

My solution?

Change the Visual Studio version (I was trying to open it on VS2013, ended up opening it on VS2015)


I ran into this problem trying to debug the background agent of a WP7 app. As it turned out, this debugging issue was only a symptom of the real problem: My background agent wasn't running at all in debug mode. I had followed the following guide on how to implement a background agent: http://msdn.microsoft.com/en-us/library/hh202941(v=vs.92).aspx

... but forgot to add

#define DEBUG_AGENT

which meant that my agent was never actually being started in debugging mode. Once this line was added, the problem that this thread is about went away.


I know I'm years late, but I thought I'd done something wrong and followed the above steps then I realised I'd set the solution configuration to 'Release' by mistake :)


I was using IE8 and trying to make changes to some JavaScript files. Although the code was being executed, it would not stop at the breakpoints and I was getting the same message on the breakpoints. Upgrading to IE11 fixed the issue for me.


In my case, it was because my publishing profile (Publish to local IIS site) was somehow set to Release Configuration, despite the fact that the global build configuration was set to Debug. Modified the publishing profile to Debug configuration solved the issue for me.


Mine was missing mainly because I had 2 projects parked to the same IISExpress URL, make sure you specify a different port and hit CreateVirtualDirectory.


The Following steps forked for me:

  1. Go to the "bin" folder of your project.
  2. Delete the "Debug" folder.
  3. Build your project again.
  4. The Debug folder will get re-created.

Now you can start debugging again.


I had this problem.

My issue was that the aspx, aspx.vb and aspx.designer.vb files were imported wrong (Perhaps they were imported one by one to the project).

The breakpoint were in the aspx.vb, but was unreachable and had the warning of this question.

The solution was to delete the three files and import them again. Now I can reach the breakpoint.


I tried all of the answers posted here and I did not work. For me the solution was to check "launch browser" enter image description here


Things to check just to be clear: Make sure you have the configuration set to 'Debug' and not 'Release'. You can debug the startup project in 'Release' mode, but not a referenced class library.


If you are using a C++ project or dll from a C# or any .Net project, and you want to debug into the native code. Then go to the .Net Project Properties -> Debug -> Enable native code debugging (set it to true).


I'd like to add one more thing that can prevent stepping/breaking by not loading the .pdb file, after not finding this in any other forum: if you add a build post-process to add resource meta-data to the DLL (company name, version number, etc), as in "rc.exe my_dll.rc", this may be causing a mis-match between the DLL and the .pdb file. If the signatures don't match, it won't load the file and all the symbols you need for debugging. Remove this from the debug build.


I resolved this way: Run the project. Go to, Debug -> Windows -> Modules Choose the library you want debug and right click in it. Choose -> "Load Symbols" and then will change "Skipped loading suymbols" for "Symbols loaded".


Make sure your code is not getting thrown out at link time. Even though the compiler may rebuild an object, if the linker sees no reference to the code it will toss it out and cause this error when attempting to set a breakpoint.


I was going mad trying to figure out why my JavaScript file would not debug and it took looking in the "Script Documents" (the loaded scripts) to realise my script was not there.

The designer had edited the page headers and replaced my individual developer JavaScript files with a combined minified version. I didn't realise until an half an hour's worth of googling and debugging attempts.

So basically I recommend looking in that list when debugging. If it's not in there, it can't be debugged. Doh.

The designer was doing the right thing. It just should have happened at the release stage, not the beta. A list of which script includes were minified would also be good, so it can be rebuilt for development.

BTW I tried the Modules stuff from previous answers, and obviously it was not that. The script was actually not being loaded in the project. Sigh.


Right click on Project -> Properties -> Go to Build Tab -> Uncheck Optimize Code. Do It for any project in your solution


Make sure your files are open from the relevant project, not from another (old) one.

Example:

  • You working on a project, close the VS, but you left files (tabs) open in VS.

  • Copy your project to a new folder and open solution. The files (tabs) will load from the old directory and if you want to debug then you cannot debug until you close them and reload them from the current folder.

I was very close to reinstall my VS because nothing helped for me from another answers, but fortunately I realised this in my project and I can debug now.


If we get the latest from VSTS, all files will be in read only mode. While running project all class library classes get read only and brakepoints turn empty and say "Breakpoint will not currently be hit. No symbols loaded for this document".

Solution 1

Go to the project location and right lick the folder ---> Properties ---> General Tab ---> UNCHECK read-only (Only applies to files in the folder) ---> Apply ---> Ok

Solution 2

Start debugging, Go to Debug ---> Windows ---> Modules.Select one assembly and Right-click ---> (Select) Symbol Setting. Set Your Bin path in Cache symbol in this directory and select Microsoft Servers in Symbol of PDB location. Click Load All Symbols. It will take time.Then click OK.

Now the symbol status of all assembly has been changed from "can not find or open PDB" to "Symbols loaded".


Project > Properties > C++ > General > Debug Information Format - Program Database (/Zi)

I had checked Linker > Debugging and was already generating debug info. When I launched the application, symbols were loaded (Debug > Windows > Modules). Setting the Debug Information Format fixed it for me. Hope this helps someone!


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.


As of VS2019 - 16.8.4, I used Microsoft Edge to make this work. I hope Microsoft will fix it in Firefox.


If you are finding that you are having to build projects in your solution individually in a particular order to get the solution to build because building the solution directly after a clean doesn't work, and then you are finding the problem described in the Question, it is possibly due to the inclusion of some additional projects that have references to incorrect relative paths because they have been added to your solution from a different location. Therefore, the relative paths don't go to the same location as the .csproj files that are sat in folders directly under your .sln file.

The reason it would build by building the projects one by one in a particular order is because the other projects reference the same libraries but then build to the GAC. The solution ends up building but the symbols it loads are from the GAC and these symbols may become outdated.

The solution as it were is to restructure the physical folder structure of your solution and projects, or to open the .csproj files individually and fix the relative paths so that all references to any given library ultimately point to the same location in all projects. Or perhaps use the $(SolutionDir) token.

And if all else still fails, then you need to force Visual Studio into resetting your build configuration and this requires you to uncheck all projects for all build configurations and then to recheck them all - see the solution here.


I've done the clean and rebuild thing. That didn't work (it usually does). Now, I am attaching to w3wp before calling through the service, then let it call the service once, hit another breakpoint, then I change the point of execution so that it will run the same line (calling the service) again, then it actually stops at my breakpoint inside the service method.


Using Dependency Injection, Autofac in my case, to automatically resolve by scanning assemblies. One of the referenced assemblies was not getting resolved.

My fix was to directly reference a class from the assembly to force Visual Studio to load the assembly. Just having the assembly as a reference will not load the assembly when the application runs.


As stupid as it may sound, be 101% sure that you are referencing the right class.

In my case I have a GameObject in which I added the wrong script to the components. Hence, there is no way for Visual Studio to actually reach the code.

I simply had to delete the wrong C# script and component and add right one.


In my case, the problem was that I had added a new project/component, and I forgot to Sign it. When other components in the solution are signed, your new ones need to be as well. So solution for me was to copy the snk-file (from another project) into the new projects folder, and then from project properties / Signing choose it.

Another issue may be if the team is using different versions of VS or if someone is using Rider and some VS, they may use different casing on the project GUID.


For me:

  • Open solution properties
  • Select "Common Properties"/"Debug Source Files"
  • In the "Do not look for these source files" window, remove the files that are almost certainly there erroneously.

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


Sometimes IIS will hold on to files for some reason. I had to delete the website and create it anew and the problem went away


There are many answers with many different solutions to fix this issue.

Another solution is to make sure that your code is reachable. For example:

Any code that is added after a Return in a function. Adding a GOTO that effectively skips your code that has the break point.

I'm not saying these are normal but they are also causes.


Just Check whether your solution is in Release Mode.


Had this problem yesterday with a Web Project, tried many of the solutions proposed here and didnt work.

How did I solve?

Right click on the project -> Properties -> Web tab

In Servers section I changed IIExpress for Local IIS, created the virtual dir, and voilá!


Yet another solution for me was to post-build the project that was unable to break into the main project's bin folder.


None of the ideas here worked for me but I thank everyone for their efforts - in my case it was a Windows application that referenced a class library project - I could debug the windows application but not the class library. The pdb files were being generated. I did however find that if I debug on the call to the class library, I could step into the library.


Main project has both Project Reference and File reference to same project.

In my case, the main project had two references one was a project reference and another File reference, to the dll generated by same project.

Thus, pdb file was not being copied to Main project's bin folder, leading to unavailability of the symbols.


In my case, in the AssemblyInfo.cs file, there was the below line and I commented it and everything was right:

[assembly: System.Diagnostics.Debuggable(System.Diagnostics.DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)]

Yet another tip that worked for me.

If your project / library is signed, not even delay signed, it still may not be debuggable. Try disabling the signing option, debugging it, then restoring the signing option.


UWP:

If you are debugging a Universal Windows Project [UWP], the process is similar to solutions with mixed C# and Native code, Except you need to set the Application process or the Background Task process debugger to Managed Only to debug you C# code.

  1. Right-click your Startup Project in Solution Explorer
  2. Select Properties
  3. Select "Debug" tab
  4. Set process debugger type to Managed Only

enter image description here


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

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


I was getting this and was stumped (using Visual Studio 2013 Premium).

Normally our apps at work reference .dlls in a particular common/app directory, like this: C:\OurCompanyApps\xxxxxx.dll. This was happening in a solution that has a bunch of WinForm and .dll projects in it. The .dll projects compile to C:\OurCompanyApps\ and the WinForm projects reference the compiled .dll files in that location.

The problem: I found that the app in question was referencing the .dll project in the Source Control bin\Debug location instead of the compiled .dll file in C:\OurCompanyApps.

Solution: I deleted the reference and re-added it from the C:\OurCompanyApps\ location. Then I could step-through the breakpoints I had added in the .dll code.

Hope this helps someone.


Check if in the csproj file there is a line/entry with the <DebugType>Full</DebugType> If it exists then try remove it and try again to debug


it was so easyyyy. it also happend for me because .pdb file of the project have not copy in debug\Bin folder then it could not load symboles (.pdb file) in debug mode . in this way : you must rebuild your target project and manually copy the symboles (.pdb file) in debug\Bin folder of execute project


  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

Check if you have enabled "Enable just my code". If yes, disable it.


None of those answers solved my problem. I tried another thing based on fact that the project with the stop wasn't in reality the loaded project. I found as Hans Passant wrote that the .dll where I want to stop debugger and the associoated .pdb files where copied near the .exe file. Those files have had an older date so I thought they wasn't updated in the runtime. I manually deleted them, Visual Studio create another pair AND put this new pair near the .exe. Now the breakpoins 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 another changes (checks and so on - from the another answers) triggered something and Visual Studio copied and replaced the dll and pdb from the project folder to the folder near the exe, so that was a solution.

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.

Maybe this answer to help someone !


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


My situation was with Visual Studio 2019 and we have both C# and C++ code. Not sure what I screwed up, but the solution was to change from auto to Native as the C# code was working.

Debug -> Attach to Process... and where it says Attach to: select native code (in my case). Find the process in question and voila.


For me, the test class was annotated with [Ignore]. I don't know why it was still showing up in the test explorer, but whatever. This is with the Visual Studio Unit Testing Framework.

enter image description here


A new way to get this problem has appeared as of Visual Studio 2017 15.3.1 through 15.3.5. If you are using EditorConfig, the charset=utf8 option causes these symptoms. The VS team has reproduced this and says they are working on it.

So one fix is to comment out your charset=utf8 line in the .editorconfig file.

Status is now "Fixed - pending release" as of October 9, 2017.

(Thanks to John Hatton, "The breakpoint will not currently be hit. The source code is different from the original version." What does this mean?


I've had this happen when launching an ASP.NET website in 2013. It appears that in my case it goes away once the web browser completely launches.


I tried all of these and could not get my break-point working...

What i did to fix this issue was

In the page where my break-point was not hitting, i selected the folder > add an existing item and then select the page from its save path. This allowed the break point to start working.


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


Try running visual studio as an administrator within windows.


I had similar issue and I did the following: Debug=>Options=>General => Remove the check mark for "Enable Just My Code" This worked for me..


Had the problem when trying to debug a silverlight application in a sharepoint project. Under the sharepoint tab of the project properties you have to explicitly enable debugging for silverlight applications. Else you get this error.


Instead of doing all these things just

Close and reopen

the solution it will fix the issue


Try clean building your solution. Worked for me.


I have read carefully all the answers above, but none of them solved my problem.

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.


I had the same issue and I tried everything possible...some of those are

1) Nuking temp files in Temporary ASP.NET Folders in bin and obj folders.

2) Unchecking the Optimize code and Enable my code

3) Navigating and trying to manually load the symbols from module windows.

4) Checking the build flag in the properties of solution. ........

And the list goes on.. I spent like one day on this but what finally worked for me actually was... I knew that the symbols for my project was not being loaded and i could not see any modules with my project name in the modules window either...

so the issue was my symbols were being brought from virtual directory path of the project... and it was mapped to the virtual directory of some other project instead... the web project that was supposed to load in the modules was not there Following are the steps i followed..

  • Right click the specific web project and select properties
  • Go to Web tab
  • You can see the Create Virtual Directory button
  • As soon as i clicked it i saw an alert message saying "the (projectname) is mapped to (anotherProjectName)" are you sure you want to do the remapping? Something like this
  • then it made sense that for why i was seeing the unecessary project name in the modules window
  • then i rebuilt the solution and was able to hit the breakpoint

Will put this here in the hope that it helps someone.

I had the missing symbols issue with regards to a web service.

The daft solution was that the setup project was not set to build when the solution was built, which meant that when I right clicked the setup project and installed the service, then attached to the process; the same out of date service was being installed without the pdb because it didn't match = no working breakpoints.

The manual solution was to right click the setup project and build it, then install from it. I then altered the solution project build list to include the setup project when the solution is built in debug mode.


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.


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

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


Also had this issue with a Qt .pro generated project. It turned out I forgot to set an environment variable which determines the properties/general/Output Directory. Trivial one, and one to look at in the first place, but sometimes we miss the obvious.


No meu caso dei um F11 na chamada do método, forçando entrar no método onde o BP com problema estava, sendo assim, o break point foi recuperado.

In my case I gave an F11 in the method call, forcing to enter the method where the problem BP was, so the break point was recovered.


Maybe I can add something new. Unless I missed something (possible!) in these many posts, there doesn't appear to be an accepted solution or any mention of System.Reflection.Assembly.LoadFrom(filename) which is the method .NET provides when you need explicit control. If the Modules tab shows assemblies loading from unexpected locations, this is how you can fix that and get your debug breaks back.

Sometimes there are very good reasons for doing this. For me, it was when I was supporting a platform that allowed users to create somewhat arbitrary plug-ins, and I had to be careful about having a race with those plugins about where the common assemblies get loaded from. The goal was to make sure the "golden" versions living in the same directory as my Platform.exe would ALWAYS be the ones to load without exception. (Putting them in the GAC is sometimes the right answer but not always).

I has been rightly mentioned in other posts that default build settings cause referenced assemblies to get copied locally in the \bin of the plug in when it builds. Plug-ins are one example of a use case where that's the total opposite of what you want to happen. There might be 100 users with 100 plugins and 100 copies of a given assembly. Which one of the 100 will load? And will it be the latest, correct version?

Here's how I was able to do this reliably for a real-world platform that I supported for more than a decade, loading assemblies up-front.

using System;
using System.ComponentModel;
using System.Diagnostics;
using System.IO;
using System.Reflection;
using System.Windows.Forms;

[STAThread]
static void Main()
{
    PreLoadAssemblies();
    Form appInstance = new InstanceManager();
    Application.Run(appInstance);
}

private static void PreLoadAssemblies()
{
    // Obtain an explicit folder path relative to where
    // the main executable ("Platform.exe") is running.
    string dir =
        Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) +
        @"\Accessories\PlugIn\google-drive-sync\netstandard2.0";

    PreLoadAssembly(dir, "Google.Apis.Auth.dll");
    PreLoadAssembly(dir, "Google.Apis.Drive.v3.dll");
    PreLoadAssembly(dir, "Google.Apis.Auth.PlatformServices.dll");
    PreLoadAssembly(dir, "Google.Apis.dll");
    PreLoadAssembly(dir, "Google.Apis.Core.dll");
    PreLoadAssembly(dir, "Google.Apis.PlatformServices.dll");
    PreLoadAssembly(dir, "Newtonsoft.Json.v10.dll");
}

private static void PreLoadAssembly(string dir, string name)
{
    try
    {
        Assembly resolved = Assembly.LoadFrom(dir + @"\" + name);
        Debug.Assert(resolved != null);
    }
    catch (Exception ex)
    {
        Debug.Assert(false, ex.Message);
    }
}

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


Webapplications (IIS Express) only:

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

IIS Tray


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


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.


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.


I had same problem, checked all the previous solutions but didn't work for me. Simple but added answer just to make sure people don't get stuck on this not to exist problem as I did.

What worked for me was, I was running VS 2013 on admin mode and running on normal mode did the trick. Tried multiple times switching to normal and admin mode and its consistently working fine.

IDE: VS 2013 Professional
Version: 12.0.40629.00 Update 5

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


Because there's file in another project have same name, May be you have two controllers have same name


If you have both C# and native code(C/C++), make sure that native debugging is enabled for the project:
1. Right-click your Startup Project in Solution Explorer
2. Select Properties
3. Select "Debug" tab
4. Make sure Native Code debugging is enabled "Enable native code debugging" must be checked in order to be able to debug your native code


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.. :-|


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.


In my situation, the Visual Studio loads the DLLs in Global Assembly Cache (GAC), not the DLL in my project list. I deleted the DLLs in GAC and now I can see the break point working.


In my case i am trying to debug in relase mode. Once i change it to debug mode. Its working


This can be cause by a test project, web project, or other execution project having a Nuget reference to a project with the same name as the module being loaded.

Take the following example projects in a solution:

  • Vendor.ABC
  • MyLib (references Vendor.ABC)
  • MyProg (console program: referencing MyLib only)
  • MyProg.Web (MVC project: references MyLib and solution project Vendor.ABC)
  • MyLib.Test (Test Project: references MyLib and Nuget package Vendor.ABC)

MyProg and MyProg.Web will both load the debug symbols. MyLib.Test will not load debug symbols.


For me, the problem was just that I was trying to debug in a web project that was not set as the startup project. So it was not well compiled when running debug and the .pdb wasn't up to date.

Just setting the project to "Set up as startup project" did the trick.

Hope this helps


In Visual Studio check

Build => Configuration Manager => Active solution configuration

If it is set to Release rather than Debug no breakpoints will be hit.


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


Cross posting this fix from Hans K that I found on the similar thread >> HERE <<:

Right click on solution --> Properties

Look under Common Properties --> Startup Project

Select multiple startup projects

select Start action on the projects you need to debug.


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!

I realize this is an old thread, but for the benefit of others here is what happened to me. The issue was in how I applied the Designer attribute. I created a designer class. The designer overrode PrefilterProperties to make the Anchor, AutoScroll and AutoSize properties read only.

[System.Security.Permissions.PermissionSet(System.Security.Permissions.SecurityAction.Demand, Name="FullTrust")]
public class j2aScrollableContainerDesigner : ParentControlDesigner

I created a class and added my designer to it. This is the standard way to attach a designer attribute to a class and is found in many MSDN examples. The designer was obviously not being used because when I placed my control on a Form design surface, none of the properties mentioned above were read only in the Property Grid.

[Designer(typeof(j2aScrollableContainerDesigner), typeof(ParentControlDesigner))]
public partial class j2aScrollableContainer : UserControl

Out of desperation, I changed the Designer attribute declaration on my class to the following signature and the designer was now called. I have no explanation as to why one way works and the other doesn't. If I revert to the above Designer attribute declaration, the designer will quit working again.

[Designer(typeof(j2aScrollableContainerDesigner))]
public partial class j2aScrollableContainer : UserControl

My coworker had this problem, followed similar steps as those here, but the solution was different than any of these given.

The code she wanted to debug was in a project referenced by the current project, and it was never running within the Visual Studio session. The DLL was running from the GAC folder, after she deleted that the project wouldn't run at all, throwing an exception as soon as it tried to run. The solution was to include the referenced project in the local folder.

From the SolutionExplorer:

  1. Select the "debugging" project you will run out of
  2. Expand References (if not visible, select menu Project, item Show all files)
  3. Right-click the project which has the break point that is not working, select Properties
  4. Change value of Copy Local from False to True

Try again. (It worked for her!)


Check your Solution Configuration drop down list. Make sure you select Debug, not Release.


Disable the "Just My Code" option in the Debug/General settings.


For my Xamarin application, it finally started debugging after I completely wiped the Source Control folder, did "Get Latest", and rebuilt the solution.


In my case, I was debugging a WPF extension using Visual Studio's Experimental Instance. After starting debugging and then pausing the dubugger, I opened the Debug > Windows > Modules window. Form there, I could see the directory where Visual Studio was trying to load symbols C:\Users\<username>\AppData\Local\Microsoft\VisualStudio\15.0_76a9e536Exp\Extensions\<companyName>. After stopping debugging, I deleted the target folder using Windows Explorer and restarted the debugger. Visual Studio was then able to hit the breakpoint.


When debugging an assembly by starting an external application there are some extra considerations:

  • The external app may load its own copies of assemblies (DLLs) from a manifest file. (e.g., file appname.exe.manifest) If so, you need to disable this possibly by manually altering the manifest.

  • The external app may just try to load from DLLs in its own folder, even without a manifest. You will have to remove / rename these.

With these steps taken care of, the version of the assembly running in the debugger should be correctly loaded and can be debugged normally.


It is also worth to mention that in some situations the problem occurs, because the project you want to debug is an external service. In that case you have to attach debugger to the running process.


Debug ->Options -> General -> Uncheck mark for "Enable Just My Code"

This worked for me.


When trying to debug an Excel AddIn in VS 2013, after I had tried all Debug settings by disabling DotNet Framework Source Stepping and disabling Symbol Loading, what finally worked for me was changing the Configuration Setting to Release rather than Debug, since the compiler seemed to step over the code and the breakpoints were eventually hit.


In my case this started happening after a Windows Update, turns out the windows update turned off Internet Information Services which was making it appear that my API was unable to hit the break-point that I had set, but what was actually happening was that IIS was failing to start and therefore my application code wasn't actually running.

Double check that Internet Information Services is enabled in the Windows Features menu.

Instructions for IIS:

  • control panel
  • Programs
  • open or close windows features
  • tick internet information services
  • restart visual studio

If using IIS Express:

Open 'Add/Remove Programs' from the old control panel and run a repair on IIS Express Or you might go Control Panel ->> Programs ->> Programs and Features ->> Turn Windows features on or off ->> Internet Information Services and check the parent Internet Information Services folder.

I got this answer here: Specified argument was out of the range of valid values. Parameter name: site


Try to do this. It worked for me.

Debug=>Options=>General => Remove the check mark for "Enable Just My Code"


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.


Yet Another solution for some cases where this error occurs: check your Build Action.

I had this issue in an asp.net MVC3 project; one of my controllers had for some unknown reason it's Build Action set to EntityDeploy although it should have been Compile.


I had same issue with Visual Studio 2019 community and Asp.net Web form project. I spend 1.5 day and any of these 30 answers solved my problem. Finally I run the visual studio installer exe and select repair option. So my configuration was reset and problem is completely gone.


I had set a breakpoint and got this message on that breakpoint when executing the code. However, the breakpoint was only accessible to a unit test. I had to right click the unit test and select "debug unit tests" Doh!


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


My personal situation was that the debug was working in Visual Studio 2013, where it was originally created, but wouldn't working in 2015. I was able to fix this by changing the version in the project file to version 12 instead of version 10.


I had accidently opened the project file in a text editor and it was unloaded. Unlikely, but check it out if you're stuck.


Maybe you should not have been making an AutoPostBack.
If your code doesn't make a PostBack, you can get this error.
Regards.


[WINCE] I happened to encounter this during build on WinCE, it seemed that the 'Clean' did not clean the target folder on the device, I got the debug/break back by changing the Output folder on Devices (Project Properties-->Devices tab-->change Output folder to other than the previous failed debug) -- and voila!! it works. Might have to do manual cleanup on the device, but that will be later.

Hope this help.


In my case, none of these solutions worked. I had to go to

Tools -> Import and Export Settings -> Reset all settings.

and then debugging started working without any issues.


I ended up tracing my issue back to an apparent incompatibility issue with using multiple PostSharp versions. The app I was attempting to debug had a previous version of PostSharp but was referencing a project which was using a more recent version, and for one reason or another this resulted in VS refusing to generate the PDB file for specifically that app (all other DLLs were loading their debug symbols fine).

The solution was to update PostSharp within each project to the most recent version and recompile.


I test all answers for this question not work for me, I use this below method:

I exclude that file(s) has breakpoints from project where that visual studio can't hits them and then I includes them into my project and worked breakpoints.


Examples related to c#

How can I convert this one line of ActionScript to C#? Microsoft Advertising SDK doesn't deliverer ads How to use a global array in C#? How to correctly write async method? C# - insert values from file into two arrays Uploading into folder in FTP? Are these methods thread safe? dotnet ef not found in .NET Core 3 HTTP Error 500.30 - ANCM In-Process Start Failure Best way to "push" into C# array

Examples related to .net

You must add a reference to assembly 'netstandard, Version=2.0.0.0 How to use Bootstrap 4 in ASP.NET Core No authenticationScheme was specified, and there was no DefaultChallengeScheme found with default authentification and custom authorization .net Core 2.0 - Package was restored using .NetFramework 4.6.1 instead of target framework .netCore 2.0. The package may not be fully compatible Update .NET web service to use TLS 1.2 EF Core add-migration Build Failed What is the difference between .NET Core and .NET Standard Class Library project types? Visual Studio 2017 - Could not load file or assembly 'System.Runtime, Version=4.1.0.0' or one of its dependencies Nuget connection attempt failed "Unable to load the service index for source" Token based authentication in Web API without any user interface

Examples related to visual-studio

VS 2017 Git Local Commit DB.lock error on every commit How to remove an unpushed outgoing commit in Visual Studio? How to download Visual Studio Community Edition 2015 (not 2017) Cannot open include file: 'stdio.h' - Visual Studio Community 2017 - C++ Error How to fix the error "Windows SDK version 8.1" was not found? Visual Studio Code pylint: Unable to import 'protorpc' Open the terminal in visual studio? Is Visual Studio Community a 30 day trial? How can I run NUnit tests in Visual Studio 2017? Visual Studio 2017: Display method references

Examples related to debugging

How do I enable logging for Spring Security? How to run or debug php on Visual Studio Code (VSCode) How do you debug React Native? How do I debug "Error: spawn ENOENT" on node.js? How can I inspect the file system of a failed `docker build`? Swift: print() vs println() vs NSLog() JavaScript console.log causes error: "Synchronous XMLHttpRequest on the main thread is deprecated..." How to debug Spring Boot application with Eclipse? Unfortunately MyApp has stopped. How can I solve this? 500 internal server error, how to debug

Examples related to breakpoints

Bootstrap 3 breakpoints and media queries How to set a JavaScript breakpoint from code in Chrome? How to set conditional breakpoints in Visual Studio? How to use breakpoints in Eclipse How do I remedy "The breakpoint will not currently be hit. No symbols have been loaded for this document." warning? Eclipse - Unable to install breakpoint due to missing line number attributes Break when a value changes using the Visual Studio debugger Why aren't Xcode breakpoints functioning? Can I set a breakpoint on 'memory access' in GDB?