如何在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\
要从ProjectA
debugging到ProjectB
,请执行以下操作
- 将
B
的dll与dll的.PDB
复制到ProjectA
的编译目录。 - 现在debugging
ProjectA
。 当代码到达debugging时需要调用dll的方法或事件等的地方时,按F11
进入dll的代码。
注意:不要错过复制.PDB文件
[根据马丁·贝克特,谁给我这个答案的人]
您可以debugging到外部库。
在项目设置选项卡中,在“源代码”字段中查找“visual studio目录”,包括openCV源的path。 然后确保每个debuggingDLL的.pdb文件与dll位于同一目录中。