25장. 자동 버그 보고 도구 (ABRT)
25.1. ABRT 소개
일반적으로 ABRT 로 축약된 자동 버그 보고 툴 은 사용자가 애플리케이션 충돌을 감지하고 보고하도록 설계된 도구 집합입니다. 주요 목적은 문제를 보고하고 해결책을 찾는 과정을 쉽게 하는 것입니다. 이 컨텍스트에서 솔루션은 Bugzilla 티켓, 지식 베이스 문서 또는 수정이 포함된 버전으로 패키지를 업데이트하기 위한 제안일 수 있습니다.
ABRT 는 탐지 된
문제를 처리, 분석, 보고하기 위한 여러 시스템 서비스 및 유틸리티로 구성됩니다. 데몬은 대부분의 백그라운드에서 자동으로 실행되고 애플리케이션이 충돌하거나 커널 oops가 감지되면 정상적으로 스프링됩니다. 그런 다음 데몬은 관련 문제 데이터(예: 코어 파일(있는 경우), 충돌된 애플리케이션의 명령줄 매개 변수 및 법의 법(forensic utility)의 기타 데이터를 수집합니다.
ABRT 는 현재 C, C++, Java, Python 및 Ruby 프로그래밍 언어, X.Org 충돌, 커널 oopses 및 커널 패닉로 작성된 애플리케이션에서 충돌 감지를 지원합니다. 지원되는 오류 및 충돌 유형에 대한 자세한 내용과 다양한 유형의 충돌이 탐지되는 방법에 대한 자세한 내용은 25.4절. “소프트웨어 문제 탐지” 를 참조하십시오.
확인된 문제는 원격 문제 추적기에 보고될 수 있으며 문제가 탐지될 때마다 자동으로 보고를 구성하도록 구성할 수 있습니다. 문제 데이터는 로컬 또는 전용 시스템에 저장되어 사용자가 수동으로 검토, 보고, 삭제할 수도 있습니다. 보고 툴에서는 문제 데이터를 Bugzilla 데이터베이스 또는 Red Hat 기술 지원(1.8.0Support) 웹 사이트로 보낼 수 있습니다. 이 도구는 FTP
또는 SCP
를 사용하여 업로드하거나 이메일로 전송하거나 파일에 쓸 수도 있습니다.
기존 문제 데이터를 처리하는 ABRT 구성 요소(예: 새 문제 데이터 생성과 달리)는 별도의 프로젝트인 libreport 의 일부입니다. libreport 라이브러리는 문제를 분석하고 보고하기 위한 일반적인 메커니즘을 제공하며 ABRT 이외의 애플리케이션에서도 사용합니다. 그러나 ABRT 및 libreport 작업 및 구성이 밀접하게 통합되어 있습니다. 따라서 이 내용은 이 문서에서 하나씩 설명됩니다.
ABRT 보고서는 코어 덤프가 생성될 때만 생성됩니다. 코어 덤프는 일부 신호에만 생성됩니다. 예를 들어 SIGKILL(-9)은 코어 덤프를 생성하지 않으므로 ABRT 는 이 오류를 catch할 수 없습니다. 신호 및 코어 덤프 생성에 대한 자세한 내용은 man 7 신호를 참조하십시오.