最近,我编写了一个无法正常工作的函数。我设法找出问题所在并以环岛的方式进行修复,但我想知道是否有更简单的方法。该函数(向下分解)是这样的:

int func(int param)
{
  if(param == 0) return SOMETHING;
  //...
  for(int i = 0;i < 4;i++) {
    // Point A
    func(param - 1);
  }
  //...
}


我想在A点设置一个断点,以便可以看到参数= 10(例如)和i = 0、1、2、3发生了什么,但是问题是,该函数是递归的,因此它用( case)param = 9,8,...我想知道是否有一种方法可以仅针对特定情况设置断点。在这种情况下,我使用了MS Visual C ++ Express 2008,但是如果有一种方法可以与另一个编译器(也许是g ++ / gdb)一起使用,那也会很有帮助。

最佳答案

在Visual Studio中,您可以右键单击断点并以各种方式对其进行修改。
Condition...下,您可以指定条件,例如param == 10。您甚至可以使用简单的C库函数进行字符串比较strcmp(mystr,"hi") == 0

关于c++ - 特殊情况下的断点,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5526649/

10-15 00:02