Предполагая, что ваш GDB подключен к целевому процессу (как это обычно бывает), вы смотрите на неправильное пространство памяти.id(a)
дает адрес объекта в области памяти GDB, в то время как команда x
просматривает пространство памяти цели.
Если в вашем случае цель также выглядит как 32-битный процесс, поэтому ваши адреса усекаются.