Skip to content

Addr2line

addr2line 은 디버그 정보를 이용해서 파일명과 행 번호를 얻는다.

How to use

프로그램은 미리 디버그 정보를 포함하도록 컴파일해야 한다. GCC에서는 -g옵션을 사용한다.

#include <stdio.h>

void func(void)
{
    printf("func call\n");
}

int main(void)
{
    printf(" func addr %p\n", func);
}

컴파일은 아래와 같이 한다.

$ gcc -g main.c

실행 한다.

$ ./a.out
func addr 0x8048414

가장 간단한 예제를 살펴보자

$ addr2line -e a.out 0x8048414
/root/tmp/addr2line.c:4

Input file 과 주소를 주니, 실행라인이 정확히 출력된다.

함수의 이름도 출력할수 있다.

$ addr2line -f -e a.out 0x8048414
func
/root/tmp/addr2line.c:4

addr2line 역시 BFD 라이브러리를 이용해서 디버그 정보를 구한다. addr2line 은 주소로부터 파일명과 행 번호를 얻을 수 있다.

See also