Parece que gdb elige algunos valores predeterminados sorprendentes cuando no está depurando ninguna pieza concreta del código. Si se carga un archivo ejecutable de 64 bits como en: gdb /bin/sh
se obtiene un resultado menos sorprendente:
(gdb) p sizeof(void *)
$1 = 8
Puede también específicamente decirle qué hacer GDB:
(gdb) show architecture
The target architecture is set automatically (currently i386)
(gdb) p sizeof(void *)
$1 = 4
(gdb) set architecture
Requires an argument. Valid arguments are i386, i386:x86-64, i8086, i386:intel, i386:x86-64:intel, auto.
(gdb) set architecture i386:x86-64
The target architecture is assumed to be i386:x86-64
(gdb) p sizeof(void *)
$2 = 8
increíble. La configuración predeterminada de la arquitectura es i386. Informaría esto como un error ... –