Visual Studio 2012 远程调试:对内存位置的无效访问

Posted

技术标签:

【中文标题】Visual Studio 2012 远程调试:对内存位置的无效访问【英文标题】:Visual Studio 2012 Remote Debugging: Invalid access to memory location 【发布时间】:2012-12-02 11:02:56 【问题描述】:

我按照此链接中的说明:http://msdn.microsoft.com/en-us/library/bt727f1t.aspx 在运行应用程序的服务器上安装远程调试器 (2012),希望从运行 Visual Studio 2012 的开发机器远程调试它。

我什至无法查看要附加到远程计算机上的进程列表。我不断收到“无法连接到名为 [name] 的 Microsoft Visual Studio 远程调试监视器。对内存位置的访问无效”。

我已经成功连接了几次,但是连接立即失败,然后我无法再次连接。

这给我带来了很大的问题,因为我无法远程调试任何东西。我一定错过了一些明显的东西。请有人给我一个解决方案。

【问题讨论】:

【参考方案1】:

我发现解决此问题的唯一方法是重新启动 Visual Studio。

为我工作。我在this blog post about invalid access and remote debugging找到它。

【讨论】:

在这里工作。很沮丧,这就是解决方法——尽管我并不感到惊讶。 您可以按照 Gregg 的回答 (***.com/a/16108408/922741) 中的建议安装修补程序,而不是一遍又一遍地重新启动 VS。 @pil0t - 链接已损坏。 @pil0t,我可以请您在这里查看与远程调试相关的问题吗:tinyurl.com/ovglq92?【参考方案2】:

原来我错过的一件事是告诉 Visual Studio 在哪里可以找到与远程进程相关的 .pdb 符号。为此,请转到工具 -> 选项 -> 调试,然后在符号 (.pdb) 位置中将远程位置添加到 pdb 文件中。

为了澄清,我附上很好,但无法破解代码。现在我能。请注意,在您进入我成功附加到进程但无法捕获断点的阶段之前,还有其他障碍。

【讨论】:

仅供参考,我遇到了同样的问题。我进入工具-> 选项-> 调试-> 符号并单击加载所有符号按钮。 VS 创建了一个缓存位置并下载了几个文件,但它开始工作。感谢您为我指明正确的方向! 谢谢你们 - 我必须在远程服务器上添加 bin 目录,然后单击“加载所有符号”。【参考方案3】:

我最近让其他人报告了这个问题并在他们的机器上调试了这个问题。 “无效访问内存位置”错误是由 Windows 中的问题引起的,可以通过 this hotfix 解决。

【讨论】:

【参考方案4】:

我在 VS 2012、2013、2015 和 2017 中遇到过这个问题。根据其他答案,问题可能与在 64 位 PC 上运行 32 位版本的 Visual Studio 有关。有时,正如其他人所建议的那样,重新启动 Visual Studio 可以解决问题,但到目前为止我发现的最佳解决方案是在没有解决方案的情况下启动 Visual Studio,打开 Debug -> Attach to Process,将连接目标更改为删除服务器并等待用于加载进程列表。然后取消,不要附加。加载所需的解决方案,然后返回附加到进程,远程进程列表仍将被加载。连接到您想要的进程,从那时起一切都应该正常工作。

【讨论】:

以上是关于Visual Studio 2012 远程调试:对内存位置的无效访问的主要内容,如果未能解决你的问题,请参考以下文章

Visual Studio 2012 远程调试:对内存位置的无效访问

我可以在 Windows XP 上使用 Visual Studio 2010 远程调试器从 Visual Studio 2012 调试 .Net 4.0 应用程序吗?

无法在 Windows Server 2008 上运行 Visual Studio 2012 远程调试器

远程进程的 Visual Studio 2012 调试未按预期工作

Visual Studio + 远程 gdb 调试

Visual Studio 2012 没有调试选项