How can I set a breakpoint in referenced code in Visual Studio?

后端 未结 7 1879
闹比i
闹比i 2020-12-24 05:12

My main solution is using code from a utility class library, that I wrote myself, but is a part from another solution. How can I set a breakpoint in the referenced DLL file?

相关标签:
7条回答
  • 2020-12-24 05:21

    You can do one of the following:

    1. Add the DLL project to the solution containing your executable. Then you can set breakpoints as normal.
    2. You could instead just open the DLL project and use the Debug -> Attach to Process to attach to your running EXE
    0 讨论(0)
  • 2020-12-24 05:22

    This is not my own answer, it was Frep D-Oronge's suggestion in one of the comments above. It is easy and works with no hiccups:

    "I find easy - just run two instances of Studio side by side. Ctrl-F5 on the 'primary' one to launch without the debugger attached, then attach to the process with the instance of studio that is editing the library project"

    All credits are due to him.

    0 讨论(0)
  • 2020-12-24 05:26

    I know this is an old question, but may be of help to many.

    For the debugger to work correctly, you need to load debugging symbols database, a .pdb file with the same name as the assembly you want to debug. If it's part of a solution you created you could just copy-paste it from the other solution's bin folder. Then add a breakpoint specifying the full path to the method you want to debug, plus the name of the assembly it lives in. EX: "MyNamespace.MayClass.MyMethod, MyAssemblyName"

    If you don't own the code you have 2 options, both involving a dissasembler. I use dotPeek for this, since it really rocks.

    Option 1: you open the assembly with dotPeek and create a single .pdb for that, then copy it to your .bin folder and follow the steps above. https://www.jetbrains.com/decompiler/help/Generating_PDB_Files.html

    Option 2: use dotPeek Symbol Server and PDB Generation. https://www.jetbrains.com/decompiler/help/Symbol_Server_and_PDB_Generation.html After that follow the instructions above to attach a debugger instance.

    Hope this helps

    0 讨论(0)
  • 2020-12-24 05:29

    Click Debug, New Breakpoint, Break at Function, then enter the full name of the function.

    0 讨论(0)
  • 2020-12-24 05:31

    Make sure you have the .pdb file in the bin/debug folder where the referenced class library dll resides. When you are debugging your current solution you should be able to step into the code from your class library. When you step into the class library you will be able to set breakpoints.

    0 讨论(0)
  • 2020-12-24 05:32

    follow these steps:

    1. Go to Debug
    2. Go to New Breakpoint
    3. Click on Function Breakpoint or simple press the Ctrl+K, B
    4. a window shows up, type the function name in the following format:

    namespace.ClassName.FunctionName

    For example, assume that you have a code like this and I want to put a breakpoint at the beginning of function D:

    namespace A.B{
        public class C{
              public void D(){
                   int x= 10;
              }
        }
    }
    

    So in Function Breakpoint window you need to type: A.B.C.D

    0 讨论(0)
提交回复
热议问题