트레이스
ltraceltrace는 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 커널 추적 도구
외부 링크
- 공식 웹사이트
- ltrace man 페이지
- Rodrigo Rubira Branco, Ltrace Internals, Ottawa Linux 심포지엄 2007
- latrace : LD_AUDIT libc 기능을 사용하여 동작하는 다이내믹라이브러리 콜트레이서