如何在Visual Studio中debugging外部类库项目?

我有一个项目(A),从另一个vs解决scheme中的外部项目(B)类库中引用程序集。

我还没有理解如何从项目A运行程序有效地debugging从B类库。有什么我必须启用项目B,如debugging信息等,所以我可以步入debugging时从A?

提前致谢。

尝试禁用只是我的代码(JMC)。

  • 工具 – >选项 – >debugging器
  • 取消选中“启用我的代码”

默认情况下,debugging器试图将世界视图限制为只包含在解决scheme中的代码。 这有时候确实是一个棘手的问题,但是当你想要debugging那些不在你的解决scheme中的代码(就像你的情况一样),你需要禁用JMC才能看到它。 否则,代码将被视为外部的,并在很大程度上隐藏你的观点。

编辑

当你的代码被破坏时,请尝试以下操作。

  • debugging – > Windows – >模块
  • find您感兴趣的项目的DLL
  • 右键单击 – >加载符号 – >为您的其他项目select.PDB的path

这已经困扰了我一段时间。 我通常最终做的是使用debugging模式重build我的外部库,然后将.dll和.pdb文件复制到我的网站的bin。 这使我可以进入libarary代码。

我运行了两个visual studio的实例 – 一个用于外部DLL,一个用于主应用程序。
在外部dll的项目属性中,设置以下内容:

build立事件:

  • copy /y "$(TargetDir)$(TargetName).dll" "C:\<path-to-main> \bin\$(ConfigurationName)\$(TargetName).dll"

  • copy /y "$(TargetDir)$(TargetName).pdb" "C:\<path-to-main> \bin\$(ConfigurationName)\$(TargetName).pdb"

debugging:

  • 启动外部程序: C:\<path-to-main>\bin\debug\<AppName>.exe

  • 工作目录C:\<path-to-main>\bin\debug

这样,每当我build立外部的DLL,它在主应用程序的目录中得到更新。 如果我从外部dll的项目中进行debugging – 主应用程序运行,但debugging器仅在外部dll中遇到断点。 如果我从主项目中debugging,主应用程序运行最新的外部DLL,但是现在debugging器仅在主项目中遇到断点。

我意识到一个debugging器会为两者做这项工作,但是我发现这样更容易保持这两个调整。

假设的path

项目A

 C:\Projects\ProjectA 

项目B

 C:\Projects\ProjectB 

和ProjectB的dll

 C:\Projects\ProjectB\bin\Debug\ 

要从ProjectAdebugging到ProjectB ,请执行以下操作

  1. B的dll与dll的.PDB复制到ProjectA的编译目录。
  2. 现在debuggingProjectA 。 当代码到达debugging时需要调用dll的方法或事件等的地方时,按F11进入dll的代码。

注意:不要错过复制.PDB文件

[根据马丁·贝克特,谁给我这个答案的人]

您可以debugging到外部库。

在项目设置选项卡中,在“源代码”字段中查找“visual studio目录”,包括openCV源的path。 然后确保每个debuggingDLL的.pdb文件与dll位于同一目录中。