다음 옵션 세트를 사용하여 자체 커널을 구축하고 있습니다.
CONFIG_FRAME_POINTER=y
CONFIG_DEBUG_INFO=y
따라서 생성 된 vmlinux 파일에 필요한 모든 debuginfo가 있다고 가정합니다.
해당 커널을 시스템에 설치하고 vmlinux 파일을 / boot / 아래에 두었습니다. 그러나 perf 주석을 달았을 때 어셈블리 코드와 함께 소스 코드가 표시되지 않습니다. 전체 소스 코드가 아닌 어셈블리 코드와 c 함수 이름 만 표시합니다 (주석을 작성하는 동안 "s"를 전환 해 보았습니다).
다음은 내 성능 명령입니다.
#perf record -g -a -e cycles:k sleep 5
#perf report -f -g -s symbol
#perf annotate -f -s <kernel function name> > annotate_<kernel_function>.txt
내가 여기서 무엇을 놓치고 있습니까? debuginfo 패키지를 별도로 설치해야합니까?
감사합니다, Atish
커널 rpm을 빌드하기위한 binrpm-pkg 대상은 debuginfo 패키지 생성을 비활성화했기 때문에 debuginfo를 생성하지 않습니다.이 작업을 시도하고 scripts/package/mkspec
커널 소스 트리에서 열고 줄을 검색 echo "%define debug_package %{nil}"
하고이 줄을 주석 또는 제거하고 빌드를 시도 할 수 있습니다. 다시.
그 이유는이 줄이 rpmbuild에 debuginfo 패키지를 건너 뛰도록 명시 적으로 알려주기 때문입니다.
링크 참조 :
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다