c# visual studio 2013高级调试问题
本文关键字:调试 问题 高级 2013 visual studio | 更新日期: 2023-09-27 18:08:24
我有一个有趣而又有点恼人的问题。
在调试会话期间,我无法获得没有任何有形赋值的变量。
例如:
public void SomeMethod()
{
string TheString = "Hello World";
Thread.sleep(1000); // Breakpoint here
}
在上面的方法中,如果我在TheString获得它的值之后设置断点,现在因为TheString在任何执行语句中都没有实际使用。在设计时,变量是灰色的,当你将鼠标悬停在它上面时,它会显示"局部变量TheString从未使用过"
所有这些都很好,但是在调试会话期间,您无法通过直接窗口获得对TheString的任何引用。就好像变量根本不存在一样。
例如:
?TheString名称'TheString'在当前上下文中不存在
现在起作用的是:
public void SomeMethod()
{
string TheString = "Hello World";
Thread.sleep(1000); // Breakpoint here
MessageBox.Show(TheString);
}
它可以工作,因为该值在运行时用于执行路径。在这个阶段,我不确定这是否是Visual Studio 2013的新功能?我想定期调试回来,如果可能的话,感谢协助。
您可能正在以发布模式构建。
在Release模式下构建时,编译器会进行一些代码优化。其中之一是删除从未使用过的变量。