Visual Studio,在调试时的库源码

3

也许这是一个微不足道的、愚蠢的问题。

我有两个解决方案:

1) 主应用程序 2) 库集合

第一个解决方案可以通过SourceSafe访问,其中包含了从第二个解决方案中提取出来的dll文件,并将其放置在lib目录下。

为了调试主应用程序并且能够跳转到第二个解决方案中的库源代码,我是否需要将第二个解决方案中的项目添加到第一个解决方案中?这是唯一的选择吗?

即使我添加了第二个解决方案中的项目(如果可以在SC中省略某些项目进行添加),我仍然必须更改由SourceSafe控制的应用程序中的dll引用,这样会给我的同事带来麻烦。

我该怎么办呢?


你有没有问过你的同事,在你们那里处理这个问题的标准做法是什么? - Grant Thomas
2个回答

4

要进行调试,您需要确保所有第三方dll文件与其对应的pdb文件位于同一目录中。当您进入一个具有pdb文件的第三方函数时,Visual Studio会提示您选择源代码。此时,您可以浏览到本地或网络共享位置,以获取第三方源代码。


好的,我会尝试,但是我如何打开我引用的dll源代码以设置断点? - user740144
进入函数一次...浏览cpp文件,然后您可以在其他函数中按照您的意愿设置断点。 - parapura rajkumar
2
您还可以使用调试菜单->断点->新断点。输入函数名称,例如Foo::MyFunction,这将设置断点。 - parapura rajkumar
它运行得很好,但是他在没有我的帮助下找到了源代码。信息存储在哪里?他是如何做到的? - user740144
好的,可能在 pdb 文件中 :) - user740144
默认情况下,pdbs中硬编码了源文件的文件路径。如果在调试源代码的机器上,源代码位于相同的位置,则无需提示。 - parapura rajkumar

1
我曾经工作的地方使用.NET Reflector来浏览外部DLL。它是一个Visual Studio插件,利用反射机制允许您通过.NET二进制文件(实际上是它们的MSIL反向等效物)调试源代码,并且在处理非混淆代码时非常简单和高效。

@Hans 不一定,他显然可以访问库的解决方案,但他肯定在他的主应用程序中引用了它们。考虑到这一点,使用 Reflector 进入库将是微不足道的,而他需要做其他事情才能让调试器考虑其他解决方案中的源代码。 - anthonyvd

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接