GDB druckt falsche Werte

Ich habe ein kleines Problem beim Debuggen eines C ++ - Programms mit GDB.

Wenn ich benutzeprint object.memberGibt den Wert der Variablen nicht immer korrekt aus. Stattdessen wird der Wert eines der Argumente für die Funktion ausgegeben, die ich debugge. Und es ändert sich nicht durch die Funktion, obwohl ich den Wert von ändereobject.member während.

Und die Sache ist, dass das Programm ziemlich groß ist und aus mehreren Modulen besteht, mit teilweise spezialisierten Vorlagen und dergleichen, so dass ich hier nicht alles posten kann.
Jetzt habe ich versucht, einen minimalen Testfall zu erstellen, aber was auch immer ich einfach versucht habe, ich kann es nicht zum Laufen bringen. Ich meine, nicht arbeiten.

Ich kann also nur fragen, ob jemand dieses Verhalten in GDB jemals gesehen hat und ob Sie herausgefunden haben, was es verursacht hat und wie man es löst.

Es gibt hier Fragen zu ähnlichem Verhalten, aber diese führen dazu, dass das Programm nicht richtig kompiliert wird (Optimierungslevel zu hoch usw.). Ich habe es mit kompiliert-Wall -Wextra -pedantic -g -O0Das kann es nicht sein.

Und das Programm läuft gut; ich kanncout << object.member; und das gibt den erwarteten Wert aus, also weiß ich nicht, was ich jetzt versuchen soll.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage