로딩
요청 처리 중입니다...

당신의 코드도 폭탄일 수 있다? TRACE32로 Stack Overflow 예방하기

 당신의 코드도 폭탄일 수 있다? TRACE32로 Stack Overflow 예방하기

포스팅 3줄 요약 Stack Overflow란 무엇인가? Stack Overflow로 인해 발생한 대형 사고 사례 TRACE32 기반 Stack 사용량 측정방법 Stack Overflow 란 무엇인가?

스택(Stack)은 함수 호출 시 지역 변수, 리턴 주소, 레지스터 값 등을 저장하는 메모리 영역입니다. 프로그램이 실행될 때마다 함수 호출이 중첩되면, 해당 정보들이 스택에 차곡차곡 쌓이고 함수가 종료되면 다시 사라집니다.

이렇게 “쌓았다가 꺼내는” 구조(LIFO: Last In First Out) 때문에 스택은 프로그램 동작의 핵심 자원이라 할 수 있습니다. 문제는 스택의 크기가 한정되어 있다는 점입니다.

만약 재귀 호출이 너무 깊거나, 지역 변수가 과도하게 할당되거나, 인터럽트 서비스 루틴(ISR)이 중첩 호출되는 경우 스택 메모리가 한계를 넘어설 수 있습니다. 이 상황을 바로 Stack Overflow(스택 오버플로우)라고 부릅니다.

Stack Ove...