리눅스 디버깅의 알파이자 오메가는 바로 코어 덤프 ( core dump ) 입니다.
프로세스가 비정상적으로 종료하게 되면, 그 프로세스가 사용하던 메모리 영역을 통채로 복사하여 파일로 남기고 죽습니다.
이런 동작을 core dump 라고 부르고, 남겨진 메모리 파일을 core 라고 부릅니다.
그런데, 도대체 이 core 가 무엇일까요?
...
초초초초 창기, 호랑이 담배피던 시절에 사용하는 컴퓨터에는 '자기 코어 메모리'라고 부르는 것이 메모리를 사용하였습니다.
자력을 이용해서 저장하는 장치였는데, 위의 사진은 무려 1024 비트 (!!!) 를 저장할 수 있는 자기 코어 메모리입니다. 제가 지금 쓰는 구형 스마트폰이 무려 1GB 메모리를 탑재하고 있으니, 대략 800만배의 용량이로군요.
그리고, 저 자기 코어 메모리의 또 한가지 특성은 '비휘발성' 입니다. 그래서, 프로그램을 돌리다 죽으면, 저 메모리에는 당시의 상태가 그대로 남아 있게 되는데, 이를 '눈으로 보고' 디버깅 하였다고 합니다. 지금은 저런 메모리를 사용하지 않지만, 그 용어만은 살아남아 여전히 쓰이고 있습니다.