Visual Studio 2010在不安全块中杀死函数的一个参数中的数据(没有其他词)。 是什么导致了这个错误?调试器显示以下消息。

Cannot obtain value of local or argument as it is not available at this instruction pointer, possibly because it has been optimized away.

当前回答

在Visual Studio 2017或2015中:

转到解决方案,右键单击解决方案,然后选择属性->选择所有配置->调试,然后单击确定。 在“重新构建并运行”之后,这个解决方案对我来说是有效的。

其他回答

对于那些在调试Azure网站的web应用程序时遇到此问题的人,还有一个额外的答案:

例如,当从GitHub部署时,代码在默认优化的Azure服务器中编译。

通过将SCM_BUILD_ARGS设置为/p:Configuration=Debug,我告诉服务器以可调试的方式进行编译

但还有更多的选择。看到这个: http://azure.microsoft.com/blog/2014/05/08/introduction-to-remote-debugging-on-azure-web-sites-part-3-multi-instance-environment-and-git/

在Visual Studio 2012中:

打开项目属性->调试->取消选中“启用Visual Studio托管进程”

我也有同样的问题。尝试以上所有方法,发现我还必须删除{PROJECT_ROOT}\bin\Release\netcoreapp2.2和{PROJECT_ROOT}\obj\Release\netcoreapp2.2内的所有内容。它肯定与发布有关,因为虽然我在我的Azure Web应用程序上使用部署工具/ bitbucket,但我确实尝试了Build >> Publish >> Publish to Azure,因为我想检查哪些文件实际部署了。

在之前的WPF应用程序中有同样的问题,这里所有的解决方案都没有解决这个问题。问题是模块已经被优化了,所以之前的解决方案不起作用(或不足以解决问题):

“优化代码”复选框未选中 选中“在模块负载上抑制JIT优化” 调试上的解决方案配置

模块仍然处于优化状态。请看下面的截图:


要解决这个问题,你必须删除优化的模块。要找到优化的模块路径,可以使用Process Hacker之类的工具。

在“进程面板”中双击您的程序,然后在新窗口中打开选项卡。网络组件”。然后在“本机映像路径”列中,您可以找到所有优化的模块路径。找到一个你想要去优化并删除文件夹(见下面的截图): (出于显而易见的原因,我模糊了公司名称)

重新启动应用程序(正确选中第1步中的复选框),它应该可以工作。

注意:文件被其他进程打开时可能被锁定,请尝试关闭Visual Studio。如果文件仍然被锁定,你可以使用Lock Hunter这样的程序

我也遇到过同样的问题,我的解决方案是将解决方案配置从发布更改为调试。希望能有所帮助