용어집/문제가 생겼을 때

Spindump

다른 이름: 멈춤 보고서, 앱 멈춤 진단

간단한 답

spindump는 Mac의 프로세스들이 무엇을 하고 있었는지 기록하는 진단 보고서로, 멈추거나 응답하지 않는 앱을 조사하는 데 쓰입니다. macOS에는 spindump 도구가 들어 있고, 활성 상태 보기의 더 보기 메뉴에서도 만들 수 있습니다.

spindump는 프로세스 하나가 아니라 시스템 전체를 샘플링한 것과 비슷합니다. 어떤 스레드가 실행 중이었고 어떤 스레드가 기다리고 있었는지 보여 주므로, 개발자가 앱이 응답하지 않게 된 이유를 파악하는 데 도움이 됩니다.

Apple은 활성 상태 보기의 Spindump가 강제 종료로 끝낸 응답 없는 앱에 대한 보고서를 만든다고 설명합니다. 더 보기 메뉴에 있는 여러 진단 보고서 중 하나로, 프로세스 샘플과 시스템 진단도 함께 있습니다.

활성 상태 보기에서 spindump를 만드는 방법

활성 상태 보기 윈도우 상단의 더 보기 버튼(점 3개)을 클릭하고 Spindump를 선택합니다. 관리자 암호를 물어볼 수 있습니다. 완료되면 보고서가 열리고, 저장할 수 있습니다.

보고서에 문제가 담기도록 앱이 멈춘 뒤가 아니라 멈춰 있는 동안 만드세요.

spindump 활용 방법

앱 개발자에게 보내는 버그 보고서나 피드백 지원을 통해 Apple에 보내는 보고서에 첨부하세요. 보고서에는 실행 중인 앱과 프로세스의 이름이 들어 있을 수 있으니, 공개적으로 공유하기 전에 살펴보세요.

터미널에서 spindump를 만드는 방법

spindump 명령은 Mac의 모든 프로세스를 샘플링하므로 root로 실행해야 합니다. 프로세스가 하는 일을 기록하기만 할 뿐 멈추지 않습니다.

  1. 앱이 아직 멈춰 있는 동안 터미널을 엽니다.
  2. sudo spindump Safari -reveal 명령을 실행합니다. Safari는 앱 이름의 일부로 바꾸세요. 요청하면 관리자 암호를 입력합니다.
  3. 샘플링하는 동안 기다립니다. 기본 길이는 10초입니다.
  4. 끝나면 보고서가 /tmp에 저장되며, -reveal 옵션을 쓰면 Finder에서 보여 줍니다.

spindump 읽는 방법

지정한 앱이 맨 먼저 나오고, 나머지 프로세스가 모두 뒤따릅니다. 각 프로세스에는 스레드와 샘플링하는 동안 관찰된 콜 스택이 나옵니다.

  • 기본적으로 스택은 횟수순으로 정렬됩니다. 84로 시작하는 줄은 샘플 84개에서 관찰된 것입니다.
  • 프레임 맨 앞의 별표(*)는 커널 코드를 뜻합니다.
  • 각 스택의 가장 깊은 프레임을 보면 스레드가 실행 중이었는지 일시 중단되어 있었는지 알 수 있습니다.
  • 앱의 메인 스레드가 다른 프로세스를 기다리며 일시 중단되어 있다면, 같은 보고서에서 그 프로세스를 살펴보세요. 이것이 프로세스 하나만 샘플링하는 것보다 나은 점입니다.

spindump가 저장되는 곳

응답하지 않던 앱을 강제 종료하면 macOS가 자동으로 보고서를 만들고 Apple에 보내겠냐고 물어볼 수 있습니다. 이런 보고서는 /Library/Logs/DiagnosticReports에 저장됩니다.

응용 프로그램 > 유틸리티에 있는 콘솔 앱에서 둘러볼 수 있습니다. 사이드바의 리포트 아래에서 스핀 리포트와 진단 리포트를 확인하세요. 보고서를 선택하면 읽을 수 있습니다.

활성 상태 보기에서 직접 만든 보고서는 완료되면 윈도우로 열립니다. 보낼 사본이 남도록 윈도우를 닫기 전에 그 윈도우에서 보고서를 저장하세요.

샘플, spindump, 시스템 진단 중 무엇을 쓸까

활성 상태 보기의 더 보기 메뉴에는 여러 보고서가 있습니다. 문제에 맞는 것을 고르세요. spindump는 모든 프로세스를 담기 때문에 샘플보다 훨씬 크고, 시스템 진단은 그보다도 오래 걸리며 실행 전에 개인정보 보호 안내를 보여 줍니다. 개발자가 샘플을 요청하면 샘플을 보내세요. Apple 지원에서 특정 보고서를 요청하면 그것을 보내세요.

  • 프로세스 샘플: 프로세스 하나, 약 3초. 어떤 앱이 멈췄거나 바쁜지 알 때 사용합니다.
  • Spindump: Mac의 모든 프로세스. 앱이 멈췄는데 원인이 다른 프로세스일 수 있을 때 사용합니다.
  • 시스템 진단: Mac 전체의 로그로 만드는 더 큰 보고서로, 보통 Apple 지원에서 요청합니다.

자주 묻는 질문

Mac의 spindump란 무엇인가요?

프로세스들이 무엇을 하고 있었는지 기록한 진단 보고서로, 앱이 멈춘 이유를 찾는 데 쓰입니다. 활성 상태 보기의 더 보기 메뉴에서 만들 수 있습니다.

spindump와 샘플은 무엇이 다른가요?

프로세스 샘플은 선택한 프로세스 하나를 기록합니다. spindump는 시스템 전체의 프로세스를 살펴보므로, 멈춤의 원인이 앱 바깥에 있을 때 도움이 됩니다.

spindump가 CPU를 많이 쓰는 것은 정상인가요?

보고서를 작성하는 동안 잠깐 CPU를 쓸 수 있으며, 앱이 멈춘 직후에 그런 경우가 많습니다. 보고서가 끝나면 저절로 멈춰야 합니다.

spindump에 관리자 암호가 필요한 이유는?

시스템 프로세스를 포함해 Mac의 모든 프로세스의 콜 스택을 읽기 때문입니다. macOS는 root에게만 이를 허용합니다.

아무것도 멈추지 않았을 때도 spindump를 만들 수 있나요?

네. 하지만 평소 활동만 나타납니다. 보고서에 문제가 담기도록 앱이 멈춰 있는 동안 만드세요.

앱을 강제 종료한 뒤 spindump가 나타난 이유는?

macOS는 응답하지 않는 앱이 강제 종료될 때 무엇을 하고 있었는지 spindump로 기록합니다. “Apple에 보내기” 대화상자가 제출하겠다고 제안하는 것이 바로 그 보고서입니다.

관련 항목

활성 상태 보기보다 나은 것을 찾고 있나요? Mac용 활성 상태 보기 대체 앱 추천을 확인하거나 용어집의 모든 용어를 둘러보세요.