如何知道调试时执行了哪个语句

how to know which statement got executed while debugging

本文关键字:语句 执行 何知道 调试      更新时间:2023-10-16

在我的代码中,有时可以在一行中进行多个函数调用。我不知道哪个函数现在正在运行。 例如-

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。

当您在调试代码时遇到困难时,这通常意味着您在一行中执行了太多操作。这意味着您应该将一个复杂的语句拆分为多个语句。在您的情况下,如下所示:

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);
}

当前答案的替代方案可能是:

  • 进入声明。如果内联foo调用,则不太可能工作
  • 调试反汇编

这些替代方法可能不起作用,但如果它们起作用,它们允许调试未更改的代码。