6

これは私のコードの構造です

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

whereはほとんどの場合にsomeFunction()評価されます0

GDBが上記の1行目にあるとき、nextそうすると// Some code実行されません。

ifステートメント内のコードを実行するように GDB に指示する方法はありますか?

4

3 に答える 3

6

回避策を提案できます。一時変数int i=0を用意してから、if as を実行します

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

gdbで目的の位置に到達したら。iを使用して 1 に設定します。

set i = 1

そして、あなたのループが実行されます。もちろん、ループの後、毎回実行したくない場合は i をリセットする必要があります。

于 2012-04-26T09:45:34.783 に答える
4

最適化されていない限り、gdb の// Some codeon ステートメントで停止した後にジャンプできます。 17.2 Continueing at a Different Address を参照してください。に立ち寄ったと仮定すると、次のことができます。if// Some codeif

jump +2
于 2012-04-26T12:24:48.980 に答える
-3

0はfalseを意味するため、ifループには入りません。

if(1)
于 2012-04-26T09:52:51.047 に答える