如何在Visual Studio中的引用代码中设置断点?

时间:2010-04-11 16:09:31

标签: .net visual-studio debugging breakpoints

我的主要解决方案是使用我自己编写的实用程序类库中的代码,但它是另一个解决方案的一部分。如何在引用的DLL文件中设置断点?

7 个答案:

答案 0 :(得分:49)

单击Debug,New Breakpoint,Break at Function,然后输入函数的全名。

答案 1 :(得分:21)

在Visual Studio中,使用菜单

手动打开包含所需方法的引用DLL的源文件
  

档案>打开>文件...

然后通过单击代码编辑器中的左边框来设置断点。这使您可以在任何代码行中断,而不仅仅是函数调用。 Visual Studio以一种禁用状态显示断点,因为它认为代码无法访问。只是忽略它;一旦代码运行并加载了DLL,断点就会变为活动状态。

注意:您必须引用程序集的Debug版本才能使其正常工作。

答案 2 :(得分:15)

您可以执行以下操作之一:

  1. 将DLL项目添加到包含可执行文件的解决方案中。然后你可以正常设置断点。
  2. 您只需打开DLL项目并使用Debug - >附加到流程以附加到正在运行的EXE

答案 3 :(得分:5)

确保在引用的类库dll所在的bin / debug文件夹中有.pdb文件。在调试当前解决方案时,您应该能够从类库中进入代码。当您进入类库时,您将能够设置断点。

答案 4 :(得分:5)

我知道这是一个老问题,但对许多人来说可能有所帮助。

要使调试器正常工作,您需要加载调试符号数据库,一个与要调试的程序集同名的.pdb文件。如果它是您创建的解决方案的一部分,您只需将其从其他解决方案的bin文件夹中复制粘贴即可。然后添加一个断点,指定要调试的方法的完整路径,以及它所在的程序集的名称.EX:" MyNamespace.MayClass.MyMethod,MyAssemblyName"

如果你不拥有这些代码,你有2个选项,都涉及一个dissasembler。我使用dotPeek,因为它真的很摇滚。

选项1:使用dotPeek打开程序集并为其创建单个.pdb,然后将其复制到.bin文件夹并按照上述步骤操作。 https://www.jetbrains.com/decompiler/help/Generating_PDB_Files.html

选项2:使用dotPeek Symbol Server和PDB Generation。 https://www.jetbrains.com/decompiler/help/Symbol_Server_and_PDB_Generation.html 然后按照上面的说明附加调试器实例。

希望这有帮助

答案 5 :(得分:0)

这不是我自己的答案,这是Frep D-Oronge在上述评论之一中提出的建议。这很容易,没有打嗝:

“我觉得很简单 - 只是并排运行两个Studio实例。在主要的一个实例上按Ctrl-F5启动而不连接调试器,然后使用正在编辑库项目的工作室实例附加到进程“

所有学分归他所有。

答案 6 :(得分:0)

请按照以下步骤操作:

  1. 转到Debug
  2. 转到New Breakpoint
  3. 单击Function Breakpoint或简单地按Ctrl+K, B
  4. 出现一个窗口,以以下格式键入函数名称:
  

namespace.ClassName.FunctionName

例如,假设您具有这样的代码,并且我想在函数D的开头放置一个断点:

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

因此,在Function Breakpoint窗口中,您需要输入:A.B.C.D