A.2.2. Python 스크립트를 사용하여 코어 덤프 저장
dump-guest-memory.py
python 스크립트는 qemu-kvm 프로세스가 호스트에 충돌한 후 코어 덤프에서 게스트 가상 머신의 메모리를 추출 및 저장하는 GDB(GNU Debugger) 확장을 구현합니다. 호스트 측 QEMU 프로세스 충돌이 게스트 작업과 관련된 경우 QEMU 프로세스 충돌 시 게스트 상태를 조사하는 것이 유용할 수 있습니다.
python 스크립트는 GDB 확장을 구현합니다. GDB에 대한 새로운 명령입니다. GDB를 사용하여 원본(crashed) QEMU 프로세스의 코어 덤프 파일을 연 후 GDB로 python 스크립트를 로드할 수 있습니다. 그런 다음 GDB 프롬프트에서 새 명령을 실행할 수 있습니다. 이를 통해 QEMU 코어에서 새 로컬 파일을 덤프하는 게스트 메모리 덤프가 추출됩니다.
dump-guest-memory.py
python 스크립트를 사용하려면 다음을 수행합니다.
- 시스템에 qemu-kvm-debuginfo 패키지를 설치합니다.
- GDB를 시작하여 크래시된
/usr/libexec/qemu-kvm
바이너리에 대해 저장된 코어 덤프 파일을 엽니다. 디버그 기호가 자동으로 로드됩니다. - GDB에서 새 명령을 로드합니다.
# source /usr/share/qemu-kvm/dump-guest-memory.py
참고python 스크립트를 로드한 후 built-in GDB help 명령은dump-guest-memory
확장에 대한 자세한 정보를 제공할 수 있습니다. - GDB에서 명령을 실행합니다. 예를 들면 다음과 같습니다.
# dump-guest-memory /home/user/extracted-vmcore X86_64
- 게스트 커널 분석을 위한 크래시 유틸리티를 사용하여
/home/user/extracted-vmcore
를 엽니다.
크래시 유틸리티에 사용할 QEMU 코어 파일에서 게스트 가상 머신 코어를 추출하는 방법에 대한 자세한 내용은 ' crash' 유틸리티에서 사용할 수 있도록 'gcore'에서 ELF 코어를 추출하는 방법을 참조하십시오.