1

でコンパイルすることを提案するこの問題の古い解決策を見つけました-gdwarf-2が、この解決策は機能しないか、機能しなくなりました。

したがって、コンパイルされたファイルで ddd を実行してから変数をダブルクリックすると、常にエラーが発生しますno symbol <var> in current context

私のプログラムはこれです:

int main()
{
    for (int i = 0; i < 10; ++i)
    {

    }
}

私が使用したコマンドは次のとおりです。

 g++ -g -O0 -gdwarf-2 test.cpp; ddd. ./a.out

プログラムのバージョン:

ddd: GNU DDD 3.3.12 (x86_64-pc-linux-gnu)
gdb: GNU gdb (Ubuntu 7.7.1-0ubuntu5~14.04.2) 7.7.1
gcc: gcc version 4.8.4 (Ubuntu 4.8.4-2ubuntu1~14.04.3)

どうすればこれを機能させることができますか?

4

2 に答える 2

1

変数を印刷/表示するには、スコープ内にある必要があります。したがって、ローカル変数/パラメーターの場合、そのスコープ内のブレークポイントにいる必要があります。

サンプルプログラムで ddd を起動し、すぐに印刷/表示を試みることで、発生しているエラーを再現できますi

行にブレークポイントを設定しforてプログラムを実行すると、期待どおりに印刷/表示できます。

私はコンパイルしました:

g++ -Wall -O0 -ggdb -o test.exe test.cpp

そしてdddを実行しました

ddd ./test.exe

私は持っている

GNU DDD 3.3.12 (x86_64-pc-linux-gnu)
GNU gdb (Ubuntu 7.11.1-0ubuntu1~16.04) 7.11.1
gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.1)
于 2016-08-07T20:22:52.697 に答える