在 Visual Studio 2013 中调试不同解决方案中的多个项目

Posted

技术标签:

【中文标题】在 Visual Studio 2013 中调试不同解决方案中的多个项目【英文标题】:Debugging Multiple Projects which are in different solutions in Visual Studio 2013 【发布时间】:2015-05-29 05:58:34 【问题描述】:

我有四种不同的解决方案:两个 C/C++ 库、一个使用这些库的 C++/CLI 包装器和一个 WPF 项目。

当我的 WPF 项目调用我的库时,如何调试它们?

【问题讨论】:

只是为了确保我正确理解这一点,您的意思是您在 WPF 项目中调用您的库,并且您希望在调用它时进行调试? 我正在调用 C++/CLI 库中的函数,该函数又调用其中一个库中的函数。我能够调试到 C++/CLI 包装器,但我无法调试包装器调用的函数。 看来我当时或多或少地理解了这个问题。确保您的库是在调试模式下编译的,并且您将 .pdb 文件放在 Visual Studio 可以找到它们的位置。 我的问题是我需要向哪个项目添加 .pdb 文件的位置?我应该将它添加到 WPF 应用程序还是 C++/CLI 包装器? 【参考方案1】:

当您想要调试解决方案之外的任何调用时,您需要帮助 Visual Studio 找到调试器信息。如果你只是链接到一个库,它可以运行代码,但你不能一步一步调试,因为你只是链接二进制文件而不是源代码。

要调试外部库,您需要两件事

链接调试模式下编译的库文件 告诉 Visual Studio 在哪里可以找到 .pdb 文件(其中包含对调试有用的信息)。

要确保正确加载 .pdb 文件,您可以进入项目选项,然后进入 Debugging->Symbols,然后从库中选择 .pdb 文件所在的目录。 Visual Studio 通常会将 .pdb 文件放在发布目录中(默认设置)。

重要提示:由于您在库上使用包装器,因此您需要确保包装器本身也在执行此操作(否则您将只能调试包装器)。

【讨论】:

我正在调用 C++/CLI 库中的函数,该函数又调用其中一个库中的函数。我可以调试到 C++/CLI 包装器,但我无法调试包装器调用的函数 我的问题是我需要向哪个项目添加 .pdb 文件的位置?我应该将它添加到 WPF 应用程序还是 C++/CLI 包装器? 您将 id 添加到您的调试项目中,以便 WPF 应用程序 当你尝试步入库函数时会发生什么? 我无法调试库函数。在 C++/CLI 包装器中,当我为库函数保留断点时,调试器不会进入库函数。它只是调试从包装器调用库函数之后的下一条语句。

以上是关于在 Visual Studio 2013 中调试不同解决方案中的多个项目的主要内容,如果未能解决你的问题,请参考以下文章

Visual Studio 2013 无法在 cshtml 中调试 javascript

在Visual Studio 2013中是否有用于调试Qt 4.8项目的非官方可视化工具?

Visual Studio 2013 发布编译不打开文件

Windows XP 中的 Visual Studio 2013 远程调试过程

Visual Studio 2013 远程调试,自动部署?

vmware + visual studio 2013内核调试