Search code examples
c#visual-studio-2008debuggingpdb-files

Debugging a release version of a DLL (with PDB file)


If I have a DLL (that was built in release-mode) and the corresponding PDB file, is it possible to debug (step-into) classes/methods contained in that DLL?

If so, what are the required steps/configuration (e.g. where to put the PDB file)?

Edit:

If have the PDB file in the same place as the DLL (in the bin/debug directory of a simple console test application). I can see that the symbols for the DLL are loaded (in the Output window and also in the Modules window), but still I cannot step into the methods of that DLL.

Could this be the result of compiler optimizations (as described by Michael in his answer)?


Solution

  • I finally found what cause the problems debugging a DLL that was built in release configuration:

    First of all, it basically works as expected. Which means, if I have a DLL built in release-configuration plus the corresponding PDB file, then I can debug the classes/methods contained in that DLL.

    When I first tried this, I unfortunately tried to step into methods of a class which has the DebuggerStepThroughAttribute, e.g:

    [System.Diagnostics.DebuggerStepThrough]
    public class MyClass {
        public void Test() { ... }
    }
    

    In that case, it is of course not possible to step into the method from the debugger (as expected/intended).

    So everything works as intended. Thanks a lot for your answers.