在我的代码中,有时可以在一行中进行多个函数调用。我不知道哪个函数正在运行。 例如-
int foo(){
if(m==0||n==0) return 0;
return std::max(foo(a,b,m-1,n),foo(a,b,m,n-1));
}
在调试时,了解基于所有参数调用哪个函数变得很笨拙,有时甚至不起作用。调试时是否可以查看一行中的进程?我使用Codelite IDE。
答案 0 :(得分:3)
当您在调试代码时遇到困难时,通常意味着您在一行中做了太多事情。这意味着您应该将一个复杂的语句拆分为多个语句。您的情况是这样的:
int foo(){
if(m==0||n==0) return 0;
auto a = foo(a,b,m-1,n);
auto b = foo(a,b,m,n-1);
return std::max(a, b);
}
答案 1 :(得分:1)
当前答案的替代方法可能是:
foo
个电话,则不太可能这些替代方法可能不起作用,但是如果可行,它们允许调试未更改的代码。