GDB imprime valores errados

Eu tenho um problema com a depuração de um programa C ++ usando o GDB.

Quando eu usoprint object.member, nem sempre imprime o valor da variável corretamente. Em vez disso, ele imprime o valor de um dos argumentos para a função que estou depurando. E isso não muda através da função, embora eu mude o valor deobject.member ao longo.

E a questão é, o programa é bastante grande e consiste em vários módulos, com modelos parcialmente especializados e tal, então não posso postar tudo aqui.
Agora eu tentei criar um testcase mínimo, mas qualquer que seja a simplicidade que eu tentei, não consigo fazer funcionar. Quero dizer, não funciona.

Então, tudo o que posso fazer é: alguém já viu esse comportamento no GDB, e você descobriu o que causou isso e como resolvê-lo?

Há uma pergunta aqui sobre comportamento similar, mas isso significa que o programa não está sendo compilado adequadamente (níveis de otimização altos demais, etc.). Eu compilei com-Wall -Wextra -pedantic -g -O0, então não pode ser isso.

E o programa corre bem; eu possocout << object.member; e isso gera o valor esperado, então não sei o que tentar agora.

questionAnswers(1)

yourAnswerToTheQuestion