调试方法调用的结果,而不添加中间代码行

时间:2013-04-08 19:46:06

标签: debugging visual-c++

我正在努力提高调试会话的效率。 有没有办法将表达式的结果看作隐式本地化?

在这个人为的例子中,我想知道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.
}

我不想进入方法2,因为它是一个深链,我只对结果感兴趣,但总是传递给像

这样的返回
return _mycs_string(_dat);

那么我必须一步一步进入可能具有相同模式的调用。

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

感谢。

1 个答案:

答案 0 :(得分:0)

我的建议是在这里编写代码,在前一行中明确设置cs.method2()的结果。

<击>

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

(您可以查看编译器中的结果代码,了解您在此处拥有的代码,了解它对您的`res&#39;变量的作用)

另一种可能性是w 在cs.method2()调用返回时监视堆栈(在调试器中)作为存储返回值的位置