2012-02-18 5 views
7

리눅스 터미널에서 gdb로 c 프로그램을 디버깅 할 때, 나는 그것을 해체하고 실행 한 다음 EIP 레지스터의 메모리 주소를 찾으려고 시도했다.등록 정보가 잘못되었습니다?

(GDB) 내가 EIP 잘못된 레지스터`EIP '

왜 내 EIP 레지스터는 무효라고 말하는가 r에이 무슨 일이 있었는지입니까?

+0

는 64 비트 프로그램입니다 ? 그렇다면 eip가 아니라 찢어진 것입니다. –

+0

예, 감사합니다. 나는 그들이 다른 이름인지 전혀 몰랐습니다. – jay

+0

멋진 답변입니다. –

답변

16

64 비트 프로그램입니까? 그렇다면 eip가 아니라 찢어진 것입니다.

+2

'gdb'는'$ pc'를 사용하여 프로그램 카운터를 참조 할 수있게합니다. 이것은 32 비트 및 64 비트 모두에서 작동하며 다른 아키텍처에서도 작동합니다. – Jester

1

프로그램의 아키텍처에 따라 레지스터는 변경할 수 있습니다

  • 16 비트 - ip
  • 32 비트 - eip
  • 64 비트 - rip
관련 문제