프로세스의 코어 덤프란 정확히 무엇이며 여기에는 무엇이 포함되어 있나요?

프로세스의 코어 덤프란 정확히 무엇이며 여기에는 무엇이 포함되어 있나요?

분명히 GDB는 래퍼(예: gcore)를 통해 프로세스의 코어 덤프를 생성할 수 있지만 정확히 무엇이 포함되어 있는지는 확실하지 않으며 서로 다른 소스가 완전히 다른 내용을 말하기 때문에 답을 찾기가 어렵습니다.

따라서 다음과 같은 질문이 있습니다.

  1. 프로세스의 전체 가상 메모리가 포함되어 있습니까? 그렇지 않다면 어떤 부분인가요? 쓰기 가능한 모든 영역, 아니면 스택만 아니면 (이름에서 알 수 있듯이) 일부 기본 부분만 아니면 무엇입니까?

  2. GDB를 통해 전체 프로세스 메모리가 포함된 코어 파일을 생성할 수 있습니까? 그렇다면 어떻게 해야 할까요?

  3. 프로세스의 메모리 맵을 기반으로 메모리의 모든 영역을 저장하고 연결하여 생성된 "덤프"와 명령을 사용하여 자동으로 생성된 파일의 차이점은 무엇입니까 gcore?

  4. 프로세스는 RAM 어딘가에 일부 데이터를 씁니다. gcore명령을 사용하여 생성된 코어 파일 에 데이터가 (항상) 액세스되고 저장된다는 것을 확신할 수 있습니까 ? 그렇지 않다면 왜 그렇습니까? 그것은 무엇에 달려 있습니까?

답변1

코어 파일에는 해당 프로세스와 관련된 프로세스 가상 메모리의 모든 부분(일반적으로 데이터 및 스택 세그먼트)이 포함됩니다. 실행 가능한 코드가 포함된 텍스트 세그먼트는 포함되지 않습니다. 코어 파일을 디버깅하려면 디버거에 어떤 프로그램이 실행 중인지 알려주어야 합니다.

콘텐츠에 대한 자세한 설명은 다음에서 확인할 수 있습니다.ELF 코어 파일 분석

관련 정보