是否可以在Visual Studio调试器中获取方法的返回值,即使该值没有分配给局部变量?例如,我正在调试以下代码:
public string Foo(int valueIn)
{
if (valueIn > 100)
return Proxy.Bar(valueIn);
else
return "Not enough";
}
因为我没有在Foo中设置任何局部变量,并且假设我没有在调用Foo的任何东西中设置断点,如果我在Foo中有一个断点(或者其他方式),有没有办法看到返回值是什么?我对Autos或Intermediate窗口没有太多的经验,所以我不确定这些窗口是否是一个有效的选项。
发布于 2009-11-10 06:22:41
您可以在Foo中设置断点,打开即时窗口并运行以下命令:
? Foo(valueIn)
这将在“即时”窗口中打印返回值。
也可以复制表达式并将其粘贴到“监视”窗口中,但只有在我确定调用没有副作用时才会这样做(否则会得到令人困惑的结果)。
发布于 2009-11-10 06:22:14
您可以随时切换到“反汇编程序”视图并逐步执行各个指令。在执行'ret‘指令之前,返回值将在@eax (或@rax)中。
发布于 2017-08-19 02:32:24
类似问题的答案是:从Visual Studio 2013开始,您可以将变量$ReturnValue
添加到监视列表中。它包含函数的实际返回值。
致谢于Jesper Jensen。
https://stackoverflow.com/questions/1704268
复制相似问题