6

这是我的代码的结构

if(someFunction())
{
  // Some code
}

大部分时间都在哪里someFunction()评估0

当 GDB 在上面的第 1 行时,如果我这样做,next// Some code不会执行。

有没有办法告诉 GDB 执行if语句中的代码?

4

3 回答 3

6

我只能建议你一个解决方法。有一个临时变量int i=0,然后执行 if as

if(i==1){
  //some code
}

当您使用 gdb 到达所需位置时。使用设置i为 1

set i = 1

然后你的循环将被执行。当然,在循环之后,如果您不想每次都执行它,您将不得不重置您。

于 2012-04-26T09:45:34.783 回答
4

您可以在 gdb 中// Some code停止 on 语句后跳转到,除非未优化,请参阅17.2 Continuing at a different Address。假设您停在,您可以:if// Some codeif

jump +2
于 2012-04-26T12:24:48.980 回答
-3

0 表示假,所以不会进入 if 循环,使用

if(1)
于 2012-04-26T09:52:51.047 回答