debian 8 jessie에서 perf-events로 간단한 C 프로그램을 프로파일하려고합니다. 심볼을 볼 수는 있지만 스택 트레이스를 얻을 수 없습니다. 동일한 절차로 우분투 16.04에서 좋은 스택 트레이스를 생성합니다.perf-events가 debian 8의 StackTraces를 표시하지 않습니다. jessie
linux-image-amd64-dbg
및 libc6-dbg
을 설치했습니다. 커널 구성 매개 변수가 포함되어 있음을 확인했습니다. CONFIG_KALLSYMS=y
디버그 기호를 사용하려면 gcc -g3 -O0 hello.c
으로 프로그램을 컴파일했습니다.
다음 명령으로 프로파일 링을 시작합니다. sudo perf record -g ./a.out
은 내가
#include <stdio.h>
#include <unistd.h>
void do2() {
FILE* f = fopen("/dev/zero", "r");
int fd = fileno(f);
char buf[100];
while(1) {
read(fd, buf, sizeof(buf)/sizeof(buf[0]));
}
}
int main(void)
{
do2();
return 0;
}
This is the flame graph with debian jessie
This is the flame graph with ubuntu을 프로파일 링하려고 이것은에서는 hello.c에 대한 목록입니다
sudo perf script | ~/code/FlameGraph/stackcollapse-perf.pl | \
~/code/FlameGraph/flamegraph.pl > perf-kernel.svg
다음 명령을 사용하여 불꽃 그래프 Flame Graph을 생성
왜 debian jessie에서 스택 추적이 누락 되었습니까?
감사 샤 라트