0

我正在尝试提高调试会话的效率。有没有办法将表达式的结果视为隐式局部变量?

在这个人为的示例中,我想知道 cs.method2() 的评估结果,而无需编写一行代码或单步执行该方法。

bool myObject::isEmpty(double d)
{
     bool res;
     custString cs(d);

     // bool dresult = cs.method2();
     res = !cs.method1().empty() && cs.method2();

     return res; //set break here.
}

我不想进入method2,因为它是一个深链,我只对结果感兴趣,但这总是传递给像这样的返回

return _mycs_string(_dat);

因此,我必须一直步入可能具有相同模式的调用。

而且我不想编写代码拆分行,因为这是一个我无意修改的库。

谢谢。

4

1 回答 1

0

我的建议是按照您在此处编写的代码,在上一行中明确设置 cs.method2() 的结果。

这个建议的原因是我非常相信编译器开发人员能够在从函数返回之前优化掉“不必要的”局部变量。

(您可以查看编译器的结果代码以了解您在此处拥有的代码,看看它对您的 `res' 变量做了什么)

另一种可能性是 w在从 cs.method2() 调用返回时观察堆栈(在调试器中),因为这是存储返回值的地方。

于 2013-04-08T20:11:36.257 回答