2012-04-26 8 views
5

による強制はこれは私がnextをすれば、その後// Some codeが実行されることはありません、私のコードGDB:GDBは、上記の1行目にあるとき、if文

if(0) 
{ 
    // Some code 
} 

の構造です。

if文内のコードをGDBに実行させる方法はありますか?

+5

コードは存在すらしない可能性があります。 – pmg

答えて

3

を使用している場合に入ることはありません。あなたは、あなたがifに停止させることができると仮定すると:コンパイラが最適化の最小値を持っていた場合

jump +2 
+1

ありがとう!それはまさに私が探していたものでした。 – Randomblue

6

私はあなたに回避策を提案することができます。一時変数int i=0を持っているし、次にやるあなたはgdbで所望の位置に到達すると

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

ようであれば。

set i = 1 

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

+0

ええ、私はそれを考えていました。私はあまりハッキーではないものを望んでいた。 – Randomblue

+1

@Randomblueあなたのコードに 'if(0){}'ステートメントを持っているのは、すでにハッキーではありませんか? – HonkyTonk

+1

@HonkyTonk:まあ、実際には私の 'if'文はあまりダムではありません。それは単にイラストレーションのためだった。実際の生活では、 'someFunction()'があります。ここで 'someFunction()'はほとんどの場合 '0 'と評価されます。 – Randomblue

-2

if文のコードを実行する場合は、if (0)if (1)に変更してください。

-2

0は偽を意味し、それはループ、あなたが// Some codeが出て、最適化されていなかった場合を除き、17.2 Continuing at a Different Addressを参照してください、GDBでif文を上停止した後// Some codeにジャンプすることができ

if(1) 
関連する問題