GDB를 사용할 때 프로그램이 여러 파일로 나누어져 있더라도, 기본적인 디버깅 방법은 동일합니다. 다만, 몇 가지 추가적인 명령어와 전략을 사용하면 멀티파일 프로젝트에서의 디버깅이 더 편리해집니다.

1. 컴파일 시 디버깅 정보 포함하기

여러 파일로 나누어진 프로젝트를 디버깅하려면, 각 소스 파일을 디버깅 정보(-g 옵션 포함)와 함께 컴파일해야 합니다. 예를 들어, 두 개의 소스 파일 main.cutils.c가 있을 때, 이를 다음과 같이 컴파일할 수 있습니다:

gcc -g -o my_program main.c utils.c

이렇게 하면 GDB가 각각의 소스 파일과 변수 정보를 인식할 수 있습니다.

2. GDB에서 파일별로 중단점 설정하기

GDB에서 특정 파일의 특정 라인이나 함수에 중단점을 설정할 수 있습니다. 이를 위해 파일 이름과 라인 번호 또는 함수 이름을 함께 지정합니다.

3. 파일별 소스 코드 보기

GDB에서 소스 파일을 탐색할 때 list 명령어를 사용하여 다른 파일의 코드를 볼 수 있습니다.

4. 현재 위치 확인 및 파일 이동

디버깅 중에 현재 디버깅하고 있는 파일과 위치를 확인하고 다른 파일로 이동할 수 있습니다.

5. 여러 파일의 함수 호출 스택 추적

여러 파일에 걸쳐 있는 함수 호출 스택을 추적할 때 backtrace 명령어를 사용합니다. 각 호출 스택 프레임은 파일 이름과 줄 번호를 포함하여 표시되므로, 여러 파일에 걸친 호출 관계를 쉽게 파악할 수 있습니다.

backtrace