GDB drukuje nieprawidłowe wartości

Mam trochę problemów z debugowaniem programu C ++ za pomocą GDB.

Kiedy używamprint object.member, nie zawsze drukuje poprawnie wartość zmiennej. Zamiast tego wypisuje wartość jednego z argumentów funkcji, którą debuguję. I nie zmienia się poprzez funkcję, chociaż zmieniam wartośćobject.member poprzez.

A rzecz w tym, że program jest dość duży i składa się z kilku modułów, z częściowo wyspecjalizowanymi szablonami i tak dalej, więc nie mogę go tutaj opublikować.
Teraz próbowałem stworzyć minimalną kasetę testową, ale bez względu na to, jak bardzo się starałem, nie mogę tego zrobić. To znaczy nie działa.

Mogę tylko zapytać, czy ktokolwiek kiedykolwiek widział to zachowanie w GDB i czy odkryłeś, co go spowodowało i jak go rozwiązać?

Pojawia się tu pytanie o podobne zachowanie, ale ich ilość nie jest poprawnie kompilowana (zbyt wysokie poziomy optymalizacji itp.). Skompilowałem to-Wall -Wextra -pedantic -g -O0, więc to nie może być to.

A program działa dobrze; mogęcout << object.member; i to daje oczekiwaną wartość, więc nie wiem, co teraz wypróbować.

questionAnswers(1)

yourAnswerToTheQuestion