在 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项目的非官方可视化工具?