트레이스

ltrace

ltrace는 Linux 디버깅 유틸리티로 사용자 공간 응용 프로그램이 공유 라이브러리에 발신한 콜을 표시하기 위해 사용됩니다.를 위해서는 동적 부하 시스템에 접속하여 어플리케이션이 콜을 발신할 때 사용하는 파라미터와 라이브러리 콜이 보고하는 반환값을 표시하는 심을 삽입할 수 있습니다.ltrace는 Linux 시스템콜도 추적할 수 있습니다ltrace는 동적 라이브러리 후킹 메커니즘을 사용하기 때문에 타깃 바이너리에 직접 스태틱하게 링크된 라이브러리에 대한 콜을 추적할 수 없습니다.0.7.3 이후 ltrace는 dlopen()사용하여 로드된 라이브러리에 대한 콜을 추적할 수도 있습니다.

출력 예

다음은 호출의 첫 번째 몇 줄입니다.xterm. C 표준 라이브러리(malloc, strlen), POSIX 라이브러리(getuid), X Toolkit Intentics(XtOpen Application), X11 클라이언트 간 통신 라이브러리(IceAddConnection)를 포함한 다양한 라이브러리에 대한 호출을 표시하는 ltrace를 보여줍니다.감시) 호출의 반환 값은 = 기호 뒤에 표시됩니다.

[pid 11783] __libc_start_main(0x407420, 1, 0x7fff75b6aad8, 0x443cc0, 0x443d50 < >미완성 ...> [pid 11783] 이데오()                            = 1000 [pid 11783] 쇠약해졌다()                            = 1000 [pid 11783] getuid의()                             = 1000 [pid 11783] getgid(getgid)()                             = 1000 [pid 11783] 세트유드(1000)                         = 0 [pid 11783] 마로크(91)                           = 0x00cf8010 [pid 11783] XtSetLanguageProc(0, 0, 0, 0x7f968c9a3740, 1) = 0x7f968bc16220 [pid 11783] 동작하다(0, 21505, 0x7fff75b6a960)      = 0 [pid 11783] XtSetErrorHandler(0x42bbb0, 0x44f99c, 0x669f80, 146, 0x7fff75b6a72c) = 0 [pid 11783] XtOpen 어플리케이션(0x670260, 0x44f99c, 0x669f80, 146, 0x7fff75b6a72c) = 0xd219a0 [pid 11783] IceAddConnection구경하세요(0x42adc0, 0, 0, 0x7f968c9a3748, 0 < >미완성 ...> [pid 11783] IceConnection 번호(0xd17ec0, 0, 1, 0xcfb138, 0xd17c00) = 4 [pid 11783] < >... IceAddConnection구경하세요 재개했다> ) = 1 [pid 11783] XtSetErrorHandler(0, 0, 1, 0xcfb138, 0xd17c00) = 0 [pid 11783] XtGetApplicationResources(0xd219a0, 0x6701c0, 0x66b220, 34, 0) = 0 [pid 11783] 스트렌(오프)                        = 3 

「 」를 참조해 주세요.

  • strace – Linux용 시스템콜 트레이서
  • ktrace – *BSD용 시스템콜 트레이서
  • trus – 기존 시스템콜 트레이서
  • DTrace – Solaris / OS X / BSD / Windows 커널 트레이스 도구
  • SystemTap – Linux 커널 추적 도구

외부 링크