【发布时间】:2011-10-11 06:53:41
【问题描述】:
首先让我说我可以在远程计算机上远程调试发布版本。我set up my release build 非常喜欢我的调试版本,但我主要必须确保未设置调试标志。我已经处理了一段时间,最后决定尝试弄清楚为什么我必须经历这个。我还应该提到,我的远程调试经验仅限于这个项目,并且 C# 程序使用 C++/CLI(使用 /clr 构建).DLL 来调解一些关键的 C++ 库。我不需要调试底层 C++ 库,但我确实需要调试 C++/CLI 代码。 (我提到这一点的一个原因是我无法在使用 /clr 标志时静态链接库)。
我最近发现了Dependency Walker,所以我用它来看看发生了什么。结果是设置了调试标志,MSVCR100D.DLL 和 MSVCP100D.DLL 中的链接器链接,当未设置标志时,它使用没有“D”后缀的文件。现在通常我可能只是将这些 .DLL 的版本复制到远程机器上,但有一个问题。我的 VS2010 开发笔记本电脑是 64 位机器,目标机器是 32 位。这意味着我拥有的这些 DLL 的唯一版本是 64 位的。我已经在远程机器上安装了 VS2010 的远程调试(我在 2008 年遇到了同样的问题),但它也不包括这些 .DLL 的调试版本(我不知道为什么,但我假设这是由设计)。所以我的问题是:
- 作为 VS2010 的注册所有者,我可以将这些 .DLL 的 32 位版本的有效源放到远程计算机上吗?
- 是否有更简单的方法让我获得调试支持?那就是我可以更改一些其他设置,只是告诉 VS 不使用这两个 DLL 的调试版本吗?这里的优点是会设置 DEBUG 符号,并且使用它的任何条件代码都可以工作。
【问题讨论】:
标签: visual-studio visual-studio-2010 c++-cli 32bit-64bit remote-debugging