Linux: 디버그: systemtap: 개인 모듈의 기능을 조사하는 방법

아직 방법을 찾지 못했습니다. 커널의 debuginfo의 심볼 테이블에 개인 모듈의 기능 정보가 없기 때문입니다.
컴파일할 때 보고된 오류는 다음과 같습니다.

[root@vmtca-2101 systemtap]# stap -s 32 -m dump_buff.ko -p4 dump_buff.stp
모듈 이름을 'dump_buff'로 잘림
의미 오류: 프로브 포인트를 해결하는 동안: dump_buff.stp에서 식별자 'module':20:7
소스: 프로브 모듈("abc").function("def") { ^ 의미 오류: 일치하지 않음 패스 2: 분석 실패. [사람 오류::pass2]


systemtap의 설명에서 "프로브 포인트를 해결하는 동안" 오류는 다음을 의미합니다: 프로브 포인트가 systemtap에 의해 직접적으로 이해되지도 않고 tapset 스크립트에 의해 별칭으로 정의되지도 않은 이름이 지정되었습니다. 프로브 포인트의 ``트리''와의 차이점 네임스페이스는 {\em N} 위치에 있습니다(왼쪽에서 0부터 시작)
이것은 systemtap이 탐색해야 하는 지점의 이름을 이해할 수 없으며 tapset 스크립트의 별칭도 아니라는 것을 의미합니다.

의미론적 오류: 프로브 포인트를 분석하는 동안 프로브 포인트에 대한 일치 항목이 없습니다.
다양한 이유로 프로브 포인트를 분석할 수 없습니다. \verb+foobar+ 함수가 발견되지 않은 \verb+kernel.function(“foobar”)+와 같은 디버그 정보 기반 프로브 포인트일 수 있습니다. 스크립트가 함수 이름에 와일드카드를 지정하거나 유효하지 않은 파일 이름 또는 소스 라인 번호를 지정하는 경우 발생할 수 있습니다.

추천

출처blog.csdn.net/qq_36428903/article/details/132243009