5.7.9. 컴파일러 및 개발 도구


GCC에서 생성된 합성 함수가 SystemTap에 혼란 가중

GCC 최적화는 다른 함수의 부분 인라인 사본에 대해 합성 함수를 생성할 수 있습니다. SystemTap 및 GDB와 같은 도구는 이러한 온도 함수를 실제 함수와 구분할 수 없습니다. 결과적으로 SystemTap은 온도 및 실제 함수 진입점 모두에 프로브를 배치하므로 단일 실제 함수 호출에 대해 여러 개의 프로브 적중을 등록합니다.

이 문제를 해결하려면 SystemTap 스크립트를 수정하여 재귀를 감지하고 인라인 부분 함수와 관련된 프로브 배치를 방지합니다.

예제 스크립트

probe kernel.function("can_nice").call { }

다음과 같은 방식으로 수정할 수 있습니다.

global in_can_nice%

probe kernel.function("can_nice").call {
  in_can_nice[tid()] ++;
  if (in_can_nice[tid()] > 1) { next }
  /* code for real probe handler */
}

probe kernel.function("can_nice").return {
  in_can_nice[tid()] --;
}

이 예제 스크립트는 kprobes 또는 kretprobes 누락 또는 의도된 재귀와 같은 가능한 모든 시나리오를 고려하지 않습니다.

(BZ#1169184)

Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 문서 정보

Legal Notice

Theme

© 2026 Red Hat
맨 위로 이동