ReSharper 2017.3 Help

Debugging Modules that have no Debug Information (PDB)

With ReSharper, you can debug any compiled module, even if it does not have debug information (PDB). ReSharper will decompile the module, generate PDB for it and automatically load decompiled symbols for this module in the Visual Studio debugger.

Prerequisites

Prior to debug modules that have no PDB, check the following Visual Studio settings (Tools | Options):

  • On the Debugging | Symbols options page, make sure that the Cache symbol in this directory field has a valid disk path value.
  • On the Debugging | General options page, make sure that the Enable Just My Code check box is cleared.

However, even if one or both of these settings do not have expected values, ReSharper will suggest to correct these values automatically when you try to load symbols from decompiled modules. In this case, it will add %LOCALAPPDATA%\Temp\SymbolCache as the symbol cache directory.

Debugging

Before debugging your program or after debugging has started, you need to load symbols for each compiled module that you want to debug. You can do it in one of the following ways:

  • In the debug mode, open the Visual Studio's Modules window (Debug | Windows | Modules), select one of several modules, right-click the selection, and choose Load Symbols with ReSharper Decompiler.
  • In the Process Explorer window (ReSharper | Windows | Process Explorer, select one of several managed modules, or one or more processes, and choose Enable Debugging in the context menu. If you choose processes, ReSharper will generate and load non-existent PDB for all managed modules in the processes.
  • Navigate to the desired symbol in the compiled modules, and set a breakpoint in the decompiled source. If the module where you set the breakpoint is not loaded yet, ReSharper will display a pop-up where you can enable debugging for this module:
    ReSharper: enabling debugging for compiled module

Decompiling and loading symbols may take some time, so after you initiate the process in one of the above ways, ReSharper displays the progress in the Project/PDB Generation Status window.

Last modified: 7 December 2017