esp register 값을 리턴하는 아주 간단한 코드 입니다.
#include <stdio.h>
unsigned long get_esp() { __asm__("movl %esp, %eax"); }
int main()
{
printf("esp: %x\n", get_esp());
return 0;
}
위의 코드를 gcc 2.96 (RedHat 7.3) 에서 컴파일 하면 주위 환경이
크게 변하지 않는 한 같은 결과 값(즉 main 함수에서 esp 값)을 리턴합니다.
그런데 새로운 맘으로ㅡ.ㅡ;; RedHat 9를 깔고 거기에 있는
gcc 3.2.2로 컴파일 하니까 esp 값이 자꾸 변합니다. 특별히 실시간으로