2011-03-28 31 views
46
0x0000000000400448 <main+0>: push %rbp 
0x0000000000400449 <main+1>: mov %rsp,%rbp 
0x000000000040044c <main+4>: mov $0x6,%eax 
0x0000000000400451 <main+9>: leaveq 
0x0000000000400452 <main+10>: retq 

me trataron:¿Cómo interrumpir las instrucciones de ensamblaje en una dirección dada en gdb?

breaki 0x0000000000400448 

pero parece que no hay tales comandos.

¿Tiene gdb esta característica?

+2

¿por qué 'breaki'? ¿Es eso un error tipográfico? – Blauhirn

+1

@Blauhirn Tal vez como una supuesta analogía con 'stepi' y' nexti', que se utilizan para un solo paso en el nivel de instrucción. –

Respuesta

73

tratar break *0x0000000000400448

+1

¿Por qué 'break 0x0000000000400448' no funciona? –

+9

Probablemente porque * es necesario para especificar una dirección. ver http://sourceware.org/gdb/current/onlinedocs/gdb/Specify-Location.html#Specify-Location –

34

Otra forma:

break *main+4

Esto añadirá un punto de interrupción en 0x000000000040044c
creo que esto es más fácil que escribir la dirección completa!

Cuestiones relacionadas