GDB を使用して C++ プログラムをデバッグする際に少し問題があります。
を使用するprint object.member
と、変数の値が常に正しく出力されるとは限りません。代わりに、引数の 1 つの値をデバッグ中の関数に出力します。object.member
そして、全体の値を変更しても、関数によっては変更されません。
問題は、プログラムがかなり大きく、いくつかのモジュールで構成されており、部分的に特化したテンプレートなどが含まれているため、ここにすべてを投稿することはできません.
今、最小限のテストケースを作成しようとしましたが、簡単に試してみましたが、うまくいきません。つまり、仕事ではありません。
だから私が尋ねることができるのは、GDBでこの動作を見たことがありますか?また、その原因と解決方法を見つけましたか?
同様の動作についてここで質問がありますが、それらはプログラムが適切にコンパイルされていないことに相当します (最適化レベルが高すぎるなど)。でコンパイルした-Wall -Wextra -pedantic -g -O0
ので、それはできません。
そして、プログラムは正常に実行されます。私はcout << object.member;
期待値を出力することができるので、今何を試すべきかわかりません。