본문 바로가기

OS/vxworks

MemScope 활용

개요

     소프트웨어 디버깅시 가장 까다로운 에러중의 하나가 메모리 관련된 것이 메모리 누수(Leak)일 것이다. VxWorks 6.6에서는 MemScope를 제공하여, 메모리 전반에 걸친 디버깅 정보를 제공해주는 매우 유용한 툴이다. Workbench를 구입했다면 기본적으로 사용할 수 있다.

 

준비사항

     첨부된 메뉴얼의 2.2 Requirements를 잘 읽어보고, 자신의 환경에 맞도록 설정해주어야 한다. 테스트 하려는 시스템의 경우 PowerPC를 사용하므로 메뉴얼에 나와있는대로 Kernel Configuration에서 다음의 옵션을 활성화해준다.

     operating system components >> kernel components >> Allow 32-bit branches to handlers

 

실행

     타켓 서버가 연결되어 있는 상태에서 MemScope를 수행해 본다. 타켓 서버를 선택한 후 오른쪽 마우스 클릭으로 메뉴를 띄워 MemScope를 선택하면 필요한 컴포넌트를 다운로드하며 MemScope를 실행한다.

 

MemScope00(2).JPG

 

결과분석

Summary View

  • 시스템의 메모리 사용 요약정보를 보여준다.
  • Alloc는 현재까지 new나 malloc으로 할당된 회수를 의미하며 Free는 free나 delete로 해제된 회수를 의미한다.

MemScope01.JPG

 

 

Aggregate View

  • Alloc한 회수와 Free한 회수가 차이가 있다면, 메모리 누수가 발생한 것이다.
  • Current # 항목은 바로 메모리 누수가 발생한 횟수를 말하는 것으로, 정렬하여 보면 어느 루틴이 문제가 있는지 알수가 있다.

MemScope02.JPG

 

Tree View

  • Thread 및 RTP 단위로 메모리 상황을 확인할 수 있다.

MemScope03.JPG

 

 

Time View

  • 시간에 대해 메모리 상황을 보여준다. 메모리 누수가 발생한다면 계속적으로 증가하는 그래프를 보게 될 것이다.

MemScope04.JPG

 

 

Fragmentation View

MemScope05.JPG

 

참고문서

이 글은 스프링노트에서 작성되었습니다.