스택의 싸이즈를 알수 있나요?

slowind의 이미지

임베디드 시스템에서 프로그램 중인데

이 시스템의 최대 스택 싸이즈를 알 수 있는 방법이 있나요?

컴파일러는 GNU gcc 기반을 사용합니다. 나머지 도구들도

GNU껄 사용하구요...

ARM 기반이긴 한데.. 이놈이 스택싸이즈의 문제인지..

덩치큰 배열이나(이미지땜시...) 구조체 사용시 문제가 있네요.


최대 스택 싸이트를 알 수 있는 방법을 알고 계신분 알려주세용~~

쌀밥의 이미지

각 함수당 스텍 사이즈는 직접 계산 해보시면 알 수 있을것 같고요..

해당 바이너리의 스텍 사이즈 (정확한 계산법은 저도 잘 모르겠습니다)를 보는 유틸리티가 있었던걸로 기억합니다.

아마도 size 였던거 같은데...; (지금 제가 쓸수 있는 linux box가 없어서;; )

일하는 사람들의 희망 민주노동당 : http://www.kdlp.org
반공 교육의 성과로, 민주주의의 반대가 공산주의(또는 사회주의)라고 생각하는 사람이 많다.

cocas의 이미지

쌀밥 wrote:
각 함수당 스텍 사이즈는 직접 계산 해보시면 알 수 있을것 같고요..

해당 바이너리의 스텍 사이즈 (정확한 계산법은 저도 잘 모르겠습니다)를 보는 유틸리티가 있었던걸로 기억합니다.

아마도 size 였던거 같은데...; (지금 제가 쓸수 있는 linux box가 없어서;; )

stack의 크기는 run time에 정해지기 때문에 size 명령으로는 확인할 수 없습니다. 최대 스택 크기는 커널이 알아서 정하게 되고요.

일반적인 머신이라면 보통 ulimit -a 에 나오는 크기 정도가 한계라고 알고 있는데 임베디드쪽은 잘 모르겠네요.

p.s 쌀밥님은 최근 kldp에서 자주 보이시네요. gpg에서 자주 뵙던( 물론 혼자서만.. *^^* ) 분이라 그런지 참 반갑습니다.

익명 사용자의 이미지

ulimit -s 하면 스택 사이즈를 볼 수 있고,
스택 사이즈 제한을 없애려면 ulimit -s unlimited하시면 됩니다.