2012-02-18 12 views
7

Sto eseguendo il debug di un programma c con gdb nel terminale Linux, l'ho disassemblato e l'ho eseguito, quindi ho cercato di trovare l'indirizzo di memoria del registro EIP. Questo è ciò che è accaduto:Registro non valido eip?

(gdb) I R EIP valido registro `EIP'

Perché si dice che il mio registro EIP è valido?

+0

Si tratta di un programma a 64 bit ? Se è così, è una fregatura, non eip. –

+0

Sì, è grazie. Non avevo idea che fossero nomi diversi. – jay

+0

Cool, rendendolo la risposta. –

risposta

16

È un programma a 64 bit? Se è così, è una fregatura, non eip.

+2

Si noti che 'gdb' consente di fare riferimento al contatore del programma usando' $ pc'. Funzionerà sia su 32 e 64 bit, sia su altre architetture. – Jester

1

seconda dell'architettura del vostro programma di registro può cambiare:

  • 16 bit - ip
  • 32 bit - eip
  • 64 bit - rip