>시스템 튜토리얼 >리눅스 >coredumpctl을 사용하여 버그 찾기 및 수정

coredumpctl을 사용하여 버그 찾기 및 수정

PHPz
PHPz앞으로
2024-02-16 09:45:181289검색

안타까운 사실은 모든 소프트웨어에는 버그가 있으며 일부 버그로 인해 시스템 충돌이 발생할 수 있다는 것입니다. 이 문제가 발생하면 종종 "코어 덤프"라는 데이터 파일이 디스크에 남습니다. 이 파일에는 시스템이 충돌한 시점에 대한 관련 데이터가 포함되어 있으며 충돌이 발생한 이유를 확인하는 데 도움이 될 수 있습니다. 개발자는 충돌을 일으킨 지침의 흐름을 보여주는 "추적" 형식의 데이터를 요청하는 경우가 많습니다. 개발자는 이를 사용하여 버그를 수정하고 시스템을 개선할 수 있습니다. 시스템이 충돌하는 경우 추적백을 쉽게 생성하는 방법은 다음과 같습니다.
使用 coredumpctl 查找并处理 BUG

coredumpctl
사용 시작

대부분의 Fedora 시스템은 ABRT(자동 오류 보고 도구) [1]를 사용하여 자동으로 충돌 파일을 캡처하고 버그를 기록합니다. 그러나 서비스를 비활성화했거나 패키지를 제거한 경우에는 이 방법이 도움이 될 수 있습니다.

시스템 충돌이 발생하면 먼저 최신 소프트웨어를 실행하고 있는지 확인하세요. 업데이트에는 심각한 오류와 충돌을 일으키는 것으로 발견된 버그에 대한 수정 사항이 포함되는 경우가 많습니다. 업데이트 후 오류가 발생한 상황을 재현해 보세요.

충돌이 계속 발생하거나 이미 최신 소프트웨어를 실행하고 있는 경우 유용한 coredumpctl 도구가 있습니다. 이 프로그램은 충돌을 찾아 처리하는 데 도움이 됩니다. 시스템의 모든 코어 덤프 목록을 보려면 다음 명령을 실행하십시오.

으아악

예상보다 목록이 길어도 놀라지 마세요. 때로는 시스템 구성 요소가 백그라운드에서 조용히 충돌하고 자체적으로 복구되는 경우가 있습니다. 오늘의 덤프를 빠르게 찾는 쉬운 방법은 -since 옵션을 사용하는 것입니다:

으아악

"PID" 열에는 덤프를 식별하는 데 사용되는 프로세스 ID가 포함됩니다. 이 번호는 나중에 필요하므로 주의하시기 바랍니다. 또는 기억하고 싶지 않다면 다음을 사용하여 변수에 할당하세요.

으아악

코어 덤프에 대한 정보를 보려면 다음 명령을 사용하십시오($MYPID 변수를 사용하거나 PID 번호를 바꾸십시오).

으아악
debuginfo 패키지 설치

디버그 기호는 코어 덤프의 데이터와 원본 코드의 명령어 사이를 이스케이프합니다. 이 기호 데이터는 상당히 클 수 있습니다. 대부분의 사용자가 Fedora 시스템에서 실행하는 패키지와 달리 기호는 "debuginfo" 패키지로 설치됩니다. 어떤 debuginfo 패키지를 설치해야 하는지 확인하려면 먼저 다음 명령을 실행하세요.

으아악

화면에 많은 정보가 표시될 수 있습니다. 마지막 줄에서는 dnf를 사용하여 더 많은 debuginfo 패키지를 설치하라는 메시지가 표시될 수 있습니다. sudo [2]와 함께 이 명령을 실행하여 설치하세요.

으아악

그런 다음 coredumpctl gdb $MYPID 명령을 다시 시도해 보세요. 다른 기호가 역추적에서 확장되므로 이 작업을 반복적으로 수행해야 할 수도 있습니다.

추적 캡처

정보를 기록하려면 디버거에서 다음 명령을 실행하세요.

으아악

페이지 매김을 끄면 도움이 될 수 있습니다. 긴 역추적의 경우 시간이 절약됩니다.

으아악

이제 역추적을 실행하세요:

으아악

이제 quit을 입력하여 디버거를 종료할 수 있습니다. mybacktrace.txt에는 버그나 문제에 첨부할 수 있는 추적 정보가 포함되어 있습니다. 또는 실시간으로 다른 사람과 공동작업하는 경우 텍스트를 페이스트빈에 업로드할 수 있습니다. 어느 쪽이든 이제 개발자에게 문제 해결에 더 많은 도움을 제공할 수 있습니다.


위 내용은 coredumpctl을 사용하여 버그 찾기 및 수정의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 linuxprobe.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제