세 도구의 용도 차이 + 각 실제 사례 순으로 설명
학교 시스템 프로그래밍 수업과 졸업 논문 실습을 통해 gdb, ftrace, kdump를 각각 다른 상황에서 써봤습니다. gdb는 세그멘테이션 폴트가 발생하는 C 프로그램을 디버깅할 때 처음 깊이 써봤는데, 브레이크포인트와 워치포인트를 함께 써서 포인터가 언제 잘못된 주소를 가리키는지 찾을 수 있었습니다.
ftrace는 커널 함수 호출 흐름을 추적할 때 썼는데, 어떤 함수가 얼마나 자주 호출되는지를 오버헤드 없이 볼 수 있어서 성능 분석에 유용했습니다. kdump는 커널 패닉 후 남은 메모리 덤프를 분석하는 실습에서 접했고, crash 도구로 스택 트레이스를 읽는 방법을 익혔습니다. 세 도구는 용도가 달라서, 사용자 공간 버그는 gdb, 커널 함수 추적은 ftrace, 크래시 사후 분석은 kdump로 먼저 선택하는 기준이 생겼습니다.
디버깅 도구 선택이 문제 해결 속도를 결정하는 자리라는 걸 그때 배웠습니다.