2010-07-12 17 views

Respuesta

25

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 
+3

increíble. La configuración predeterminada de la arquitectura es i386. Informaría esto como un error ... –

Cuestiones relacionadas