본문 바로가기

리눅스

[리눅스] core 파일을 분석하는 방법

728x90

core 파일을 분석하는 방법

gdb(GNU Debugger)를 사용하여 core 파일을 분석하는 방법은 다음과 같습니다

 

1. gdb 명령을 사용하여 core 파일을 연다.

gdb <실행파일 경로> <core 파일 경로>

예를 들어, /usr/bin/ls 실행파일과 /tmp/core 파일이 있다면 다음과 같이 gdb를 실행합니다.

gdb /usr/bin/ls /tmp/core

 

2. gdb가 실행되면, "bt" 명령을 사용하여 backtrace를 확인할 수 있습니다. backtrace는 프로그램이 죽기 전까지 실행한 함수 호출 스택을 나타내며, 문제점을 파악하는 데 도움이 됩니다.

bt

 

3. "info threads" 명령을 사용하여 코어 파일에서 발생한 스레드 정보를 확인할 수 있습니다.

info threads

 

4. "thread apply all bt" 명령을 사용하여 모든 스레드의 backtrace를 확인할 수 있습니다.

thread apply all bt

원하는 스레드를 선택하여 컨텍스트를 출력↓↓↓↓↓

더보기

원하는 스레드를 선택하여 스레드 컨텍스트를 출력할 수 있습니다. 예를 들어, 스레드 2의 컨텍스트를 출력하려면 다음과 같이 입력합니다.

thread 2

 

5. "info registers" 명령을 사용하여 레지스터 정보를 확인할 수 있습니다.

info registers

 

6. coredump 파일에서 발생한 문제를 파악하여 해결하는 방법은 프로그램의 구조와 문제의 복잡성에 따라 다를 수 있습니다. 일반적으로는, 해당 프로그램의 소스코드와 디버그 정보를 함께 분석하여 문제를 파악하고 해결하는 것이 좋습니다.

 

위의 과정을 참고하여, gdb를 사용하여 coredump 파일을 분석하고 문제를 해결할 수 있습니다.

 

728x90