저는 Linux/ARM의 공유 라이브러리에서 함수 호출을 추적할 수 있는 도구를 찾고 있습니다. 기본적으로 저는 명령줄을 지정하고 도구에서 호출된 라이브러리 함수와 전달된 인수에 대한 기록을 생성할 수 있기를 원합니다. 이를 달성하기 위해 어떤 형태의 함수 후크를 사용할 수 있다고 가정합니다.
나는 ltrace
그것이 나에게 필요한 기능을 제공한다는 것을 알고 있습니다. 그러나 ltrace
다음과 같은 이유로 나에게는 작동하지 않습니다.
- 더 복잡한 프로그램을 추적할 때 세그폴트가 자주 발생합니다.
- 아주 느린.
저는 좀 더 강력한 대안을 찾고 있습니다. 속도는 좋지만 주요 관심사는 아닙니다. 첫째, (비회피) 프로그램을 프로파일링할 수 있는 라이브러리 호출을 추적하는 방법을 원합니다.
Sysdig는 ARM에서도 작동하지 않으며 dtrace 포트는 아직 NetBSD에서만 베타 버전입니다.
그러한 도구를 사용할 수 있는지 아는 사람이 있습니까?
답변1
본 적 있나요?LTTng? ARM을 포함한 다중 아키텍처에 적합한 커널 공간/사용자 공간 추적 프레임워크입니다.
다음을 사용하여 사용자 공간 코드 추적을 설정할 수 있습니다.LTTng-UST. 그러나 추적하려는 공유 라이브러리를 다시 컴파일하고 LTTng 추적 지점을 추가해야 합니다.
공식 lttng 문서에서 사용자 공간 추적을 설정하기 위한 지침은 다음과 같습니다.자신의 사용자 애플리케이션 추적
이것이 귀하의 경우에 도움이 될지는 모르겠지만 임베디드 플랫폼(ARM 포함)에서 lttng를 컴파일/설치하는 방법에 대한 Stack Overflow 스레드도 있습니다.임베디드 Linux 시스템에 LTTng를 구축하고 배포하는 방법은 무엇입니까?