개요
ltrace는 프로그램이 사용하는 공유 라이브러리 함수 호출을 가로채어 출력합니다. 이는 프로그램의 동작 방식을 이해하고 문제를 진단하는 데 큰 도움이 됩니다.
주요 용도
- 프로그램 디버깅
- 성능 병목 현상 분석
- 보안 취약점 조사
- 역공학
주요 옵션
ltrace의 주요 옵션들은 추적 방식, 출력 형식, 필터링 등을 제어합니다.
추적 제어
출력 및 필터링
생성된 명령어:
명령어를 조합해 보세요.
설명:
`ltrace` 명령어를 실행합니다.
위 옵션들을 조합하여 AI와 함께 가상으로 명령어를 실행해 보세요.
사용 예시
ltrace를 사용하여 다양한 시나리오에서 프로그램의 라이브러리 호출을 추적하는 방법입니다.
기본 라이브러리 호출 추적
ltrace ls
'ls' 명령어의 라이브러리 호출을 추적합니다.
호출 통계 보기
ltrace -c ls
'ls' 명령어의 라이브러리 함수별 호출 횟수와 시간을 요약하여 보여줍니다.
출력을 파일로 저장
ltrace -o ls_trace.log ls
'ls' 명령어의 추적 결과를 'ls_trace.log' 파일에 저장합니다.
특정 라이브러리 함수만 추적
ltrace -e 'malloc|free' ls
'ls' 명령어 중 'malloc' 또는 'free' 함수 호출만 추적합니다.
자식 프로세스까지 추적
ltrace -f bash -c "ls"
'bash' 셸에서 'ls'를 실행할 때, 'bash'와 'ls' 모두의 라이브러리 호출을 추적합니다.
설치
ltrace는 대부분의 리눅스 배포판에서 기본적으로 설치되어 있지 않을 수 있습니다. 다음 명령어를 사용하여 설치할 수 있습니다.
Debian/Ubuntu
sudo apt update && sudo apt install ltrace
Debian 또는 Ubuntu 기반 시스템에서 ltrace를 설치합니다.
CentOS/RHEL/Fedora
sudo dnf install ltrace
CentOS, RHEL 또는 Fedora 기반 시스템에서 ltrace를 설치합니다.
팁 & 주의사항
ltrace 사용 시 유의할 점과 유용한 팁입니다.
성능 오버헤드
- ltrace는 프로그램 실행 속도를 현저히 저하시킬 수 있으므로, 프로덕션 환경에서는 주의하여 사용해야 합니다.
strace와의 차이점
- ltrace는 라이브러리 호출을 추적하는 반면, strace는 시스템 호출을 추적합니다. 두 도구를 함께 사용하면 프로그램의 동작을 더 완벽하게 이해할 수 있습니다.
정적 링크된 바이너리
- ltrace는 동적 라이브러리에 의존하는 프로그램에만 효과적입니다. 정적으로 링크된 바이너리에는 라이브러리 호출이 없으므로 ltrace로 추적할 수 없습니다.
권한
- 다른 사용자의 프로세스를 추적하거나 시스템 바이너리를 추적하려면 루트 권한(sudo)이 필요할 수 있습니다.