gdb は KDevelop のすべての変数を表示しません。

gdb は KDevelop のすべての変数を表示しません。

この絵が私よりも問題をよりよく説明してくれることを願っています。

通常、マルチスレッドアプリケーションをデバッグしています。カイ開発そしてデータベース

アプリケーション(F11ショートカット)を段階的に実行し、変数の初期化を進めました。回答

画面の左側には、表示できるすべての変数のリストがあります。

私はそれを使用しています-Gオプションg++しかし、他のオプションがありません。

私のメイクファイルから:

g++ -std=c++11 -g -ggdb -O example.cpp -I../libs -I$(BOOST_INCLUDES) -L$(BOOST_LIBS) -pthread -lboost_thread -lboost_system  -o example 

したがって、基本的にアプリを構築するのに問題はありません。また、非常によく実行されます。デバッガにすべての変数が表示されない理由を知っている人はいますか?

ここに画像の説明を入力してください。

ベストアンサー1

これGCCドキュメント説明する:

GCCを-g使用してコードを最適化するために取る近道-Oは時々驚くべき結果を生むことがあります。宣言した一部の変数はまったく存在しない可能性があり、一部の文は実行されない可能性があります。定数の結果を計算するか、その値がすでに存在するため、一部の文はループの外に移動されたため、別の場所で実行できます。

あなたの場合、デバッグ時に表示されない変数が最適化されている可能性があります。

プログラムをデバッグするには使用すべき-Og-Oコマンドg++ラインではなくこれを行うと、最適化はデバッグに影響を与えません。

おすすめ記事