C 및 C++로 코딩된 Cent OS 5.8에서 실행되는 복잡한 다중 스레드 응용 프로그램이 있습니다.
나는 ~을 찾고 있다함수 추적다음 작업을 수행하는 데 도움이 되는 도구입니다.
각 스레드의 모든 외부 및 내부 함수 정보(함수 이름, 입력 및 출력 매개변수)를 버퍼로 추적합니다.
버퍼 저장을 위한 구성 제공필요하다디스크에.
구성 제공켜기 끄기각 프로세스를 추적합니다.
구성 제공켜기 끄기각 프로세스/스레드에 대한 내부 기능입니다.
답변1
그러한 도구가 있는지는 확실하지 않지만 비교적 쉽게 이 작업을 수행할 수 있는 두 가지 방법을 생각해 볼 수 있습니다.
- GDB 스크립트 작성(스레드별 중단점,파기보다는 기록하라, 등. )
- 추적하려는 함수를 재정의하는 함수를 작성하세요
LD_PRELOAD library
(예:malloc
//realloc
재정의free
여기) 그리고 사용리벤윈드호출 스택 표시