2012-02-18 3 views
7

Я отлаживаю программу c с gdb в терминале linux, я разобрал ее и запустил, а затем попытался найти адрес памяти в регистре EIP. Это то, что случилось:Неверный регистр eip?

(GDB) я г EIP Invalid регистр `EIP»

Почему говорят, что мой EIP регистр является недействительным?

+0

Является ли это 64-битная программа ? Если это так, это рип, а не eip. –

+0

Да, спасибо, я понятия не имел, что они разные. – jay

+0

Прохладный, что делает его ответом. –

ответ

16

Это 64-разрядная программа? Если это так, это рип, а не eip.

+2

Обратите внимание, что 'gdb' позволяет вам ссылаться на счетчик программ, используя' $ pc'. Это будет работать как на 32, так и на 64 бит, а также на других архитектурах. – Jester

1

В зависимости от архитектуры вашей программы регистр может измениться:

  • 16 бит - ip
  • 32 бит - eip
  • 64 бит - rip
Смежные вопросы