我的主要解决方案是使用我自己编写的实用程序类库中的代码,但它是另一个解决方案的一部分。如何在引用的DLL文件中设置断点?
答案 0 :(得分:49)
单击Debug,New Breakpoint,Break at Function,然后输入函数的全名。
答案 1 :(得分:21)
在Visual Studio中,使用菜单
手动打开包含所需方法的引用DLL的源文件档案>打开>文件...
然后通过单击代码编辑器中的左边框来设置断点。这使您可以在任何代码行中断,而不仅仅是函数调用。 Visual Studio以一种禁用状态显示断点,因为它认为代码无法访问。只是忽略它;一旦代码运行并加载了DLL,断点就会变为活动状态。
注意:您必须引用程序集的Debug版本才能使其正常工作。
答案 2 :(得分:15)
您可以执行以下操作之一:
答案 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)
请按照以下步骤操作:
Debug
New Breakpoint
Function Breakpoint
或简单地按Ctrl+K, B
namespace.ClassName.FunctionName
例如,假设您具有这样的代码,并且我想在函数D
的开头放置一个断点:
namespace A.B{
public class C{
public void D(){
int x= 10;
}
}
}
因此,在Function Breakpoint
窗口中,您需要输入:A.B.C.D