1. ホーム
  2. c

[解決済み] gdb: 現在のコンテキストにシンボル "i" がない

2022-01-30 16:14:38

質問

gdbでCプログラムをデバッグしているとき、forループでブレークポイントを設定しました。i"の値がプリントできません(「No symbol "i" in current context.」と表示されます)。他の変数の値は表示されます。これは正常なのでしょうか?

以下はループです。

for (i=0; i < datasize; i++){  
    if ( feature_mask[i] > 0 ){  
        k = feature_mask[i] - 1;  
        if (neighbors[k][nmax-1] != 0){
            neighbors[k][nmax-1] = bvalue;  
            feature_mask[i] = -feature_mask[i];
        }
    }
}

解決方法は?

を使用しているため、おそらくコンパイルされたコードから最適化されているのでしょう。 feature_mask[i] をループ内で使用します。

コンパイラを呼び出す際に、最適化レベルを指定しましたか?もしgccを使っているのであれば、その場で -O オプションを指定して、もう一度試してみてください。