Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

20.3.3. ltrace를 사용하여 애플리케이션의 라이브러리 기능 호출 모니터링

ltrace 툴을 사용하면 애플리케이션에서 수행한 호출을 모니터링하여 라이브러리(공유 오브젝트)에서 사용 가능한 기능을 수행할 수 있습니다.

사전 요구 사항
절차
  1. 가능한 경우 관심 있는 라이브러리 및 기능을 식별합니다.
  2. 모니터링할 프로그램이 실행되지 않는 경우 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 옵션을 남겨 둡니다.

  3. ltrace 는 애플리케이션에서 수행한 라이브러리 호출을 표시합니다.

    대부분의 경우 애플리케이션에서 많은 수의 호출을 수행하고 필터가 설정되지 않은 경우 ltrace 출력이 즉시 표시됩니다.

  4. ltrace 는 프로그램이 종료되면 종료됩니다.

    추적 프로그램이 종료되기 전에 모니터링을 종료하려면 ctrl+C 를 누릅니다.

    • ltrace 가 프로그램을 시작하면 프로그램은 ltrace 와 함께 종료됩니다.
    • ltrace 를 이미 실행 중인 프로그램에 연결한 경우 프로그램은 ltrace 와 함께 종료됩니다.
  5. 애플리케이션에서 수행한 라이브러리 호출 목록을 분석합니다.

    • 애플리케이션이 충돌하면 중요한 정보가 로그 끝에 있을 수 있습니다.
    • 출력에는 불필요한 정보가 많이 포함되어 있습니다. 그러나 더 정확한 필터를 생성하고 절차를 반복할 수 있습니다.
참고

둘 다 출력을 보고 파일에 저장하는 것이 유리합니다. 이 작업을 수행하려면 tee 명령을 사용합니다.

$ ltrace ... |& tee your_log_file.log
추가 리소스
  • strace(1) 도움말 페이지
  • Red Hat Developer Toolset 사용자 가이드 - ltrace