【问题标题】:Debugging VS2008 C++ project on non-dev machine在非开发机器上调试 VS2008 C++ 项目
【发布时间】:2015-09-23 02:18:19
【问题描述】:

我在开发机器上的 Visual Studio 中调试 C++,运行调试会话,然后在遇到断言或异常时中断代码。

但现在当我在另一台机器上测试项目时,我想要同样的设施,特别是查看中断位置、调用堆栈、变量值等。

实现这一目标的最佳方法是什么?显然需要一个 Debug 构建,还有什么必须转移到测试机器上?

是只有在构建过程中生成的 PDB 和 ILK 文件,还是所有的源代码文件?

在这种情况下,测试机器上的 VS 应该如何识别源文件并将它们与部署的测试二进制文件相关联?

然后每次重建都需要重新复制它们?

【问题讨论】:

  • Obviously a Debug build is required, what else must be transferred to the test machine? 不。您不能将依赖于调试 VS 运行时库的调试版本重新分发到未安装 VS 的机器上。调查“远程调试”:msdn.microsoft.com/en-us/library/y7f5zaaa.aspx
  • 感谢 Paul,两台机器都安装了 VS2008。我只是想让测试机器访问项目的源代码,这样我就可以正确检查任何崩溃的上下文。听起来远程调试是在从开发机器上运行的同时在测试机器上运行可执行文件?但是我想在调试的时候坐在测试机前。
  • 进行远程调试时,您不必在测试机旁。您在进行远程调试时正在在测试机器上运行程序,但实际上您正坐在开发机器上设置断点、查看变量等。您正在使用 TCP/IP 与测试机器通信并有一台远程机器运行调试监视器应用程序(我相信是 MSVSMON.EXE)。所以根本不需要坐在测试机前——这就是远程调试的全部意义所在。
  • 此外,您需要在测试机器上运行与开发机器相同的应用程序构建,并且您可以连接到机器(再次通过 IP 地址)。您不需要源代码或测试机器上的任何其他文件。
  • 谢谢保罗,我确实让远程调试器工作了。不完全是我想要的,但比我所拥有的要好得多,再加上 TeamViewer 会话,让我再次前进。抱歉,我无法将您的 cmets 标记为答案。

标签: c++ visual-studio debugging visual-studio-2008


【解决方案1】:

您可以设置源服务器,然后您只需将 pdb 复制过来,并将 Visual Studio 配置为使用源服务器(请参阅https://msdn.microsoft.com/en-us/library/ms242029(v=vs.90).aspxhttps://msdn.microsoft.com/en-us/library/ms241613.aspx

这篇文章 (http://www.wintellect.com/devcenter/jrobbins/pdb-files-what-every-developer-must-know) 有一些关于源服务器和 PDB 的重要信息。

【讨论】:

  • 感谢 Peon,这些都是很好的参考,但是 Source Server 的设置看起来很棘手,并且依赖于 Perl (msdn.microsoft.com/en-us/library/windows/desktop/…)。我想知道我是否应该考虑建立一个像 VisualSVN 这样的源代码控制系统?
猜你喜欢
  • 2010-09-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多