【问题标题】:Debugging Multiple Projects which are in different solutions in Visual Studio 2013在 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 包装器?

标签: c# c++ wpf visual-studio-2013


【解决方案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 包装器中,当我为库函数保留断点时,调试器不会进入库函数。它只是调试从包装器调用库函数之后的下一条语句。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-05
  • 1970-01-01
  • 1970-01-01
  • 2015-11-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多