임베디드 시스템 소프트웨어 개발을 위한

Integrated Solutions

국제 표준 준수를 위한 프로젝트 관리 부터 설계 그리고 검증까지!

애플리케이션의 최대 Stack 사용량을 계산하기 위한 자동화 솔루션

StackAnalyzer

애플리케이션 내 작업의 최악의 Stack 사용량을 자동으로 파악하고,

Stack Overflow를 발견하거나 그 부재를 공식적으로 증명할 수 있습니다.

#stack #Stack Memory #Worst Case Stack Usage #스택 사용량 #스택 분석 #스택 사용량 정적 분석 #Stack Overflow

임베디드 시스템에서 Stack 사용량의 과소 추정은 Stack Overflow로 인한 치명적인 오류를 발생시키고,

 과대 추정은 소중한 메모리 자원의 낭비를 불러옵니다.


 StackAnalyzer는 바이너리 코드를 정적 분석하여, 특정 프로세서에서 실행될 때의 최대 Stack 사용량을 자동으로 계산합니다.


StackAnalyzer을 통해 편리하게 최대 Stack 사용량을 검증하고 안전한 소프트웨어를 설계하세요.

주요 특징

1
AI 추상 해석 기반
애플리케이션의 모든 입력과 각 Task 실행에 대해 Stack 사용량을 자동으로 계산하고, Stack overflow가 발생하지 않음을 수학적으로 증명합니다.
2
바이너리 기반 Stack 사용량 정적 분석
최종 시스템에서 실행되는 것과 같은 실행 파일로 정적 분석을 수행하여, Worst-Case Stack Usage를 정확하게 계산합니다.
3
코드 수정 없이 바로 분석
측정을 위한 탐침코드 등이 불필요하므로, Stack 사용량 분석의 왜곡 현상이 일어나지 않습니다. 
4
복잡한 호출 구조 반영
루프, 함수 포인터, 재귀 호출 등 다양한 제어 흐름 요소를 반영하여 보다 정확하고 현실적인 분석 결과를 제공합니다.
5
인라인 어셈블리 · 라이브러리 호출 지원
인라인 어셈블리, 라이브러리 함수 호출까지도 분석하여 전체 시스템 관점에서의 정확도를 확보합니다.
6
다양한 ISA 지원
여러 Instruction Set Architecture(ISA)를 지원해 다양한 임베디드 플랫폼에서 활용할 수 있습니다.

주요 기능

1
함수 호출 그래프 제공
• 모든 루틴에는 최악의 스택 사용량이 주석으로 표시되며, 최악의 경로는 빨간색, 데드 코드와 실행 불가능한 경로는 회색으로 표시되면서 쉽게 내용 확인이 가능

• 각 루틴은 제어 흐름 그래프와 연동되어 루틴 내 제어 흐름을 추가로 검사 가능
2
제어 흐름 그래프 제공
• 제어 흐름 그래프에서 모든 기본 블록에는 최악의 스택 사용량이 주석으로 표시되며, 이를 더 확장하여 각 명령어의 스택 사용량을 검사 가능

• StackAnalyzer를 사용하면 원하는 수준의 세부 정보로 애플리케이션의 동작을 분석 지원
3
Stack 사용량 통계치 제공
• 분석 결과에 대한 자세한 그래프 외에도 표와 차트 개요 확인

• 통합, 문서화, 인증 목적을 위한 사용자 정의 가능한 XML 보고서는 GUI와 명령줄에서 자동으로 생성
4
섹션 뷰 제공
• 다양한 대쉬보드를 통해 소프트웨어 작동 방식을 더욱 깊이 있게 파악

• 특정 주소 영역의 메모리 내용 확인
5
ValueAnalyzer 제공
• 옵션인 ValueAnalyzer 추가 기능을 사용하면 모든 실행 컨텍스트의 모든 프로그램 지점에서 모든 레지스터와 메모리 셀의 내용을 검사

기술 노트

시스템 소프트웨어 개발

[StakAnalyzer] 실제 사고로 본 스택 분석의 중요성

2000년대 후반, 미국 T사의 차량에서 발생한 급발진 사고는 수십 건의 인명 피해를 남기며 전 세계 자동차 산업에 큰 충격을 안겨주었습니다. 당시 이 사건은 기계적 결함인지, 운전자 실수인지에 대한 논쟁이 이어졌지만, 미국 법정에서 제시된 기술 분석 결과는 한 가지 놀라운 사실을 보여주었습니다. 그림 1. T사 급발진 차량 사고 사진 (출처 : https

#StackAnalyzer #WorkstCaseStackUsage #스택오버플로우 #스택사용량 #스택분석 #스택최적화 #스택메모리
StackAnalyzer 엔지니어

산업 분야

적용 사례

1
Automotive
OEM의 요구사항인 Stack Depth Analysis를 지원합니다. 동적 시험으로 검출 불가한 Worst-Case의 Stack Memory 사용량을 간편하게 바이너리 기반의 정적 분석으로 계산합니다.
2
Aerospace & Defense
DO-178B/C에서 요구하는 Worst-Case Stack Usage를 정적 분석 방식으로 계산하며, 항공기 소프트웨어에 대한 안전 인증을 지원합니다.
3
Energy
에너지 제어 시스템에 탑재되는 소프트웨어의 최대 스택 사용량을 바이너리 기반 정적 분석 방식으로 지원합니다.

주요 고객

Automotive & Railways
  • 현대 로고 이미지
  • Continental 로고 이미지
  • HONDA 로고 이미지
  • DAIMLER 로고 이미지
Aerospace & Defense
  • NASA 로고 이미지
  • AIRBUS 로고 이미지
Energy
  • MTU 로고 이미지
  • Framatome 로고 이미지
  • Vestas 로고 이미지

MDS인텔리전스의 컨텐츠 내용을
SNS에 공유해보세요!

StackAnalyzer 담당자

직접 문의하기

MDS인텔리전스의 전문가가 정확하고 빠르게 도와드립니다.

031-601-4082
StackAnalyzer 문의하기