Functions where the symbol files indicate that there is no source file corresponding to the stack frame.
Functions with stripped source information in their symbols file.
To be classified as user code, the PDB for the binary containing the user code must be loaded by the debugger (use the Modules window to check this).įor call stack behavior, such as in the Call Stack window, Just My Code in C++ considers only these functions to be non-user code: For Call Stack window and call stack support in Just My Code, the /JMC switch is not required. The switch is enabled by default in C++ projects. This feature also requires use of the /JMC (Just my code debugging) compiler switch. Starting in Visual Studio 2017 version 15.8, Just My Code for code stepping is also supported. The Call Stack window displays the annotated frame labeled. If first chance exceptions are enabled for the exception, the calling user-code line is highlighted in green in source code. If an unhandled exception occurs in non-user code, the debugger breaks at the user code line where the exception was generated. You can then use a Debug > Step command to go to the next line of user code. If the debugger breaks in non-user code (for example, you use Debug > Break All and pause in non-user code), the No Source window appears. If there's no more user code, debugging continues until it ends, hits another breakpoint, or throws an error.
Debug > Step Out (or Shift+ F11) on non-user code runs to the next line of user code.
Debug > Step Into (or F11) on non-user code steps over the code to the next line of user code.
NET debugger considers all other code to be user code.
DebuggerStepThroughAttribute tells the debugger to step through the code it's applied to, rather than step into the code.
DebuggerHiddenAttribute hides the code from the debugger, even if Just My Code is turned off.
DebuggerNonUserCodeAttribute tells the debugger that the code it's applied to isn't user code.
Three compiler attributes also affect what the. NET debugger considers optimized binaries and non-loaded. pdb) files and program optimizations to classify user and non-user code. NET projects, Just My Code uses symbol (. For DLLs or other modules not found or loaded, a symbol or source not found page may open.NET Just My Code Show External Code is a current user profiler setting that applies to all projects in all languages that are opened by the user.ĭouble-clicking an expanded external code line in the Call Stack window highlights the calling code line in green in the source code.