20.3.3. ltrace를 사용하여 애플리케이션의 라이브러리 기능 호출 모니터링
ltrace
툴을 사용하면 애플리케이션에서 수행한 호출을 모니터링하여 라이브러리(공유 오브젝트)에서 사용 가능한 기능을 수행할 수 있습니다.
사전 요구 사항
절차
- 가능한 경우 관심 있는 라이브러리 및 기능을 식별합니다.
모니터링할 프로그램이 실행되지 않는 경우
ltrace
를 시작하고 프로그램을 지정합니다:$ ltrace -f -l library -e function program
-e
및-l
옵션을 사용하여 출력을 필터링합니다.-
함수로 표시할 함수 이름을 제공합니다 . e
기능
옵션은 여러 번 사용할 수 있습니다. 밖으로 나가면ltrace
는 모든 함수에 대한 호출을 표시합니다. -
함수를 지정하는 대신
-l 라이브러리 옵션을
사용하여 전체 라이브러리를 지정할 수 있습니다. 이 옵션은-e 기능
옵션과 유사하게 작동합니다.
자세한 내용은 ltrace(1)_ 매뉴얼 페이지를 참조하십시오.
프로그램이 이미 실행중인 경우 해당 프로세스 ID (pid)를 찾아
ltrace
를 연결합니다.$ ps -C program (...) $ ltrace ... -ppid
분기된 프로세스 또는 스레드를 추적하지 않으려면
-f
옵션을 남겨 둡니다.-
함수로 표시할 함수 이름을 제공합니다 . e
ltrace
는 애플리케이션에서 수행한 라이브러리 호출을 표시합니다.대부분의 경우 애플리케이션에서 많은 수의 호출을 수행하고 필터가 설정되지 않은 경우
ltrace
출력이 즉시 표시됩니다.ltrace
는 프로그램이 종료되면 종료됩니다.추적 프로그램이 종료되기 전에 모니터링을 종료하려면
를 누릅니다.-
ltrace
가 프로그램을 시작하면 프로그램은ltrace
와 함께 종료됩니다. -
ltrace
를 이미 실행 중인 프로그램에 연결한 경우 프로그램은ltrace
와 함께 종료됩니다.
-
애플리케이션에서 수행한 라이브러리 호출 목록을 분석합니다.
- 애플리케이션이 충돌하면 중요한 정보가 로그 끝에 있을 수 있습니다.
- 출력에는 불필요한 정보가 많이 포함되어 있습니다. 그러나 더 정확한 필터를 생성하고 절차를 반복할 수 있습니다.
둘 다 출력을 보고 파일에 저장하는 것이 유리합니다. 이 작업을 수행하려면 tee
명령을 사용합니다.
$ ltrace ... |& tee your_log_file.log
추가 리소스
- strace(1) 도움말 페이지
- Red Hat Developer Toolset 사용자 가이드 - ltrace